{
  "openapi": "3.0.0",
  "info": {
    "title": "Medusa API",
    "version": "1.0.0"
  },
  "servers": [],
  "paths": {
    "/admin/api-keys": {
      "get": {
        "operationId": "AdminGetApiKeys",
        "summary": "List API Keys",
        "description": "Retrieve a list of API keys. The API keys can be filtered by fields such as `id`. The API keys can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "A search term to search the API keys' searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "The search term."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by an API key's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by API key IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "The API key ID."
                  }
                }
              ]
            }
          },
          {
            "name": "title",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "title",
                  "description": "Filter by an API key's title."
                },
                {
                  "type": "array",
                  "description": "Filter by API key titles.",
                  "items": {
                    "type": "string",
                    "title": "title",
                    "description": "The API key title."
                  }
                }
              ]
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "token",
                  "description": "Filter by an API key's token."
                },
                {
                  "type": "array",
                  "description": "Filter by API key tokens.",
                  "items": {
                    "type": "string",
                    "title": "token",
                    "description": "The API key token."
                  }
                }
              ]
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Filter by the API key's type.",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "secret",
                "publishable"
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the API key's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the API key's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the API key's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the API key's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by the API key's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the API key's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "revoked_at",
            "in": "query",
            "description": "Filter by the API key's revoke date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the API key's revoke date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "revoked_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.apiKey.list()\n.then(({ api_keys, count, limit, offset }) => {\n  console.log(api_keys)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/api-keys' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Api Keys"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned in the list."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total count of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "required": [
                        "api_keys"
                      ],
                      "properties": {
                        "api_keys": {
                          "type": "array",
                          "description": "The list of API keys.",
                          "items": {
                            "$ref": "#/components/schemas/ApiKeyResponse"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostApiKeys",
        "summary": "Create Api Key",
        "description": "Create a secret or publishable API key.\nA secret API key is used for admin authentication.\n\nA publishable API key is used by client applications to set the scope of the request.\n",
        "x-authenticated": true,
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateApiKey"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.apiKey.create({\n  title: \"Development\",\n  type: \"publishable\"\n})\n.then(({ api_key }) => {\n  console.log(api_key)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/api-keys' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"title\": \"{value}\",\n  \"type\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Api Keys"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminApiKeyResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createApiKeysWorkflow",
        "x-events": []
      }
    },
    "/admin/api-keys/{id}": {
      "get": {
        "operationId": "AdminGetApiKeysId",
        "summary": "Get API Key",
        "description": "Retrieve an API key by its ID. You can expand the API key's relations or select the fields that should be returned using the query parameters.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The API key's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.apiKey.retrieve(\"apk_123\")\n.then(({ api_key }) => {\n  console.log(api_key)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/api-keys/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Api Keys"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminApiKeyResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostApiKeysId",
        "summary": "Update an API Key",
        "description": "Update an API key's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The API key's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateApiKey"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.apiKey.update(\"apk_123\", {\n  title: \"Development\"\n})\n.then(({ api_key }) => {\n  console.log(api_key)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/api-keys/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"title\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Api Keys"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminApiKeyResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateApiKeysWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteApiKeysId",
        "summary": "Delete an Api Key",
        "description": "Delete a publishable or secret API key.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The API key's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.apiKey.delete(\"apk_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/api-keys/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Api Keys"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The deletion's details.",
                  "required": [
                    "id",
                    "object",
                    "deleted"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The API key's ID."
                    },
                    "object": {
                      "type": "string",
                      "title": "object",
                      "description": "The name of the object that was deleted.",
                      "default": "api_key"
                    },
                    "deleted": {
                      "type": "boolean",
                      "title": "deleted",
                      "description": "Whether the API key was deleted."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteApiKeysWorkflow",
        "x-events": []
      }
    },
    "/admin/api-keys/{id}/revoke": {
      "post": {
        "operationId": "AdminPostApiKeysIdRevoke",
        "summary": "Revoke API Key",
        "description": "Revokes an API key. If the API key is a secret, it can't be used for authentication anymore. If it's publishable, it can't be used by client applications.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The API key's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminRevokeApiKey"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.apiKey.revoke(\"apk_123\")\n.then(({ api_key }) => {\n  console.log(api_key)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/api-keys/{id}/revoke' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Api Keys"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminApiKeyResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "revokeApiKeysWorkflow",
        "x-events": []
      }
    },
    "/admin/api-keys/{id}/sales-channels": {
      "post": {
        "operationId": "AdminPostApiKeysIdSalesChannels",
        "summary": "Manage Sales Channels of a Publishable API Key",
        "x-sidebar-summary": "Manage Sales Channels",
        "description": "Manage the sales channels of a publishable API key, either to associate them or remove them from the API key.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The API key's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchLink"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.apiKey.batchSalesChannels(\"apk_123\", {\n  add: [\"sc_123\"],\n  remove: [\"sc_321\"]\n})\n.then(({ api_key }) => {\n  console.log(api_key)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/api-keys/{id}/sales-channels' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Api Keys"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminApiKeyResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "linkSalesChannelsToApiKeyWorkflow",
        "x-events": []
      }
    },
    "/admin/campaigns": {
      "get": {
        "operationId": "AdminGetCampaigns",
        "summary": "List Campaigns",
        "description": "Retrieve a list of campaigns. The campaigns can be filtered by fields such as `id`. The campaigns can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Apply a search query to the campaign's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Apply a search query to the campaign's searchable properties."
            }
          },
          {
            "name": "campaign_identifier",
            "in": "query",
            "description": "Filter by a campaign identifier.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "campaign_identifier",
              "description": "Filter by a campaign identifier."
            }
          },
          {
            "name": "budget",
            "in": "query",
            "description": "Filter by the campaign's budget.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the campaign's budget.",
              "properties": {
                "currency_code": {
                  "type": "string",
                  "title": "currency_code",
                  "description": "The budget's currency code.",
                  "example": "usd"
                }
              }
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.campaign.list()\n.then(({ campaigns, count, limit, offset }) => {\n  console.log(campaigns)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/campaigns' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Campaigns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of campaigns.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items retrieved."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of its skipped before the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The list of campaigns",
                      "required": [
                        "campaigns"
                      ],
                      "properties": {
                        "campaigns": {
                          "type": "array",
                          "description": "The list of campaigns.",
                          "items": {
                            "$ref": "#/components/schemas/CampaignResponse"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostCampaigns",
        "summary": "Create Campaign",
        "description": "Create a campaign.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The campaign's details.",
                    "required": [
                      "name",
                      "campaign_identifier",
                      "description",
                      "budget",
                      "starts_at",
                      "ends_at"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "title": "name",
                        "description": "The campaign's name."
                      },
                      "campaign_identifier": {
                        "type": "string",
                        "title": "campaign_identifier",
                        "description": "The campaign's identifier."
                      },
                      "description": {
                        "type": "string",
                        "title": "description",
                        "description": "The campaign's description."
                      },
                      "budget": {
                        "type": "object",
                        "description": "The campaign's budget which, when crossed, ends the campaign.",
                        "required": [
                          "type",
                          "limit",
                          "currency_code"
                        ],
                        "properties": {
                          "type": {
                            "type": "string",
                            "title": "type",
                            "description": "The budget's type. This can't be edited later. Use `spend` to set a limit on the total amount discounted by the campaign's promotions. Use `usage` to set a limit on the total number of times the campaign's promotions can be used.\n",
                            "enum": [
                              "spend",
                              "usage"
                            ]
                          },
                          "limit": {
                            "type": "number",
                            "title": "limit",
                            "description": "The campaign budget's limit."
                          },
                          "currency_code": {
                            "type": "string",
                            "title": "currency_code",
                            "description": "The campaign budget's currency code. This can't be edited later."
                          }
                        }
                      },
                      "starts_at": {
                        "type": "string",
                        "title": "starts_at",
                        "description": "The campaign's start date.",
                        "format": "date-time"
                      },
                      "ends_at": {
                        "type": "string",
                        "title": "ends_at",
                        "description": "The campaign's end date.",
                        "format": "date-time"
                      },
                      "promotions": {
                        "type": "array",
                        "description": "The campaign's promotions.",
                        "items": {
                          "type": "object",
                          "description": "The promotions to add to the campaign.",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "A promotion's ID."
                            }
                          }
                        }
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The campaign's details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The campaign's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.campaign.create({\n  name: \"Summer Campaign\"\n})\n.then(({ campaign }) => {\n  console.log(campaign)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/campaigns' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"name\": \"Gunner\",\n  \"campaign_identifier\": \"{value}\",\n  \"description\": \"{value}\",\n  \"starts_at\": \"2024-08-24T00:19:14.144Z\",\n  \"ends_at\": \"2024-10-01T06:47:50.133Z\"\n}'"
          }
        ],
        "tags": [
          "Admin Campaigns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCampaignResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createCampaignsWorkflow",
        "x-events": []
      }
    },
    "/admin/campaigns/{id}": {
      "get": {
        "operationId": "AdminGetCampaignsId",
        "summary": "Get a Campaign",
        "description": "Retrieve a campaign by its ID. You can expand the campaign's relations or select the fields that should be returned using the query parameters.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The campaign's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.campaign.retrieve(\"procamp_123\")\n.then(({ campaign }) => {\n  console.log(campaign)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/campaigns/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Campaigns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCampaignResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostCampaignsId",
        "summary": "Update a Campaign",
        "description": "Update a campaign's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The campaign's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The campaign's details.",
                    "required": [
                      "description",
                      "starts_at",
                      "ends_at"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "title": "name",
                        "description": "The campaign's name."
                      },
                      "campaign_identifier": {
                        "type": "string",
                        "title": "campaign_identifier",
                        "description": "The campaign's identifier."
                      },
                      "description": {
                        "type": "string",
                        "title": "description",
                        "description": "The campaign's description."
                      },
                      "budget": {
                        "type": "object",
                        "description": "The campaign's budget.",
                        "required": [
                          "limit"
                        ],
                        "properties": {
                          "limit": {
                            "type": "number",
                            "title": "limit",
                            "description": "The campaign budget's limit."
                          }
                        }
                      },
                      "starts_at": {
                        "type": "string",
                        "title": "starts_at",
                        "description": "The campaign's start date.",
                        "format": "date-time"
                      },
                      "ends_at": {
                        "type": "string",
                        "title": "ends_at",
                        "description": "The campaign's end date.",
                        "format": "date-time"
                      },
                      "promotions": {
                        "type": "array",
                        "description": "The campaign's promotions.",
                        "items": {
                          "type": "object",
                          "description": "The promotions to add to the campaign.",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "A promotion's ID."
                            }
                          }
                        }
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The campaign's details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The campaign's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.campaign.update(\"procamp_123\", {\n  name: \"Summer Campaign\"\n})\n.then(({ campaign }) => {\n  console.log(campaign)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/campaigns/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"description\": \"{value}\",\n  \"starts_at\": \"2024-08-10T14:44:10.530Z\",\n  \"ends_at\": \"2024-07-13T17:45:37.462Z\"\n}'"
          }
        ],
        "tags": [
          "Admin Campaigns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCampaignResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateCampaignsWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteCampaignsId",
        "summary": "Delete a Campaign",
        "description": "Delete a campaign by its ID. This doesn't delete promotions that belong to this campaign.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The campaign's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.campaign.delete(\"procamp_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/campaigns/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Campaigns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The deletion's details.",
                  "required": [
                    "id",
                    "object",
                    "deleted"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The campaign's ID."
                    },
                    "object": {
                      "type": "string",
                      "title": "object",
                      "description": "The name of the object that was deleted.",
                      "default": "campaign"
                    },
                    "deleted": {
                      "type": "boolean",
                      "title": "deleted",
                      "description": "Whether the campaign was deleted."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteCampaignsWorkflow",
        "x-events": []
      }
    },
    "/admin/campaigns/{id}/promotions": {
      "post": {
        "operationId": "AdminPostCampaignsIdPromotions",
        "summary": "Manage the Promotions of a Campaign",
        "x-sidebar-summary": "Manage Promotions",
        "description": "Manage the promotions of a campaign, either by adding them or removing them from the campaign.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The campaign's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchLink"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.campaign.batchPromotions(\"procamp_123\", {\n  add: [\"prom_123\", \"prom_456\"],\n  remove: [\"prom_789\"]\n})\n.then(({ campaign }) => {\n  console.log(campaign)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/campaigns/{id}/promotions' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Campaigns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCampaignResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "addOrRemoveCampaignPromotionsWorkflow",
        "x-events": []
      }
    },
    "/admin/claims": {
      "get": {
        "operationId": "AdminGetClaims",
        "summary": "List Claims",
        "description": "Retrieve a list of claims. The claims can be filtered by fields such as `id`. The claims can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by the claim's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "The claim's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by an exact match.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "Filter by an exact match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not equal to this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "Filter by values in this array."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "Filter by values not in this array."
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the conditions in this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "Filter by values not matching the conditions in this parameter."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "Filter arrays that have overlapping values with this parameter."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "Filter arrays that contain some of the values of this parameter."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "Filter arrays that contain all values of this parameter."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "The claim's q.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "The claim's q."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "The claim's ID."
                },
                {
                  "type": "array",
                  "description": "The claim's ID.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "The id's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "order_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "order_id",
                  "description": "The claim's order id."
                },
                {
                  "type": "array",
                  "description": "The claim's order id.",
                  "items": {
                    "type": "string",
                    "title": "order_id",
                    "description": "The order id's details."
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by the claim's status."
                },
                {
                  "type": "array",
                  "description": "Filter by the claim's status.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "The claim's status."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the claim's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "The claim's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by an exact match.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "Filter by an exact match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not equal to this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "Filter by values in this array."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "Filter by values not in this array."
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the conditions in this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "Filter by values not matching the conditions in this parameter."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "Filter arrays that have overlapping values with this parameter."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "Filter arrays that contain some of the values of this parameter."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "Filter arrays that contain all values of this parameter."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the claim's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "The claim's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by an exact match.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "Filter by an exact match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not equal to this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "Filter by values in this array."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "Filter by values not in this array."
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the conditions in this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "Filter by values not matching the conditions in this parameter."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "Filter arrays that have overlapping values with this parameter."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "Filter arrays that contain some of the values of this parameter."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "Filter arrays that contain all values of this parameter."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.list()\n.then(({ claims, count, limit, offset }) => {\n  console.log(claims)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/claims' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostClaims",
        "summary": "Create a Claim",
        "description": "Create a claim. The claim is still in the request state, and the changes are only applied on the order once the claim is confirmed.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by the claim's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by multiple claim IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A claim ID."
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by the claim's status."
                },
                {
                  "type": "array",
                  "description": "Filter by multiple claim statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "A claim status."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a claim's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a claim's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a claim's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateClaim"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.create({\n  type: \"refund\",\n  order_id: \"order_123\",\n})\n.then(({ claim }) => {\n  console.log(claim)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/claims' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"type\": \"{value}\",\n  \"order_id\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "beginClaimOrderWorkflow",
        "x-events": []
      }
    },
    "/admin/claims/{id}": {
      "get": {
        "operationId": "AdminGetClaimsId",
        "summary": "Get a Claim",
        "description": "Retrieve a claim by its ID. You can expand the claim's relations or select the fields that should be returned using the query parameters.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.retrieve(\"claim_123\")\n.then(({ claim }) => {\n  console.log(claim)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/claims/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/claims/{id}/cancel": {
      "post": {
        "operationId": "AdminPostClaimsIdCancel",
        "summary": "Cancel a Claim",
        "description": "Cancel a claim and its associated return.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPostCancelClaimReqSchema"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.cancel(\"claim_123\")\n.then(({ claim }) => {\n  console.log(claim)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/claims/{id}/cancel' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "cancelOrderClaimWorkflow",
        "x-events": []
      }
    },
    "/admin/claims/{id}/claim-items": {
      "post": {
        "operationId": "AdminPostClaimsIdClaimItems",
        "summary": "Add Claim Items to a Claim",
        "x-sidebar-summary": "Add Claim Items",
        "description": "Add order items to a claim as claim items. These claim items will have the action `WRITE_OFF_ITEM`.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by the claim's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by claim IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A claim's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by the claim's status."
                },
                {
                  "type": "array",
                  "description": "Filter by claim statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "A claim status."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a claim's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a claim's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a claim's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminAddClaimItems"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.addItems(\"claim_123\", {\n  items: [\n    {\n      id: \"orli_123\",\n      quantity: 1\n    }\n  ]\n})\n.then(({ claim }) => {\n  console.log(claim)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/claims/{id}/claim-items' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "orderClaimItemWorkflow",
        "x-events": []
      }
    },
    "/admin/claims/{id}/claim-items/{action_id}": {
      "post": {
        "operationId": "AdminPostClaimsIdClaimItemsAction_id",
        "summary": "Update a Claim Item",
        "description": "Update an order item in a claim by the ID of the item's `WRITE_OFF_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the order item's `WRITE_OFF_ITEM` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by the claim's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by claim IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A claim's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by the claim's status."
                },
                {
                  "type": "array",
                  "description": "Filter by claim statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "A claim status."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a claim's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a claim's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a claim's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateClaimItem"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.updateItem(\n  \"claim_123\", \n  \"ordchact_123\",\n  {\n    quantity: 1\n  }\n  )\n.then(({ claim }) => {\n  console.log(claim)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/claims/{id}/claim-items/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateClaimItemWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteClaimsIdClaimItemsAction_id",
        "summary": "Remove a Claim Item from a Claim",
        "x-sidebar-summary": "Remove Claim Item",
        "description": "Remove an order item from a claim by the ID of the item's `WRITE_OFF_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the order item's `WRITE_OFF_ITEM` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.removeItem(\n  \"claim_123\", \n  \"ordchact_123\",\n  )\n.then(({ claim }) => {\n  console.log(claim)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/claims/{id}/claim-items/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeItemClaimActionWorkflow",
        "x-events": []
      }
    },
    "/admin/claims/{id}/inbound/items": {
      "post": {
        "operationId": "AdminPostClaimsIdInboundItems",
        "summary": "Add Inbound Items to a Claim",
        "x-sidebar-summary": "Add Inbound Items",
        "description": "Add inbound (or return) items to a claim. These inbound items will have a `RETURN_ITEM` action.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPostReturnsRequestItemsReqSchema"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.addInboundItems(\n  \"claim_123\", \n  {\n    items: [\n      {\n        id: \"orli_123\",\n        quantity: 1\n      }\n    ]\n  },\n  )\n.then(({ return: returnData }) => {\n  console.log(returnData)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/claims/{id}/inbound/items' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "orderClaimRequestItemReturnWorkflow",
        "x-events": []
      }
    },
    "/admin/claims/{id}/inbound/items/{action_id}": {
      "post": {
        "operationId": "AdminPostClaimsIdInboundItemsAction_id",
        "summary": "Update Inbound Items of a Claim",
        "x-sidebar-summary": "Update Inbound Items",
        "description": "Update an inbound (or return) item of a claim using the `ID` of the item's `RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the return item's `RETURN_ITEM` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPostReturnsRequestItemsActionReqSchema"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.updateInboundItem(\n  \"claim_123\", \n  \"ordchact_123\",\n  {\n    quantity: 1\n  },\n  )\n.then(({ return: returnData }) => {\n  console.log(returnData)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/claims/{id}/inbound/items/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateRequestItemReturnWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteClaimsIdInboundItemsAction_id",
        "summary": "Remove an Inbound Item from Claim",
        "x-sidebar-summary": "Remove Inbound Item",
        "description": "Remove an inbound (or return) item from a claim using the `ID` of the item's `RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the return item's `RETURN_ITEM` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.removeInboundItem(\n  \"claim_123\", \n  \"ordchact_123\",\n  )\n.then(({ return: returnData }) => {\n  console.log(returnData)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/claims/{id}/inbound/items/{action_id}' \\ -H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeItemReturnActionWorkflow",
        "x-events": []
      }
    },
    "/admin/claims/{id}/inbound/shipping-method": {
      "post": {
        "operationId": "AdminPostClaimsIdInboundShippingMethod",
        "summary": "Add an Inbound Shipping Method to a Claim",
        "x-sidebar-summary": "Add Inbound Shipping",
        "description": "Add an inbound (or return) shipping method to a claim. The inbound shipping method will have a `SHIPPING_ADD` action.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPostReturnsShippingReqSchema"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.addInboundShipping(\n  \"claim_123\", \n  {\n    shipping_option_id: \"so_123\",\n    custom_amount: 10\n  },\n  )\n.then(({ return: returnData }) => {\n  console.log(returnData)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/claims/{id}/inbound/shipping-method' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"shipping_option_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createClaimShippingMethodWorkflow",
        "x-events": []
      }
    },
    "/admin/claims/{id}/inbound/shipping-method/{action_id}": {
      "post": {
        "operationId": "AdminPostClaimsIdInboundShippingMethodAction_id",
        "summary": "Update Inbound Shipping Method of a Claim",
        "x-sidebar-summary": "Update Inbound Shipping",
        "description": "Update the shipping method for returning items in the claim using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the shipping method's `SHIPPING_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by the claim's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by claim IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A claim's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by the claim's status."
                },
                {
                  "type": "array",
                  "description": "Filter by claim statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "A claim status."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a claim's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a claim's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a claim's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminClaimUpdateInboundShipping"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.updateInboundShipping(\n  \"claim_123\", \n  \"ordchact_123\",\n  {\n    custom_amount: 10\n  },\n  )\n.then(({ claim }) => {\n  console.log(claim)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/claims/{id}/inbound/shipping-method/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateReturnShippingMethodWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteClaimsIdInboundShippingMethodAction_id",
        "summary": "Remove Inbound Shipping Method from Claim",
        "x-sidebar-summary": "Remove Inbound Shipping Method",
        "description": "Remove the shipping method for returning items in the claim using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the shipping method's `SHIPPING_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.deleteInboundShipping(\n  \"claim_123\", \n  \"ordchact_123\",\n  )\n.then(({ return: returnData }) => {\n  console.log(returnData)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/claims/{id}/inbound/shipping-method/{action_id}' \\ -H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeClaimShippingMethodWorkflow",
        "x-events": []
      }
    },
    "/admin/claims/{id}/outbound/items": {
      "post": {
        "operationId": "AdminPostClaimsIdOutboundItems",
        "summary": "Add Outbound Items to a Claim",
        "x-sidebar-summary": "Add Outbound Items",
        "description": "Add outbound (or new) items to a claim. These outbound items will have an `ITEM_ADD` action.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by the claim's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by claim IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A claim's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by the claim's status."
                },
                {
                  "type": "array",
                  "description": "Filter by claim statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "A claim status."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a claim's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a claim's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a claim's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminAddClaimOutboundItems"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.addOutboundItems(\n  \"claim_123\", \n  {\n    items: [{\n      id: \"orli_123\",\n      quantity: 1\n    }]\n  },\n  )\n.then(({ claim }) => {\n  console.log(claim)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/claims/{id}/outbound/items' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "orderClaimAddNewItemWorkflow",
        "x-events": []
      }
    },
    "/admin/claims/{id}/outbound/items/{action_id}": {
      "post": {
        "operationId": "AdminPostClaimsIdOutboundItemsAction_id",
        "summary": "Update Outbound Item of a Claim",
        "x-sidebar-summary": "Update Outbound Item",
        "description": "Update an outbound (or new) item of a claim using the `ID` of the item's `ITEM_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the new claim item's `ITEM_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by the claim's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by claim IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A claim's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by the claim's status."
                },
                {
                  "type": "array",
                  "description": "Filter by claim statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "A claim status."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a claim's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a claim's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a claim's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateClaimOutboundItem"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.updateOutboundItem(\n  \"claim_123\", \n  \"ordchact_123\",\n  {\n    quantity: 1\n  },\n  )\n.then(({ claim }) => {\n  console.log(claim)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/claims/{id}/outbound/items/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateClaimAddItemWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteClaimsIdOutboundItemsAction_id",
        "summary": "Remove an Outbound Item from Claim",
        "x-sidebar-summary": "Remove Outbound Item",
        "description": "Remove an outbound (or new) item from a claim using the `ID` of the item's `ITEM_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the new claim item's `ITEM_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.removeOutboundItem(\n  \"claim_123\", \n  \"ordchact_123\",\n)\n.then(({ claim }) => {\n  console.log(claim)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/claims/{id}/outbound/items/{action_id}' \\ -H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeAddItemClaimActionWorkflow",
        "x-events": []
      }
    },
    "/admin/claims/{id}/outbound/shipping-method": {
      "post": {
        "operationId": "AdminPostClaimsIdOutboundShippingMethod",
        "summary": "Add Outbound Shipping Methods to a Claim",
        "x-sidebar-summary": "Add Outbound Shipping",
        "description": "Add an outbound shipping method to a claim. The outbound shipping method will have a `SHIPPING_ADD` action.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by the claim's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by claim IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A claim's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by the claim's status."
                },
                {
                  "type": "array",
                  "description": "Filter by claim statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "A claim status."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a claim's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a claim's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a claim's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminClaimAddOutboundShipping"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.addOutboundShipping(\n  \"claim_123\", \n  {\n    shipping_option_id: \"so_123\",\n    custom_amount: 10\n  },\n)\n.then(({ claim }) => {\n  console.log(claim)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/claims/{id}/outbound/shipping-method' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"shipping_option_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createClaimShippingMethodWorkflow",
        "x-events": []
      }
    },
    "/admin/claims/{id}/outbound/shipping-method/{action_id}": {
      "post": {
        "operationId": "AdminPostClaimsIdOutboundShippingMethodAction_id",
        "summary": "Update Outbound Shipping Method of a Claim",
        "x-sidebar-summary": "Update Outbound Shipping",
        "description": "Update the shipping method for delivering outbound items in a claim using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the shipping method's `SHIPPING_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by the claim's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by claim IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A claim's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by the claim's status."
                },
                {
                  "type": "array",
                  "description": "Filter by claim statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "A claim status."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a claim's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a claim's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a claim's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminClaimUpdateOutboundShipping"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.updateOutboundShipping(\n  \"claim_123\", \n  \"ordchact_123\",\n  {\n    custom_amount: 10\n  },\n)\n.then(({ claim }) => {\n  console.log(claim)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/claims/{id}/outbound/shipping-method/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateClaimShippingMethodWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteClaimsIdOutboundShippingMethodAction_id",
        "summary": "Remove Outbound Shipping Method from Claim",
        "x-sidebar-summary": "Remove Outbound Shipping Method",
        "description": "Remove the shipping method for delivering outbound items in the claim using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the shipping method's `SHIPPING_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.deleteOutboundShipping(\n  \"claim_123\", \n  \"ordchact_123\",\n)\n.then(({ claim }) => {\n  console.log(claim)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/claims/{id}/outbound/shipping-method/{action_id}' \\ -H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeClaimShippingMethodWorkflow",
        "x-events": []
      }
    },
    "/admin/claims/{id}/request": {
      "post": {
        "operationId": "AdminPostClaimsIdRequest",
        "summary": "Confirm a Claim Request",
        "x-sidebar-summary": "Confirm Claim",
        "description": "Confirm a claim request, applying its changes on the associated order.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by the claim's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by claim IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A claim's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by the claim's status."
                },
                {
                  "type": "array",
                  "description": "Filter by claim statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "A claim status."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a claim's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a claim's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a claim's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a claim's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.request(\n  \"claim_123\", \n  {},\n)\n.then(({ claim }) => {\n  console.log(claim)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/claims/{id}/request' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimRequestResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "confirmClaimRequestWorkflow",
        "x-events": [
          {
            "name": "order.claim_created",
            "payload": "```ts\n{\n  order_id, // The ID of the order\n  claim_id, // The ID of the claim\n}\n```",
            "description": "Emitted when a claim is created for an order.",
            "deprecated": false
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteClaimsIdRequest",
        "summary": "Cancel Claim Request",
        "description": "Cancel a requested claim.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.claim.cancelRequest(\n  \"claim_123\", \n)\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/claims/{id}/request' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Claims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminClaimDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "cancelBeginOrderClaimWorkflow",
        "x-events": []
      }
    },
    "/admin/collections": {
      "get": {
        "operationId": "AdminGetCollections",
        "summary": "List Collections",
        "description": "Retrieve a list of collections. The collections can be filtered by fields such as `id`. The collections can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by the collection's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the collection's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the collection's searchable properties by.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the collection's searchable properties by."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a collection's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by collection IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "The collection's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "handle",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "handle",
                  "description": "Filter by a collection's handle."
                },
                {
                  "type": "array",
                  "description": "Filter by collection handles.",
                  "items": {
                    "type": "string",
                    "title": "handle",
                    "description": "The collection's handle."
                  }
                }
              ]
            }
          },
          {
            "name": "title",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "title",
                  "description": "Filter by a collection's title."
                },
                {
                  "type": "array",
                  "description": "Filter by collection titles.",
                  "items": {
                    "type": "string",
                    "title": "title",
                    "description": "The collection's title."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the collection's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the collection's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the collection's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the collection's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productCollection.list()\n.then(({ collections, count, limit, offset }) => {\n  console.log(collections)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/collections' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Collections"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCollectionListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostCollections",
        "summary": "Create Collection",
        "description": "Create a collection.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The collection's details.",
                    "required": [
                      "title"
                    ],
                    "properties": {
                      "title": {
                        "type": "string",
                        "title": "title",
                        "description": "The collection's title."
                      },
                      "handle": {
                        "type": "string",
                        "title": "handle",
                        "description": "The collection's handle."
                      },
                      "metadata": {
                        "type": "object",
                        "description": "The collection's metadata. Can hold custom key-value pairs."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The collection's details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "the product collection's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productCollection.create({\n  title: \"Summer Collection\"\n})\n.then(({ collection }) => {\n  console.log(collection)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/collections' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"title\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Collections"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCollectionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createCollectionsWorkflow",
        "x-events": [
          {
            "name": "product-collection.created",
            "payload": "```ts\n{\n  id, // The ID of the product collection\n}\n```",
            "description": "Emitted when product collections are created.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/collections/{id}": {
      "get": {
        "operationId": "AdminGetCollectionsId",
        "summary": "Get a Collection",
        "description": "Retrieve a collection by its ID. You can expand the collection's relations or select the fields that should be returned using the query parameters.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The collection's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productCollection.retrieve(\"pcol_123\")\n.then(({ collection }) => {\n  console.log(collection)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/collections/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Collections"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCollectionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostCollectionsId",
        "summary": "Update a Collection",
        "description": "Update a collection's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The collection's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The details to update in a collection.",
                    "properties": {
                      "title": {
                        "type": "string",
                        "title": "title",
                        "description": "The collection's title."
                      },
                      "handle": {
                        "type": "string",
                        "title": "handle",
                        "description": "The collection's handle."
                      },
                      "metadata": {
                        "type": "object",
                        "description": "The collection's metadata."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The details to update in a collection.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The details to update in a collection."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productCollection.update(\"pcol_123\", {\n  title: \"Summer Collection\"\n})\n.then(({ collection }) => {\n  console.log(collection)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/collections/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Collections"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCollectionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateCollectionsWorkflow",
        "x-events": [
          {
            "name": "product-collection.updated",
            "payload": "```ts\n{\n  id, // The ID of the product collection\n}\n```",
            "description": "Emitted when product collections are updated.",
            "deprecated": false
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteCollectionsId",
        "summary": "Delete a Collection",
        "description": "Delete a product collection.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The collection's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productCollection.delete(\"pcol_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/collections/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Collections"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCollectionDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteCollectionsWorkflow",
        "x-events": [
          {
            "name": "product-collection.deleted",
            "payload": "```ts\n{\n  id, // The ID of the product collection\n}\n```",
            "description": "Emitted when product collections are deleted.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/collections/{id}/products": {
      "post": {
        "operationId": "AdminPostCollectionsIdProducts",
        "summary": "Manage Products of a Collection",
        "x-sidebar-summary": "Manage Products",
        "description": "Manage the products of a collection by adding or removing them from the collection.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The collection's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchLink"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productCollection.updateProducts(\"pcol_123\", {\n  add: [\"prod_123\"],\n  remove: [\"prod_321\"]\n})\n.then(({ collection }) => {\n  console.log(collection)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/collections/{id}/products' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Collections"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCollectionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchLinkProductsToCollectionWorkflow",
        "x-events": []
      }
    },
    "/admin/currencies": {
      "get": {
        "operationId": "AdminGetCurrencies",
        "summary": "List Currencies",
        "description": "Retrieve a list of currencies. The currencies can be filtered by fields such as `id`. The currencies can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "The search term to filter the currency's searchable properties by.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "The search term to filter the currency's searchable properties by."
            }
          },
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "code",
                  "description": "Filter by a currency code."
                },
                {
                  "type": "array",
                  "description": "Filter by currency codes.",
                  "items": {
                    "type": "string",
                    "title": "code",
                    "description": "A currency code."
                  }
                }
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.currency.list()\n.then(({ currencies, count, limit, offset }) => {\n  console.log(currencies)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/currencies' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Currencies"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCurrencyListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/currencies/{code}": {
      "get": {
        "operationId": "AdminGetCurrenciesCode",
        "summary": "Get a Currency",
        "description": "Retrieve a currency by its code. You can expand the currency's relations or select the fields that should be returned using the query parameters.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "The currency's code.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.currency.retrieve(\"usd\")\n.then(({ currency }) => {\n  console.log(currency)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/currencies/{code}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Currencies"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCurrencyResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/customer-groups": {
      "get": {
        "operationId": "AdminGetCustomerGroups",
        "summary": "List Customer Groups",
        "description": "Retrieve a list of customer groups. The customer groups can be filtered by fields such as `id`. The customer groups can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the customer group's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the customer group's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a customer group's IDs."
                },
                {
                  "type": "array",
                  "description": "Filter by customer group IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A customer group's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "name",
                  "description": "Filter by a customer group's name."
                },
                {
                  "type": "array",
                  "description": "Filter by customer group names.",
                  "items": {
                    "type": "string",
                    "title": "name",
                    "description": "A customer group's name."
                  }
                }
              ]
            }
          },
          {
            "name": "customers",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "customers",
                  "description": "Filter by the ID of a customer to retrieve its groups."
                },
                {
                  "type": "array",
                  "description": "Filter by customer IDs to retrieve their groups.",
                  "items": {
                    "type": "string",
                    "title": "customers",
                    "description": "A customer's ID."
                  }
                },
                {
                  "$ref": "#/components/schemas/AdminCustomerInGroupFilters"
                }
              ]
            }
          },
          {
            "name": "created_by",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "created_by",
                  "description": "Filter by an ID of a user to retrieve the customer groups they created."
                },
                {
                  "type": "array",
                  "description": "Filter by the IDs of users to retrieve the customer groups they created.",
                  "items": {
                    "type": "string",
                    "title": "created_by",
                    "description": "The user's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter the customer group by its creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter the customer group by its creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter the customer groups by their update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter the customer groups by their update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter the customer groups by their deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter the customer groups by their deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customerGroup.list()\n.then(({ customer_groups, count, limit, offset }) => {\n  console.log(customer_groups)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/customer-groups' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Customer Groups"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of customer groups.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items retrieved."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items"
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of customer groups.",
                      "required": [
                        "customer_groups"
                      ],
                      "properties": {
                        "customer_groups": {
                          "type": "array",
                          "description": "The list of customer groups.",
                          "items": {
                            "$ref": "#/components/schemas/AdminCustomerGroup"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostCustomerGroups",
        "summary": "Create Customer Group",
        "description": "Create a customer group.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateCustomerGroup"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customerGroup.create({\n  name: \"VIP\"\n})\n.then(({ customer_group }) => {\n  console.log(customer_group)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/customer-groups' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"name\": \"Solon\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Customer Groups"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCustomerGroupResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createCustomerGroupsWorkflow",
        "x-events": []
      }
    },
    "/admin/customer-groups/{id}": {
      "get": {
        "operationId": "AdminGetCustomerGroupsId",
        "summary": "Get a Customer Group",
        "description": "Retrieve a customer group by its ID. You can expand the customer group's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The customer group's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customerGroup.retrieve(\"cusgroup_123\")\n.then(({ customer_group }) => {\n  console.log(customer_group)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/customer-groups/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Customer Groups"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCustomerGroupResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostCustomerGroupsId",
        "summary": "Update a Customer Group",
        "description": "Update a customer group's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The customer group's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateCustomerGroup"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customerGroup.update(\"cusgroup_123\", {\n  name: \"VIP\"\n})\n.then(({ customer_group }) => {\n  console.log(customer_group)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/customer-groups/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"name\": \"Corbin\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Customer Groups"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCustomerGroupResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateCustomerGroupsWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteCustomerGroupsId",
        "summary": "Delete a Customer Group",
        "description": "Delete a customer group. Customers in the group aren't deleted.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The customer group's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customerGroup.delete(\"cusgroup_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/customer-groups/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Customer Groups"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The deletion's details.",
                  "required": [
                    "id",
                    "object",
                    "deleted"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The customer group's ID."
                    },
                    "object": {
                      "type": "string",
                      "title": "object",
                      "description": "The customer group's object."
                    },
                    "deleted": {
                      "type": "boolean",
                      "title": "deleted",
                      "description": "The customer group's deleted."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteCustomerGroupsWorkflow",
        "x-events": []
      }
    },
    "/admin/customer-groups/{id}/customers": {
      "post": {
        "operationId": "AdminPostCustomerGroupsIdCustomers",
        "summary": "Manage Customers of a Customer Group",
        "x-sidebar-summary": "Manage Customers",
        "description": "Manage the customers of a group to add or remove them from the group.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The customer group's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchLink"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customerGroup.batchCustomers(\"cusgroup_123\", {\n  add: [\"cus_123\"],\n  remove: [\"cus_321\"]\n})\n.then(({ customer_group }) => {\n  console.log(customer_group)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/customer-groups/{id}/customers' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Customer Groups"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCustomerGroupResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "linkCustomersToCustomerGroupWorkflow",
        "x-events": []
      }
    },
    "/admin/customers": {
      "get": {
        "operationId": "AdminGetCustomers",
        "summary": "List Customers",
        "description": "Retrieve a list of customers. The customers can be filtered by fields such as `id`. The customers can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "groups",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "groups",
                  "description": "Filter by a customer group's ID to retrieve customers that belong to it."
                },
                {
                  "$ref": "#/components/schemas/CustomerGroupInCustomerFilters"
                },
                {
                  "type": "array",
                  "description": "Filter by customer group IDs to retrieve customers that belong to them.",
                  "items": {
                    "type": "string",
                    "title": "groups",
                    "description": "The customer group's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the customer's searchable properties by.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the customer's searchable properties by."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a customer's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by customer IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A customer's ID."
                  }
                },
                {
                  "type": "object",
                  "description": "Filters to apply on the customer ID.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by exact matches.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by exact matches.",
                          "items": {
                            "oneOf": [
                              {
                                "type": "string",
                                "title": "$eq",
                                "description": "Filter by an exact match."
                              },
                              {
                                "type": "array",
                                "description": "Filter by exact matches.",
                                "items": {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                }
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not equal to this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$ne",
                            "description": "Filter by values not equal to this parameter."
                          }
                        }
                      ]
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "oneOf": [
                          {
                            "type": "string",
                            "title": "$in",
                            "description": "Filter by matching value."
                          },
                          {
                            "type": "array",
                            "description": "Filter by values in this array.",
                            "items": {
                              "type": "string",
                              "title": "$in",
                              "description": "Filter matching values."
                            }
                          }
                        ]
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "oneOf": [
                          {
                            "type": "string",
                            "title": "$nin",
                            "description": "Filter by values not matching this parameter."
                          },
                          {
                            "type": "array",
                            "description": "Filter by values not in this array.",
                            "items": {
                              "type": "string",
                              "title": "$nin",
                              "description": "Filter by values not matching this parameter."
                            }
                          }
                        ]
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "properties": {
                            "$and": {
                              "type": "array",
                              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$and"
                            },
                            "$or": {
                              "type": "array",
                              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$or"
                            },
                            "$eq": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by exact matches.",
                                  "items": {
                                    "type": "string",
                                    "title": "$eq",
                                    "description": "Filter by an exact match."
                                  }
                                }
                              ]
                            },
                            "$ne": {
                              "type": "string",
                              "title": "$ne",
                              "description": "Filter by values not equal to this parameter."
                            },
                            "$in": {
                              "type": "array",
                              "description": "Filter by values in this array.",
                              "items": {
                                "type": "string",
                                "title": "$in",
                                "description": "Filter by values in this array."
                              }
                            },
                            "$nin": {
                              "type": "array",
                              "description": "Filter by values not in this array.",
                              "items": {
                                "type": "string",
                                "title": "$nin",
                                "description": "Filter by values not in this array."
                              }
                            },
                            "$not": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$not",
                                  "description": "Filter by values not matching this parameter."
                                },
                                {
                                  "type": "object",
                                  "description": "Filter by values not matching the conditions in this parameter."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by values not in this array.",
                                  "items": {
                                    "type": "string",
                                    "title": "$not",
                                    "description": "Filter by values not matching this parameter."
                                  }
                                }
                              ]
                            },
                            "$gt": {
                              "type": "string",
                              "title": "$gt",
                              "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                            },
                            "$gte": {
                              "type": "string",
                              "title": "$gte",
                              "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$lt": {
                              "type": "string",
                              "title": "$lt",
                              "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                            },
                            "$lte": {
                              "type": "string",
                              "title": "$lte",
                              "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$like": {
                              "type": "string",
                              "title": "$like",
                              "description": "Apply a `like` filter. Useful for strings only."
                            },
                            "$re": {
                              "type": "string",
                              "title": "$re",
                              "description": "Apply a regex filter. Useful for strings only."
                            },
                            "$ilike": {
                              "type": "string",
                              "title": "$ilike",
                              "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                            },
                            "$fulltext": {
                              "type": "string",
                              "title": "$fulltext",
                              "description": "Filter to apply on full-text properties."
                            },
                            "$overlap": {
                              "type": "array",
                              "description": "Filter arrays that have overlapping values with this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$overlap",
                                "description": "Filter arrays that have overlapping values with this parameter."
                              }
                            },
                            "$contains": {
                              "type": "array",
                              "description": "Filter arrays that contain some of the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contains",
                                "description": "Filter arrays that contain some of the values of this parameter."
                              }
                            },
                            "$contained": {
                              "type": "array",
                              "description": "Filter arrays that contain all values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contained",
                                "description": "Filter arrays that contain all values of this parameter."
                              }
                            },
                            "$exists": {
                              "type": "boolean",
                              "title": "$exists",
                              "description": "Filter by whether a value for this parameter exists (not `null`)."
                            }
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching this parameter."
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "oneOf": [
                              {
                                "type": "string",
                                "title": "$not",
                                "description": "Filter by values not matching this parameter."
                              },
                              {
                                "type": "object",
                                "description": "Filter by values not matching the conditions in this parameter.",
                                "properties": {
                                  "$and": {
                                    "type": "array",
                                    "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "title": "$and"
                                  },
                                  "$or": {
                                    "type": "array",
                                    "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "title": "$or"
                                  },
                                  "$eq": {
                                    "oneOf": [
                                      {
                                        "type": "string",
                                        "title": "$eq",
                                        "description": "Filter by an exact match."
                                      },
                                      {
                                        "type": "array",
                                        "description": "Filter by exact matches.",
                                        "items": {
                                          "type": "string",
                                          "title": "$eq",
                                          "description": "Filter by an exact match."
                                        }
                                      }
                                    ]
                                  },
                                  "$ne": {
                                    "type": "string",
                                    "title": "$ne",
                                    "description": "Filter by values not equal to this parameter."
                                  },
                                  "$in": {
                                    "type": "array",
                                    "description": "Filter by values in this array.",
                                    "items": {
                                      "type": "string",
                                      "title": "$in",
                                      "description": "Filter by exact matches."
                                    }
                                  },
                                  "$nin": {
                                    "type": "array",
                                    "description": "Filter by values not in this array.",
                                    "items": {
                                      "type": "string",
                                      "title": "$nin",
                                      "description": "Filter by values not matching this parameter."
                                    }
                                  },
                                  "$not": {
                                    "oneOf": [
                                      {
                                        "type": "string",
                                        "title": "$not",
                                        "description": "Filter by values not matching this parameter."
                                      },
                                      {
                                        "type": "object",
                                        "description": "Filter by values not matching the conditions in this parameter."
                                      },
                                      {
                                        "type": "array",
                                        "description": "Filter by values not in this array.",
                                        "items": {
                                          "type": "string",
                                          "title": "$not",
                                          "description": "Filter by values not matching this parameter."
                                        }
                                      }
                                    ]
                                  },
                                  "$gt": {
                                    "type": "string",
                                    "title": "$gt",
                                    "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                                  },
                                  "$gte": {
                                    "type": "string",
                                    "title": "$gte",
                                    "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                                  },
                                  "$lt": {
                                    "type": "string",
                                    "title": "$lt",
                                    "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                                  },
                                  "$lte": {
                                    "type": "string",
                                    "title": "$lte",
                                    "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                                  },
                                  "$like": {
                                    "type": "string",
                                    "title": "$like",
                                    "description": "Apply a `like` filter. Useful for strings only."
                                  },
                                  "$re": {
                                    "type": "string",
                                    "title": "$re",
                                    "description": "Apply a regex filter. Useful for strings only."
                                  },
                                  "$ilike": {
                                    "type": "string",
                                    "title": "$ilike",
                                    "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                                  },
                                  "$fulltext": {
                                    "type": "string",
                                    "title": "$fulltext",
                                    "description": "Filter to apply on full-text properties."
                                  },
                                  "$overlap": {
                                    "type": "array",
                                    "description": "Filter arrays that have overlapping values with this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$overlap",
                                      "description": "Filter arrays that have overlapping values with this parameter."
                                    }
                                  },
                                  "$contains": {
                                    "type": "array",
                                    "description": "Filter arrays that contain some of the values of this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$contains",
                                      "description": "Filter arrays that contain some of the values of this parameter."
                                    }
                                  },
                                  "$contained": {
                                    "type": "array",
                                    "description": "Filter arrays that contain all values of this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$contained",
                                      "description": "Filter arrays that contain all values of this parameter."
                                    }
                                  },
                                  "$exists": {
                                    "type": "boolean",
                                    "title": "$exists",
                                    "description": "Filter by whether a value for this parameter exists (not `null`)."
                                  }
                                }
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values greater than items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$gt",
                            "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$gte": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values greater than or equal to items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$gte",
                            "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$lt": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values less than items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$lt",
                            "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$lte": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values less than or equal to items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$lte",
                            "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "email",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "email",
                  "description": "Filter by a customer email.",
                  "format": "email"
                },
                {
                  "type": "array",
                  "description": "Filter by customer emails.",
                  "items": {
                    "type": "string",
                    "title": "email",
                    "description": "A customer's email.",
                    "format": "email"
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by conditions on the customer email.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by exact matches.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by exact matches.",
                          "items": {
                            "oneOf": [
                              {
                                "type": "string",
                                "title": "$eq",
                                "description": "Filter by an exact match."
                              },
                              {
                                "type": "array",
                                "description": "Filter by exact matches.",
                                "items": {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                }
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not equal to this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$ne",
                            "description": "Filter by values not equal to this parameter."
                          }
                        }
                      ]
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "oneOf": [
                          {
                            "type": "string",
                            "title": "$in",
                            "description": "Filter by matching value."
                          },
                          {
                            "type": "array",
                            "description": "Filter by values in this array.",
                            "items": {
                              "type": "string",
                              "title": "$in",
                              "description": "Filter matching values."
                            }
                          }
                        ]
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "oneOf": [
                          {
                            "type": "string",
                            "title": "$nin",
                            "description": "Filter by values not matching this parameter."
                          },
                          {
                            "type": "array",
                            "description": "Filter by values not in this array.",
                            "items": {
                              "type": "string",
                              "title": "$nin",
                              "description": "Filter by values not matching this parameter."
                            }
                          }
                        ]
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "properties": {
                            "$and": {
                              "type": "array",
                              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$and"
                            },
                            "$or": {
                              "type": "array",
                              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$or"
                            },
                            "$eq": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by exact matches.",
                                  "items": {
                                    "type": "string",
                                    "title": "$eq",
                                    "description": "Filter by an exact match."
                                  }
                                }
                              ]
                            },
                            "$ne": {
                              "type": "string",
                              "title": "$ne",
                              "description": "Filter by values not equal to this parameter."
                            },
                            "$in": {
                              "type": "array",
                              "description": "Filter by values in this array.",
                              "items": {
                                "type": "string",
                                "title": "$in",
                                "description": "Filter by values in this array."
                              }
                            },
                            "$nin": {
                              "type": "array",
                              "description": "Filter by values not in this array.",
                              "items": {
                                "type": "string",
                                "title": "$nin",
                                "description": "Filter by values not in this array."
                              }
                            },
                            "$not": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$not",
                                  "description": "Filter by values not matching this parameter."
                                },
                                {
                                  "type": "object",
                                  "description": "Filter by values not matching the conditions in this parameter."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by values not in this array.",
                                  "items": {
                                    "type": "string",
                                    "title": "$not",
                                    "description": "Filter by values not matching this parameter."
                                  }
                                }
                              ]
                            },
                            "$gt": {
                              "type": "string",
                              "title": "$gt",
                              "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                            },
                            "$gte": {
                              "type": "string",
                              "title": "$gte",
                              "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$lt": {
                              "type": "string",
                              "title": "$lt",
                              "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                            },
                            "$lte": {
                              "type": "string",
                              "title": "$lte",
                              "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$like": {
                              "type": "string",
                              "title": "$like",
                              "description": "Apply a `like` filter. Useful for strings only."
                            },
                            "$re": {
                              "type": "string",
                              "title": "$re",
                              "description": "Apply a regex filter. Useful for strings only."
                            },
                            "$ilike": {
                              "type": "string",
                              "title": "$ilike",
                              "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                            },
                            "$fulltext": {
                              "type": "string",
                              "title": "$fulltext",
                              "description": "Filter to apply on full-text properties."
                            },
                            "$overlap": {
                              "type": "array",
                              "description": "Filter arrays that have overlapping values with this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$overlap",
                                "description": "Filter arrays that have overlapping values with this parameter."
                              }
                            },
                            "$contains": {
                              "type": "array",
                              "description": "Filter arrays that contain some of the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contains",
                                "description": "Filter arrays that contain some of the values of this parameter."
                              }
                            },
                            "$contained": {
                              "type": "array",
                              "description": "Filter arrays that contain all values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contained",
                                "description": "Filter arrays that contain all values of this parameter."
                              }
                            },
                            "$exists": {
                              "type": "boolean",
                              "title": "$exists",
                              "description": "Filter by whether a value for this parameter exists (not `null`)."
                            }
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching this parameter."
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "oneOf": [
                              {
                                "type": "string",
                                "title": "$not",
                                "description": "Filter by values not matching this parameter."
                              },
                              {
                                "type": "object",
                                "description": "Filter by values not matching the conditions in this parameter.",
                                "properties": {
                                  "$and": {
                                    "type": "array",
                                    "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "title": "$and"
                                  },
                                  "$or": {
                                    "type": "array",
                                    "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "title": "$or"
                                  },
                                  "$eq": {
                                    "oneOf": [
                                      {
                                        "type": "string",
                                        "title": "$eq",
                                        "description": "Filter by an exact match."
                                      },
                                      {
                                        "type": "array",
                                        "description": "Filter by exact matches.",
                                        "items": {
                                          "type": "string",
                                          "title": "$eq",
                                          "description": "Filter by an exact match."
                                        }
                                      }
                                    ]
                                  },
                                  "$ne": {
                                    "type": "string",
                                    "title": "$ne",
                                    "description": "Filter by values not equal to this parameter."
                                  },
                                  "$in": {
                                    "type": "array",
                                    "description": "Filter by values in this array.",
                                    "items": {
                                      "type": "string",
                                      "title": "$in",
                                      "description": "Filter by exact matches."
                                    }
                                  },
                                  "$nin": {
                                    "type": "array",
                                    "description": "Filter by values not in this array.",
                                    "items": {
                                      "type": "string",
                                      "title": "$nin",
                                      "description": "Filter by values not matching this parameter."
                                    }
                                  },
                                  "$not": {
                                    "oneOf": [
                                      {
                                        "type": "string",
                                        "title": "$not",
                                        "description": "Filter by values not matching this parameter."
                                      },
                                      {
                                        "type": "object",
                                        "description": "Filter by values not matching the conditions in this parameter."
                                      },
                                      {
                                        "type": "array",
                                        "description": "Filter by values not in this array.",
                                        "items": {
                                          "type": "string",
                                          "title": "$not",
                                          "description": "Filter by values not matching this parameter."
                                        }
                                      }
                                    ]
                                  },
                                  "$gt": {
                                    "type": "string",
                                    "title": "$gt",
                                    "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                                  },
                                  "$gte": {
                                    "type": "string",
                                    "title": "$gte",
                                    "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                                  },
                                  "$lt": {
                                    "type": "string",
                                    "title": "$lt",
                                    "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                                  },
                                  "$lte": {
                                    "type": "string",
                                    "title": "$lte",
                                    "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                                  },
                                  "$like": {
                                    "type": "string",
                                    "title": "$like",
                                    "description": "Apply a `like` filter. Useful for strings only."
                                  },
                                  "$re": {
                                    "type": "string",
                                    "title": "$re",
                                    "description": "Apply a regex filter. Useful for strings only."
                                  },
                                  "$ilike": {
                                    "type": "string",
                                    "title": "$ilike",
                                    "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                                  },
                                  "$fulltext": {
                                    "type": "string",
                                    "title": "$fulltext",
                                    "description": "Filter to apply on full-text properties."
                                  },
                                  "$overlap": {
                                    "type": "array",
                                    "description": "Filter arrays that have overlapping values with this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$overlap",
                                      "description": "Filter arrays that have overlapping values with this parameter."
                                    }
                                  },
                                  "$contains": {
                                    "type": "array",
                                    "description": "Filter arrays that contain some of the values of this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$contains",
                                      "description": "Filter arrays that contain some of the values of this parameter."
                                    }
                                  },
                                  "$contained": {
                                    "type": "array",
                                    "description": "Filter arrays that contain all values of this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$contained",
                                      "description": "Filter arrays that contain all values of this parameter."
                                    }
                                  },
                                  "$exists": {
                                    "type": "boolean",
                                    "title": "$exists",
                                    "description": "Filter by whether a value for this parameter exists (not `null`)."
                                  }
                                }
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values greater than items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$gt",
                            "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$gte": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values greater than or equal to items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$gte",
                            "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$lt": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values less than items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$lt",
                            "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$lte": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values less than or equal to items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$lte",
                            "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "company_name",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "company_name",
                  "description": "Filter by a customer's company name."
                },
                {
                  "type": "array",
                  "description": "Filter by customer company names.",
                  "items": {
                    "type": "string",
                    "title": "company_name",
                    "description": "The customer's company name."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by conditions on the customer's company name.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by exact matches.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by exact matches.",
                          "items": {
                            "oneOf": [
                              {
                                "type": "string",
                                "title": "$eq",
                                "description": "Filter by an exact match."
                              },
                              {
                                "type": "array",
                                "description": "Filter by exact matches.",
                                "items": {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                }
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not equal to this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$ne",
                            "description": "Filter by values not equal to this parameter."
                          }
                        }
                      ]
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "oneOf": [
                          {
                            "type": "string",
                            "title": "$in",
                            "description": "Filter by matching value."
                          },
                          {
                            "type": "array",
                            "description": "Filter by values in this array.",
                            "items": {
                              "type": "string",
                              "title": "$in",
                              "description": "Filter matching values."
                            }
                          }
                        ]
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "oneOf": [
                          {
                            "type": "string",
                            "title": "$nin",
                            "description": "Filter by values not matching this parameter."
                          },
                          {
                            "type": "array",
                            "description": "Filter by values not in this array.",
                            "items": {
                              "type": "string",
                              "title": "$nin",
                              "description": "Filter by values not matching this parameter."
                            }
                          }
                        ]
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "properties": {
                            "$and": {
                              "type": "array",
                              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$and"
                            },
                            "$or": {
                              "type": "array",
                              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$or"
                            },
                            "$eq": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by exact matches.",
                                  "items": {
                                    "type": "string",
                                    "title": "$eq",
                                    "description": "Filter by an exact match."
                                  }
                                }
                              ]
                            },
                            "$ne": {
                              "type": "string",
                              "title": "$ne",
                              "description": "Filter by values not equal to this parameter."
                            },
                            "$in": {
                              "type": "array",
                              "description": "Filter by values in this array.",
                              "items": {
                                "type": "string",
                                "title": "$in",
                                "description": "Filter by values in this array."
                              }
                            },
                            "$nin": {
                              "type": "array",
                              "description": "Filter by values not in this array.",
                              "items": {
                                "type": "string",
                                "title": "$nin",
                                "description": "Filter by values not in this array."
                              }
                            },
                            "$not": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$not",
                                  "description": "Filter by values not matching this parameter."
                                },
                                {
                                  "type": "object",
                                  "description": "Filter by values not matching the conditions in this parameter."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by values not in this array.",
                                  "items": {
                                    "type": "string",
                                    "title": "$not",
                                    "description": "Filter by values not matching this parameter."
                                  }
                                }
                              ]
                            },
                            "$gt": {
                              "type": "string",
                              "title": "$gt",
                              "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                            },
                            "$gte": {
                              "type": "string",
                              "title": "$gte",
                              "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$lt": {
                              "type": "string",
                              "title": "$lt",
                              "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                            },
                            "$lte": {
                              "type": "string",
                              "title": "$lte",
                              "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$like": {
                              "type": "string",
                              "title": "$like",
                              "description": "Apply a `like` filter. Useful for strings only."
                            },
                            "$re": {
                              "type": "string",
                              "title": "$re",
                              "description": "Apply a regex filter. Useful for strings only."
                            },
                            "$ilike": {
                              "type": "string",
                              "title": "$ilike",
                              "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                            },
                            "$fulltext": {
                              "type": "string",
                              "title": "$fulltext",
                              "description": "Filter to apply on full-text properties."
                            },
                            "$overlap": {
                              "type": "array",
                              "description": "Filter arrays that have overlapping values with this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$overlap",
                                "description": "Filter arrays that have overlapping values with this parameter."
                              }
                            },
                            "$contains": {
                              "type": "array",
                              "description": "Filter arrays that contain some of the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contains",
                                "description": "Filter arrays that contain some of the values of this parameter."
                              }
                            },
                            "$contained": {
                              "type": "array",
                              "description": "Filter arrays that contain all values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contained",
                                "description": "Filter arrays that contain all values of this parameter."
                              }
                            },
                            "$exists": {
                              "type": "boolean",
                              "title": "$exists",
                              "description": "Filter by whether a value for this parameter exists (not `null`)."
                            }
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching this parameter."
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "oneOf": [
                              {
                                "type": "string",
                                "title": "$not",
                                "description": "Filter by values not matching this parameter."
                              },
                              {
                                "type": "object",
                                "description": "Filter by values not matching the conditions in this parameter.",
                                "properties": {
                                  "$and": {
                                    "type": "array",
                                    "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "title": "$and"
                                  },
                                  "$or": {
                                    "type": "array",
                                    "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "title": "$or"
                                  },
                                  "$eq": {
                                    "oneOf": [
                                      {
                                        "type": "string",
                                        "title": "$eq",
                                        "description": "Filter by an exact match."
                                      },
                                      {
                                        "type": "array",
                                        "description": "Filter by exact matches.",
                                        "items": {
                                          "type": "string",
                                          "title": "$eq",
                                          "description": "Filter by an exact match."
                                        }
                                      }
                                    ]
                                  },
                                  "$ne": {
                                    "type": "string",
                                    "title": "$ne",
                                    "description": "Filter by values not equal to this parameter."
                                  },
                                  "$in": {
                                    "type": "array",
                                    "description": "Filter by values in this array.",
                                    "items": {
                                      "type": "string",
                                      "title": "$in",
                                      "description": "Filter by exact matches."
                                    }
                                  },
                                  "$nin": {
                                    "type": "array",
                                    "description": "Filter by values not in this array.",
                                    "items": {
                                      "type": "string",
                                      "title": "$nin",
                                      "description": "Filter by values not matching this parameter."
                                    }
                                  },
                                  "$not": {
                                    "oneOf": [
                                      {
                                        "type": "string",
                                        "title": "$not",
                                        "description": "Filter by values not matching this parameter."
                                      },
                                      {
                                        "type": "object",
                                        "description": "Filter by values not matching the conditions in this parameter."
                                      },
                                      {
                                        "type": "array",
                                        "description": "Filter by values not in this array.",
                                        "items": {
                                          "type": "string",
                                          "title": "$not",
                                          "description": "Filter by values not matching this parameter."
                                        }
                                      }
                                    ]
                                  },
                                  "$gt": {
                                    "type": "string",
                                    "title": "$gt",
                                    "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                                  },
                                  "$gte": {
                                    "type": "string",
                                    "title": "$gte",
                                    "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                                  },
                                  "$lt": {
                                    "type": "string",
                                    "title": "$lt",
                                    "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                                  },
                                  "$lte": {
                                    "type": "string",
                                    "title": "$lte",
                                    "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                                  },
                                  "$like": {
                                    "type": "string",
                                    "title": "$like",
                                    "description": "Apply a `like` filter. Useful for strings only."
                                  },
                                  "$re": {
                                    "type": "string",
                                    "title": "$re",
                                    "description": "Apply a regex filter. Useful for strings only."
                                  },
                                  "$ilike": {
                                    "type": "string",
                                    "title": "$ilike",
                                    "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                                  },
                                  "$fulltext": {
                                    "type": "string",
                                    "title": "$fulltext",
                                    "description": "Filter to apply on full-text properties."
                                  },
                                  "$overlap": {
                                    "type": "array",
                                    "description": "Filter arrays that have overlapping values with this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$overlap",
                                      "description": "Filter arrays that have overlapping values with this parameter."
                                    }
                                  },
                                  "$contains": {
                                    "type": "array",
                                    "description": "Filter arrays that contain some of the values of this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$contains",
                                      "description": "Filter arrays that contain some of the values of this parameter."
                                    }
                                  },
                                  "$contained": {
                                    "type": "array",
                                    "description": "Filter arrays that contain all values of this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$contained",
                                      "description": "Filter arrays that contain all values of this parameter."
                                    }
                                  },
                                  "$exists": {
                                    "type": "boolean",
                                    "title": "$exists",
                                    "description": "Filter by whether a value for this parameter exists (not `null`)."
                                  }
                                }
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values greater than items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$gt",
                            "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$gte": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values greater than or equal to items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$gte",
                            "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$lt": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values less than items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$lt",
                            "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$lte": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values less than or equal to items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$lte",
                            "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "first_name",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "first_name",
                  "description": "Filter by a customer's first name."
                },
                {
                  "type": "array",
                  "description": "Filter by customer first names.",
                  "items": {
                    "type": "string",
                    "title": "first_name",
                    "description": "A customer's first name."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by conditions on the first name.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by exact matches.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by exact matches.",
                          "items": {
                            "oneOf": [
                              {
                                "type": "string",
                                "title": "$eq",
                                "description": "Filter by an exact match."
                              },
                              {
                                "type": "array",
                                "description": "Filter by exact matches.",
                                "items": {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                }
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not equal to this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$ne",
                            "description": "Filter by values not equal to this parameter."
                          }
                        }
                      ]
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "oneOf": [
                          {
                            "type": "string",
                            "title": "$in",
                            "description": "Filter by matching value."
                          },
                          {
                            "type": "array",
                            "description": "Filter by values in this array.",
                            "items": {
                              "type": "string",
                              "title": "$in",
                              "description": "Filter matching values."
                            }
                          }
                        ]
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "oneOf": [
                          {
                            "type": "string",
                            "title": "$nin",
                            "description": "Filter by values not matching this parameter."
                          },
                          {
                            "type": "array",
                            "description": "Filter by values not in this array.",
                            "items": {
                              "type": "string",
                              "title": "$nin",
                              "description": "Filter by values not matching this parameter."
                            }
                          }
                        ]
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "properties": {
                            "$and": {
                              "type": "array",
                              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$and"
                            },
                            "$or": {
                              "type": "array",
                              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$or"
                            },
                            "$eq": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by exact matches.",
                                  "items": {
                                    "type": "string",
                                    "title": "$eq",
                                    "description": "Filter by an exact match."
                                  }
                                }
                              ]
                            },
                            "$ne": {
                              "type": "string",
                              "title": "$ne",
                              "description": "Filter by values not equal to this parameter."
                            },
                            "$in": {
                              "type": "array",
                              "description": "Filter by values in this array.",
                              "items": {
                                "type": "string",
                                "title": "$in",
                                "description": "Filter by values in this array."
                              }
                            },
                            "$nin": {
                              "type": "array",
                              "description": "Filter by values not in this array.",
                              "items": {
                                "type": "string",
                                "title": "$nin",
                                "description": "Filter by values not in this array."
                              }
                            },
                            "$not": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$not",
                                  "description": "Filter by values not matching this parameter."
                                },
                                {
                                  "type": "object",
                                  "description": "Filter by values not matching the conditions in this parameter."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by values not in this array.",
                                  "items": {
                                    "type": "string",
                                    "title": "$not",
                                    "description": "Filter by values not matching this parameter."
                                  }
                                }
                              ]
                            },
                            "$gt": {
                              "type": "string",
                              "title": "$gt",
                              "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                            },
                            "$gte": {
                              "type": "string",
                              "title": "$gte",
                              "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$lt": {
                              "type": "string",
                              "title": "$lt",
                              "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                            },
                            "$lte": {
                              "type": "string",
                              "title": "$lte",
                              "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$like": {
                              "type": "string",
                              "title": "$like",
                              "description": "Apply a `like` filter. Useful for strings only."
                            },
                            "$re": {
                              "type": "string",
                              "title": "$re",
                              "description": "Apply a regex filter. Useful for strings only."
                            },
                            "$ilike": {
                              "type": "string",
                              "title": "$ilike",
                              "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                            },
                            "$fulltext": {
                              "type": "string",
                              "title": "$fulltext",
                              "description": "Filter to apply on full-text properties."
                            },
                            "$overlap": {
                              "type": "array",
                              "description": "Filter arrays that have overlapping values with this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$overlap",
                                "description": "Filter arrays that have overlapping values with this parameter."
                              }
                            },
                            "$contains": {
                              "type": "array",
                              "description": "Filter arrays that contain some of the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contains",
                                "description": "Filter arrays that contain some of the values of this parameter."
                              }
                            },
                            "$contained": {
                              "type": "array",
                              "description": "Filter arrays that contain all values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contained",
                                "description": "Filter arrays that contain all values of this parameter."
                              }
                            },
                            "$exists": {
                              "type": "boolean",
                              "title": "$exists",
                              "description": "Filter by whether a value for this parameter exists (not `null`)."
                            }
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching this parameter."
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "oneOf": [
                              {
                                "type": "string",
                                "title": "$not",
                                "description": "Filter by values not matching this parameter."
                              },
                              {
                                "type": "object",
                                "description": "Filter by values not matching the conditions in this parameter.",
                                "properties": {
                                  "$and": {
                                    "type": "array",
                                    "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "title": "$and"
                                  },
                                  "$or": {
                                    "type": "array",
                                    "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "title": "$or"
                                  },
                                  "$eq": {
                                    "oneOf": [
                                      {
                                        "type": "string",
                                        "title": "$eq",
                                        "description": "Filter by an exact match."
                                      },
                                      {
                                        "type": "array",
                                        "description": "Filter by exact matches.",
                                        "items": {
                                          "type": "string",
                                          "title": "$eq",
                                          "description": "Filter by an exact match."
                                        }
                                      }
                                    ]
                                  },
                                  "$ne": {
                                    "type": "string",
                                    "title": "$ne",
                                    "description": "Filter by values not equal to this parameter."
                                  },
                                  "$in": {
                                    "type": "array",
                                    "description": "Filter by values in this array.",
                                    "items": {
                                      "type": "string",
                                      "title": "$in",
                                      "description": "Filter by exact matches."
                                    }
                                  },
                                  "$nin": {
                                    "type": "array",
                                    "description": "Filter by values not in this array.",
                                    "items": {
                                      "type": "string",
                                      "title": "$nin",
                                      "description": "Filter by values not matching this parameter."
                                    }
                                  },
                                  "$not": {
                                    "oneOf": [
                                      {
                                        "type": "string",
                                        "title": "$not",
                                        "description": "Filter by values not matching this parameter."
                                      },
                                      {
                                        "type": "object",
                                        "description": "Filter by values not matching the conditions in this parameter."
                                      },
                                      {
                                        "type": "array",
                                        "description": "Filter by values not in this array.",
                                        "items": {
                                          "type": "string",
                                          "title": "$not",
                                          "description": "Filter by values not matching this parameter."
                                        }
                                      }
                                    ]
                                  },
                                  "$gt": {
                                    "type": "string",
                                    "title": "$gt",
                                    "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                                  },
                                  "$gte": {
                                    "type": "string",
                                    "title": "$gte",
                                    "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                                  },
                                  "$lt": {
                                    "type": "string",
                                    "title": "$lt",
                                    "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                                  },
                                  "$lte": {
                                    "type": "string",
                                    "title": "$lte",
                                    "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                                  },
                                  "$like": {
                                    "type": "string",
                                    "title": "$like",
                                    "description": "Apply a `like` filter. Useful for strings only."
                                  },
                                  "$re": {
                                    "type": "string",
                                    "title": "$re",
                                    "description": "Apply a regex filter. Useful for strings only."
                                  },
                                  "$ilike": {
                                    "type": "string",
                                    "title": "$ilike",
                                    "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                                  },
                                  "$fulltext": {
                                    "type": "string",
                                    "title": "$fulltext",
                                    "description": "Filter to apply on full-text properties."
                                  },
                                  "$overlap": {
                                    "type": "array",
                                    "description": "Filter arrays that have overlapping values with this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$overlap",
                                      "description": "Filter arrays that have overlapping values with this parameter."
                                    }
                                  },
                                  "$contains": {
                                    "type": "array",
                                    "description": "Filter arrays that contain some of the values of this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$contains",
                                      "description": "Filter arrays that contain some of the values of this parameter."
                                    }
                                  },
                                  "$contained": {
                                    "type": "array",
                                    "description": "Filter arrays that contain all values of this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$contained",
                                      "description": "Filter arrays that contain all values of this parameter."
                                    }
                                  },
                                  "$exists": {
                                    "type": "boolean",
                                    "title": "$exists",
                                    "description": "Filter by whether a value for this parameter exists (not `null`)."
                                  }
                                }
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values greater than items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$gt",
                            "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$gte": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values greater than or equal to items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$gte",
                            "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$lt": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values less than items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$lt",
                            "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$lte": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values less than or equal to items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$lte",
                            "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "last_name",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "last_name",
                  "description": "Filter by a customer's last name."
                },
                {
                  "type": "array",
                  "description": "Filter by customer last names.",
                  "items": {
                    "type": "string",
                    "title": "last_name",
                    "description": "A customer's last name."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by conditions on a customer's last name.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by exact matches.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by exact matches.",
                          "items": {
                            "oneOf": [
                              {
                                "type": "string",
                                "title": "$eq",
                                "description": "Filter by an exact match."
                              },
                              {
                                "type": "array",
                                "description": "Filter by exact matches.",
                                "items": {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                }
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not equal to this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$ne",
                            "description": "Filter by values not equal to this parameter."
                          }
                        }
                      ]
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "oneOf": [
                          {
                            "type": "string",
                            "title": "$in",
                            "description": "Filter by matching value."
                          },
                          {
                            "type": "array",
                            "description": "Filter by values in this array.",
                            "items": {
                              "type": "string",
                              "title": "$in",
                              "description": "Filter matching values."
                            }
                          }
                        ]
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "oneOf": [
                          {
                            "type": "string",
                            "title": "$nin",
                            "description": "Filter by values not matching this parameter."
                          },
                          {
                            "type": "array",
                            "description": "Filter by values not in this array.",
                            "items": {
                              "type": "string",
                              "title": "$nin",
                              "description": "Filter by values not matching this parameter."
                            }
                          }
                        ]
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "properties": {
                            "$and": {
                              "type": "array",
                              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$and"
                            },
                            "$or": {
                              "type": "array",
                              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$or"
                            },
                            "$eq": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by exact matches.",
                                  "items": {
                                    "type": "string",
                                    "title": "$eq",
                                    "description": "Filter by an exact match."
                                  }
                                }
                              ]
                            },
                            "$ne": {
                              "type": "string",
                              "title": "$ne",
                              "description": "Filter by values not equal to this parameter."
                            },
                            "$in": {
                              "type": "array",
                              "description": "Filter by values in this array.",
                              "items": {
                                "type": "string",
                                "title": "$in",
                                "description": "Filter by values in this array."
                              }
                            },
                            "$nin": {
                              "type": "array",
                              "description": "Filter by values not in this array.",
                              "items": {
                                "type": "string",
                                "title": "$nin",
                                "description": "Filter by values not in this array."
                              }
                            },
                            "$not": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$not",
                                  "description": "Filter by values not matching this parameter."
                                },
                                {
                                  "type": "object",
                                  "description": "Filter by values not matching the conditions in this parameter."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by values not in this array.",
                                  "items": {
                                    "type": "string",
                                    "title": "$not",
                                    "description": "Filter by values not matching this parameter."
                                  }
                                }
                              ]
                            },
                            "$gt": {
                              "type": "string",
                              "title": "$gt",
                              "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                            },
                            "$gte": {
                              "type": "string",
                              "title": "$gte",
                              "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$lt": {
                              "type": "string",
                              "title": "$lt",
                              "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                            },
                            "$lte": {
                              "type": "string",
                              "title": "$lte",
                              "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$like": {
                              "type": "string",
                              "title": "$like",
                              "description": "Apply a `like` filter. Useful for strings only."
                            },
                            "$re": {
                              "type": "string",
                              "title": "$re",
                              "description": "Apply a regex filter. Useful for strings only."
                            },
                            "$ilike": {
                              "type": "string",
                              "title": "$ilike",
                              "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                            },
                            "$fulltext": {
                              "type": "string",
                              "title": "$fulltext",
                              "description": "Filter to apply on full-text properties."
                            },
                            "$overlap": {
                              "type": "array",
                              "description": "Filter arrays that have overlapping values with this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$overlap",
                                "description": "Filter arrays that have overlapping values with this parameter."
                              }
                            },
                            "$contains": {
                              "type": "array",
                              "description": "Filter arrays that contain some of the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contains",
                                "description": "Filter arrays that contain some of the values of this parameter."
                              }
                            },
                            "$contained": {
                              "type": "array",
                              "description": "Filter arrays that contain all values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contained",
                                "description": "Filter arrays that contain all values of this parameter."
                              }
                            },
                            "$exists": {
                              "type": "boolean",
                              "title": "$exists",
                              "description": "Filter by whether a value for this parameter exists (not `null`)."
                            }
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching this parameter."
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "oneOf": [
                              {
                                "type": "string",
                                "title": "$not",
                                "description": "Filter by values not matching this parameter."
                              },
                              {
                                "type": "object",
                                "description": "Filter by values not matching the conditions in this parameter.",
                                "properties": {
                                  "$and": {
                                    "type": "array",
                                    "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "title": "$and"
                                  },
                                  "$or": {
                                    "type": "array",
                                    "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "title": "$or"
                                  },
                                  "$eq": {
                                    "oneOf": [
                                      {
                                        "type": "string",
                                        "title": "$eq",
                                        "description": "Filter by an exact match."
                                      },
                                      {
                                        "type": "array",
                                        "description": "Filter by exact matches.",
                                        "items": {
                                          "type": "string",
                                          "title": "$eq",
                                          "description": "Filter by an exact match."
                                        }
                                      }
                                    ]
                                  },
                                  "$ne": {
                                    "type": "string",
                                    "title": "$ne",
                                    "description": "Filter by values not equal to this parameter."
                                  },
                                  "$in": {
                                    "type": "array",
                                    "description": "Filter by values in this array.",
                                    "items": {
                                      "type": "string",
                                      "title": "$in",
                                      "description": "Filter by exact matches."
                                    }
                                  },
                                  "$nin": {
                                    "type": "array",
                                    "description": "Filter by values not in this array.",
                                    "items": {
                                      "type": "string",
                                      "title": "$nin",
                                      "description": "Filter by values not matching this parameter."
                                    }
                                  },
                                  "$not": {
                                    "oneOf": [
                                      {
                                        "type": "string",
                                        "title": "$not",
                                        "description": "Filter by values not matching this parameter."
                                      },
                                      {
                                        "type": "object",
                                        "description": "Filter by values not matching the conditions in this parameter."
                                      },
                                      {
                                        "type": "array",
                                        "description": "Filter by values not in this array.",
                                        "items": {
                                          "type": "string",
                                          "title": "$not",
                                          "description": "Filter by values not matching this parameter."
                                        }
                                      }
                                    ]
                                  },
                                  "$gt": {
                                    "type": "string",
                                    "title": "$gt",
                                    "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                                  },
                                  "$gte": {
                                    "type": "string",
                                    "title": "$gte",
                                    "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                                  },
                                  "$lt": {
                                    "type": "string",
                                    "title": "$lt",
                                    "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                                  },
                                  "$lte": {
                                    "type": "string",
                                    "title": "$lte",
                                    "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                                  },
                                  "$like": {
                                    "type": "string",
                                    "title": "$like",
                                    "description": "Apply a `like` filter. Useful for strings only."
                                  },
                                  "$re": {
                                    "type": "string",
                                    "title": "$re",
                                    "description": "Apply a regex filter. Useful for strings only."
                                  },
                                  "$ilike": {
                                    "type": "string",
                                    "title": "$ilike",
                                    "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                                  },
                                  "$fulltext": {
                                    "type": "string",
                                    "title": "$fulltext",
                                    "description": "Filter to apply on full-text properties."
                                  },
                                  "$overlap": {
                                    "type": "array",
                                    "description": "Filter arrays that have overlapping values with this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$overlap",
                                      "description": "Filter arrays that have overlapping values with this parameter."
                                    }
                                  },
                                  "$contains": {
                                    "type": "array",
                                    "description": "Filter arrays that contain some of the values of this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$contains",
                                      "description": "Filter arrays that contain some of the values of this parameter."
                                    }
                                  },
                                  "$contained": {
                                    "type": "array",
                                    "description": "Filter arrays that contain all values of this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$contained",
                                      "description": "Filter arrays that contain all values of this parameter."
                                    }
                                  },
                                  "$exists": {
                                    "type": "boolean",
                                    "title": "$exists",
                                    "description": "Filter by whether a value for this parameter exists (not `null`)."
                                  }
                                }
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values greater than items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$gt",
                            "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$gte": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values greater than or equal to items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$gte",
                            "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$lt": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values less than items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$lt",
                            "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$lte": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values less than or equal to items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$lte",
                            "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "created_by",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "created_by",
                  "description": "Filter by a user ID to retrieve the customers they created."
                },
                {
                  "type": "array",
                  "description": "Filter by user IDs to retrieve customers they created.",
                  "items": {
                    "type": "string",
                    "title": "created_by",
                    "description": "A user's ID."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by conditions on the user ID that created the customer.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by exact matches.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by exact matches.",
                          "items": {
                            "oneOf": [
                              {
                                "type": "string",
                                "title": "$eq",
                                "description": "Filter by an exact match."
                              },
                              {
                                "type": "array",
                                "description": "Filter by exact matches.",
                                "items": {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                }
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not equal to this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$ne",
                            "description": "Filter by values not equal to this parameter."
                          }
                        }
                      ]
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "oneOf": [
                          {
                            "type": "string",
                            "title": "$in",
                            "description": "Filter by matching value."
                          },
                          {
                            "type": "array",
                            "description": "Filter by values in this array.",
                            "items": {
                              "type": "string",
                              "title": "$in",
                              "description": "Filter matching values."
                            }
                          }
                        ]
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "oneOf": [
                          {
                            "type": "string",
                            "title": "$nin",
                            "description": "Filter by values not matching this parameter."
                          },
                          {
                            "type": "array",
                            "description": "Filter by values not in this array.",
                            "items": {
                              "type": "string",
                              "title": "$nin",
                              "description": "Filter by values not matching this parameter."
                            }
                          }
                        ]
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "properties": {
                            "$and": {
                              "type": "array",
                              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$and"
                            },
                            "$or": {
                              "type": "array",
                              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$or"
                            },
                            "$eq": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by exact matches.",
                                  "items": {
                                    "type": "string",
                                    "title": "$eq",
                                    "description": "Filter by an exact match."
                                  }
                                }
                              ]
                            },
                            "$ne": {
                              "type": "string",
                              "title": "$ne",
                              "description": "Filter by values not equal to this parameter."
                            },
                            "$in": {
                              "type": "array",
                              "description": "Filter by values in this array.",
                              "items": {
                                "type": "string",
                                "title": "$in",
                                "description": "Filter by values in this array."
                              }
                            },
                            "$nin": {
                              "type": "array",
                              "description": "Filter by values not in this array.",
                              "items": {
                                "type": "string",
                                "title": "$nin",
                                "description": "Filter by values not in this array."
                              }
                            },
                            "$not": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$not",
                                  "description": "Filter by values not matching this parameter."
                                },
                                {
                                  "type": "object",
                                  "description": "Filter by values not matching the conditions in this parameter."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by values not in this array.",
                                  "items": {
                                    "type": "string",
                                    "title": "$not",
                                    "description": "Filter by values not matching this parameter."
                                  }
                                }
                              ]
                            },
                            "$gt": {
                              "type": "string",
                              "title": "$gt",
                              "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                            },
                            "$gte": {
                              "type": "string",
                              "title": "$gte",
                              "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$lt": {
                              "type": "string",
                              "title": "$lt",
                              "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                            },
                            "$lte": {
                              "type": "string",
                              "title": "$lte",
                              "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$like": {
                              "type": "string",
                              "title": "$like",
                              "description": "Apply a `like` filter. Useful for strings only."
                            },
                            "$re": {
                              "type": "string",
                              "title": "$re",
                              "description": "Apply a regex filter. Useful for strings only."
                            },
                            "$ilike": {
                              "type": "string",
                              "title": "$ilike",
                              "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                            },
                            "$fulltext": {
                              "type": "string",
                              "title": "$fulltext",
                              "description": "Filter to apply on full-text properties."
                            },
                            "$overlap": {
                              "type": "array",
                              "description": "Filter arrays that have overlapping values with this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$overlap",
                                "description": "Filter arrays that have overlapping values with this parameter."
                              }
                            },
                            "$contains": {
                              "type": "array",
                              "description": "Filter arrays that contain some of the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contains",
                                "description": "Filter arrays that contain some of the values of this parameter."
                              }
                            },
                            "$contained": {
                              "type": "array",
                              "description": "Filter arrays that contain all values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contained",
                                "description": "Filter arrays that contain all values of this parameter."
                              }
                            },
                            "$exists": {
                              "type": "boolean",
                              "title": "$exists",
                              "description": "Filter by whether a value for this parameter exists (not `null`)."
                            }
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching this parameter."
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "oneOf": [
                              {
                                "type": "string",
                                "title": "$not",
                                "description": "Filter by values not matching this parameter."
                              },
                              {
                                "type": "object",
                                "description": "Filter by values not matching the conditions in this parameter.",
                                "properties": {
                                  "$and": {
                                    "type": "array",
                                    "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "title": "$and"
                                  },
                                  "$or": {
                                    "type": "array",
                                    "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "title": "$or"
                                  },
                                  "$eq": {
                                    "oneOf": [
                                      {
                                        "type": "string",
                                        "title": "$eq",
                                        "description": "Filter by an exact match."
                                      },
                                      {
                                        "type": "array",
                                        "description": "Filter by exact matches.",
                                        "items": {
                                          "type": "string",
                                          "title": "$eq",
                                          "description": "Filter by an exact match."
                                        }
                                      }
                                    ]
                                  },
                                  "$ne": {
                                    "type": "string",
                                    "title": "$ne",
                                    "description": "Filter by values not equal to this parameter."
                                  },
                                  "$in": {
                                    "type": "array",
                                    "description": "Filter by values in this array.",
                                    "items": {
                                      "type": "string",
                                      "title": "$in",
                                      "description": "Filter by exact matches."
                                    }
                                  },
                                  "$nin": {
                                    "type": "array",
                                    "description": "Filter by values not in this array.",
                                    "items": {
                                      "type": "string",
                                      "title": "$nin",
                                      "description": "Filter by values not matching this parameter."
                                    }
                                  },
                                  "$not": {
                                    "oneOf": [
                                      {
                                        "type": "string",
                                        "title": "$not",
                                        "description": "Filter by values not matching this parameter."
                                      },
                                      {
                                        "type": "object",
                                        "description": "Filter by values not matching the conditions in this parameter."
                                      },
                                      {
                                        "type": "array",
                                        "description": "Filter by values not in this array.",
                                        "items": {
                                          "type": "string",
                                          "title": "$not",
                                          "description": "Filter by values not matching this parameter."
                                        }
                                      }
                                    ]
                                  },
                                  "$gt": {
                                    "type": "string",
                                    "title": "$gt",
                                    "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                                  },
                                  "$gte": {
                                    "type": "string",
                                    "title": "$gte",
                                    "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                                  },
                                  "$lt": {
                                    "type": "string",
                                    "title": "$lt",
                                    "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                                  },
                                  "$lte": {
                                    "type": "string",
                                    "title": "$lte",
                                    "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                                  },
                                  "$like": {
                                    "type": "string",
                                    "title": "$like",
                                    "description": "Apply a `like` filter. Useful for strings only."
                                  },
                                  "$re": {
                                    "type": "string",
                                    "title": "$re",
                                    "description": "Apply a regex filter. Useful for strings only."
                                  },
                                  "$ilike": {
                                    "type": "string",
                                    "title": "$ilike",
                                    "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                                  },
                                  "$fulltext": {
                                    "type": "string",
                                    "title": "$fulltext",
                                    "description": "Filter to apply on full-text properties."
                                  },
                                  "$overlap": {
                                    "type": "array",
                                    "description": "Filter arrays that have overlapping values with this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$overlap",
                                      "description": "Filter arrays that have overlapping values with this parameter."
                                    }
                                  },
                                  "$contains": {
                                    "type": "array",
                                    "description": "Filter arrays that contain some of the values of this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$contains",
                                      "description": "Filter arrays that contain some of the values of this parameter."
                                    }
                                  },
                                  "$contained": {
                                    "type": "array",
                                    "description": "Filter arrays that contain all values of this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$contained",
                                      "description": "Filter arrays that contain all values of this parameter."
                                    }
                                  },
                                  "$exists": {
                                    "type": "boolean",
                                    "title": "$exists",
                                    "description": "Filter by whether a value for this parameter exists (not `null`)."
                                  }
                                }
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values greater than items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$gt",
                            "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$gte": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values greater than or equal to items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$gte",
                            "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$lt": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values less than items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$lt",
                            "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$lte": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values less than or equal to items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$lte",
                            "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the customer's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the customer's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a customer's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a customer's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter a customer by their deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter a customer by their deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "has_account",
            "in": "query",
            "description": "Filter by whether the customer is registered.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "has_account",
              "description": "Filter by whether the customer is registered."
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customer.list()\n.then(({ customers, count, limit, offset }) => {\n  console.log(customers)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/customers' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of customers.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned in the list."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of customers.",
                      "required": [
                        "customers"
                      ],
                      "properties": {
                        "customers": {
                          "$ref": "#/components/schemas/AdminCustomer"
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostCustomers",
        "summary": "Create Customer",
        "description": "Create a customer.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The customer's details.",
                    "required": [
                      "email",
                      "company_name",
                      "first_name",
                      "last_name",
                      "phone",
                      "metadata"
                    ],
                    "properties": {
                      "email": {
                        "type": "string",
                        "title": "email",
                        "description": "The customer's email.",
                        "format": "email"
                      },
                      "company_name": {
                        "type": "string",
                        "title": "company_name",
                        "description": "The customer's company name."
                      },
                      "first_name": {
                        "type": "string",
                        "title": "first_name",
                        "description": "The customer's first name."
                      },
                      "last_name": {
                        "type": "string",
                        "title": "last_name",
                        "description": "The customer's last name."
                      },
                      "phone": {
                        "type": "string",
                        "title": "phone",
                        "description": "The customer's phone."
                      },
                      "metadata": {
                        "type": "object",
                        "description": "The customer's metadata."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The customer's details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The customer's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customer.create({\n  email: \"customer@gmail.com\"\n})\n.then(({ customer }) => {\n  console.log(customer)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/customers' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"email\": \"Tomas.Toy16@yahoo.com\",\n  \"company_name\": \"{value}\",\n  \"first_name\": \"{value}\",\n  \"last_name\": \"{value}\",\n  \"phone\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCustomerResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createCustomersWorkflow",
        "x-events": [
          {
            "name": "customer.created",
            "payload": "```ts\n{\n  id, // The ID of the customer\n}\n```",
            "description": "Emitted when a customer is created.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/customers/{id}": {
      "get": {
        "operationId": "AdminGetCustomersId",
        "summary": "Get a Customer",
        "description": "Retrieve a customer by its ID. You can expand the customer's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The customer's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customer.retrieve(\"cus_123\")\n.then(({ customer }) => {\n  console.log(customer)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/customers/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCustomerResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostCustomersId",
        "summary": "Update a Customer",
        "description": "Update a customer's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The customer's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The customer's details.",
                    "required": [
                      "email",
                      "company_name",
                      "first_name",
                      "last_name",
                      "phone",
                      "metadata"
                    ],
                    "properties": {
                      "email": {
                        "type": "string",
                        "title": "email",
                        "description": "The customer's email.",
                        "format": "email"
                      },
                      "company_name": {
                        "type": "string",
                        "title": "company_name",
                        "description": "The customer's company name."
                      },
                      "first_name": {
                        "type": "string",
                        "title": "first_name",
                        "description": "The customer's first name."
                      },
                      "last_name": {
                        "type": "string",
                        "title": "last_name",
                        "description": "The customer's last name."
                      },
                      "phone": {
                        "type": "string",
                        "title": "phone",
                        "description": "The customer's phone."
                      },
                      "metadata": {
                        "type": "object",
                        "description": "The customer's metadata."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The customer's details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The customer's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customer.update(\"cus_123\", {\n  first_name: \"John\"\n})\n.then(({ customer }) => {\n  console.log(customer)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/customers/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"email\": \"Daren_Rodriguez-Rutherford93@gmail.com\",\n  \"company_name\": \"{value}\",\n  \"first_name\": \"{value}\",\n  \"last_name\": \"{value}\",\n  \"phone\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCustomerResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateCustomersWorkflow",
        "x-events": [
          {
            "name": "customer.updated",
            "payload": "```ts\n{\n  id, // The ID of the customer\n}\n```",
            "description": "Emitted when a customer is updated.",
            "deprecated": false
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteCustomersId",
        "summary": "Delete a Customer",
        "description": "Delete a customer.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The customer's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customer.delete(\"cus_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/customers/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The deletion's details.",
                  "required": [
                    "id",
                    "object",
                    "deleted"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The customer's ID."
                    },
                    "object": {
                      "type": "string",
                      "title": "object",
                      "description": "The customer's object."
                    },
                    "deleted": {
                      "type": "boolean",
                      "title": "deleted",
                      "description": "The customer's deleted."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeCustomerAccountWorkflow",
        "x-events": [
          {
            "name": "customer.deleted",
            "payload": "```ts\n{\n  id, // The ID of the customer\n}\n```",
            "description": "Emitted when a customer is deleted.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/customers/{id}/addresses": {
      "get": {
        "operationId": "AdminGetCustomersIdAddresses",
        "summary": "List Addresses",
        "description": "Retrieve a list of addresses in a customer. The addresses can be filtered by fields like `query`. The addresses can also be paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The customer's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to apply on the address's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to apply on the address's searchable properties."
            }
          },
          {
            "name": "company",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "company",
                  "description": "Filter by a company."
                },
                {
                  "type": "array",
                  "description": "Filter by companies.",
                  "items": {
                    "type": "string",
                    "title": "company",
                    "description": "A company's name."
                  }
                }
              ]
            }
          },
          {
            "name": "city",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "city",
                  "description": "Filter by a city."
                },
                {
                  "type": "array",
                  "description": "Filter by cities.",
                  "items": {
                    "type": "string",
                    "title": "city",
                    "description": "A city's name."
                  }
                }
              ]
            }
          },
          {
            "name": "country_code",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "country_code",
                  "description": "Filter by a currency code."
                },
                {
                  "type": "array",
                  "description": "Filter by currency codes.",
                  "items": {
                    "type": "string",
                    "title": "country_code",
                    "description": "A currency code."
                  }
                }
              ]
            }
          },
          {
            "name": "province",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "province",
                  "description": "Filter by an ISO 3166-2 province code. Must be lower-case.",
                  "example": "us-ca",
                  "externalDocs": {
                    "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                    "description": "Learn more about ISO 3166-2"
                  }
                },
                {
                  "type": "array",
                  "description": "Filter by ISO 3166-2 provinces.",
                  "items": {
                    "type": "string",
                    "title": "province",
                    "description": "A ISO 3166-2 province code. Must be lower-case.",
                    "example": "us-ca",
                    "externalDocs": {
                      "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                      "description": "Learn more about ISO 3166-2"
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "postal_code",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "postal_code",
                  "description": "Filter by a postal code."
                },
                {
                  "type": "array",
                  "description": "Filter by postal codes.",
                  "items": {
                    "type": "string",
                    "title": "postal_code",
                    "description": "A postal code."
                  }
                }
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customer.listAddresses(\"cus_123\")\n.then(({ addresses }) => {\n  console.log(addresses)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/customers/{id}/addresses' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of customer addresses.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of customer addresses",
                      "required": [
                        "addresses"
                      ],
                      "properties": {
                        "addresses": {
                          "type": "array",
                          "description": "The customer addresses.",
                          "items": {
                            "$ref": "#/components/schemas/AdminCustomerAddress"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostCustomersIdAddresses",
        "summary": "Add a Customer Address",
        "x-sidebar-summary": "Add Address",
        "description": "Add an address to a customer.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The customer's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The address's details.",
                    "required": [
                      "address_name",
                      "company",
                      "first_name",
                      "last_name",
                      "address_1",
                      "address_2",
                      "city",
                      "country_code",
                      "province",
                      "postal_code",
                      "phone",
                      "metadata"
                    ],
                    "properties": {
                      "address_name": {
                        "type": "string",
                        "title": "address_name",
                        "description": "The name of the address."
                      },
                      "is_default_shipping": {
                        "type": "boolean",
                        "title": "is_default_shipping",
                        "description": "Whether this address is used by default for shipping when placing an order."
                      },
                      "is_default_billing": {
                        "type": "boolean",
                        "title": "is_default_billing",
                        "description": "Whether this address is used by default for billing when placing an order."
                      },
                      "company": {
                        "type": "string",
                        "title": "company",
                        "description": "The address's company."
                      },
                      "first_name": {
                        "type": "string",
                        "title": "first_name",
                        "description": "The address's first name."
                      },
                      "last_name": {
                        "type": "string",
                        "title": "last_name",
                        "description": "The address's last name."
                      },
                      "address_1": {
                        "type": "string",
                        "title": "address_1",
                        "description": "The address's first line."
                      },
                      "address_2": {
                        "type": "string",
                        "title": "address_2",
                        "description": "The address's second line."
                      },
                      "city": {
                        "type": "string",
                        "title": "city",
                        "description": "The address's city."
                      },
                      "country_code": {
                        "type": "string",
                        "title": "country_code",
                        "description": "The address's country code."
                      },
                      "province": {
                        "type": "string",
                        "title": "province",
                        "description": "The address's ISO 3166-2 province code. Must be lower-case.",
                        "example": "us-ca",
                        "externalDocs": {
                          "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                          "description": "Learn more about ISO 3166-2"
                        }
                      },
                      "postal_code": {
                        "type": "string",
                        "title": "postal_code",
                        "description": "The address's postal code."
                      },
                      "phone": {
                        "type": "string",
                        "title": "phone",
                        "description": "The address's phone."
                      },
                      "metadata": {
                        "type": "object",
                        "description": "The address's metadata."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The address's details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The address's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customer.createAddress(\"cus_123\", {\n  address_1: \"123 Main St\",\n  city: \"Anytown\",\n  country_code: \"US\",\n  postal_code: \"12345\"\n})\n.then(({ customer }) => {\n  console.log(customer)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/customers/{id}/addresses' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"address_name\": \"{value}\",\n  \"company\": \"{value}\",\n  \"first_name\": \"{value}\",\n  \"last_name\": \"{value}\",\n  \"address_1\": \"{value}\",\n  \"address_2\": \"{value}\",\n  \"city\": \"{value}\",\n  \"country_code\": \"{value}\",\n  \"province\": \"us-ca\",\n  \"postal_code\": \"{value}\",\n  \"phone\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCustomerResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createCustomerAddressesWorkflow",
        "x-events": []
      }
    },
    "/admin/customers/{id}/addresses/{address_id}": {
      "get": {
        "operationId": "AdminGetCustomersIdAddressesAddress_id",
        "summary": "List Addresses",
        "description": "Retrieve a list of a customer's addresses. The addresses can be filtered by fields like `company`. The addresses can also be paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The customer's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "address_id",
            "in": "path",
            "description": "The customer's address id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customer.retrieveAddress(\"cus_123\", \"cus_addr_123\")\n.then(({ customer }) => {\n  console.log(customer)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/customers/{id}/addresses/{address_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCustomerAddressResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostCustomersIdAddressesAddress_id",
        "summary": "Update a Customer's Address",
        "x-sidebar-summary": "Update Address",
        "description": "Update a customer address's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The customer's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "address_id",
            "in": "path",
            "description": "The customer's address id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The address's details.",
                    "required": [
                      "address_name",
                      "company",
                      "first_name",
                      "last_name",
                      "address_1",
                      "address_2",
                      "city",
                      "country_code",
                      "province",
                      "postal_code",
                      "phone",
                      "metadata"
                    ],
                    "properties": {
                      "address_name": {
                        "type": "string",
                        "title": "address_name",
                        "description": "The name of the address."
                      },
                      "is_default_shipping": {
                        "type": "boolean",
                        "title": "is_default_shipping",
                        "description": "Whether this address is used by default for shipping when placing an order."
                      },
                      "is_default_billing": {
                        "type": "boolean",
                        "title": "is_default_billing",
                        "description": "Whether this address is used by default for billing when placing an order."
                      },
                      "company": {
                        "type": "string",
                        "title": "company",
                        "description": "The address's company."
                      },
                      "first_name": {
                        "type": "string",
                        "title": "first_name",
                        "description": "The address's first name."
                      },
                      "last_name": {
                        "type": "string",
                        "title": "last_name",
                        "description": "The address's last name."
                      },
                      "address_1": {
                        "type": "string",
                        "title": "address_1",
                        "description": "The address's first line"
                      },
                      "address_2": {
                        "type": "string",
                        "title": "address_2",
                        "description": "The address's second line"
                      },
                      "city": {
                        "type": "string",
                        "title": "city",
                        "description": "The address's city."
                      },
                      "country_code": {
                        "type": "string",
                        "title": "country_code",
                        "description": "The address's country code."
                      },
                      "province": {
                        "type": "string",
                        "title": "province",
                        "description": "The address's ISO 3166-2 province code. Must be lower-case.",
                        "example": "us-ca",
                        "externalDocs": {
                          "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                          "description": "Learn more about ISO 3166-2"
                        }
                      },
                      "postal_code": {
                        "type": "string",
                        "title": "postal_code",
                        "description": "The address's postal code."
                      },
                      "phone": {
                        "type": "string",
                        "title": "phone",
                        "description": "The address's phone."
                      },
                      "metadata": {
                        "type": "object",
                        "description": "The address's metadata."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The address's details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The address's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customer.updateAddress(\"cus_123\", \"cus_addr_123\", {\n  address_1: \"123 Main St\",\n  city: \"Anytown\",\n  country_code: \"US\",\n  postal_code: \"12345\"\n})\n.then(({ customer }) => {\n  console.log(customer)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/customers/{id}/addresses/{address_id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"address_name\": \"{value}\",\n  \"company\": \"{value}\",\n  \"first_name\": \"{value}\",\n  \"last_name\": \"{value}\",\n  \"address_1\": \"{value}\",\n  \"address_2\": \"{value}\",\n  \"city\": \"{value}\",\n  \"country_code\": \"{value}\",\n  \"province\": \"{value}\",\n  \"postal_code\": \"{value}\",\n  \"phone\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCustomerResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateCustomerAddressesWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteCustomersIdAddressesAddress_id",
        "summary": "Remove an Address from Customer",
        "description": "Remove a customer's address.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The customer's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "address_id",
            "in": "path",
            "description": "The customer address's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customer.deleteAddress(\"cus_123\", \"cus_addr_123\")\n.then(({ customer }) => {\n  console.log(customer)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/customers/{id}/addresses/{address_id}' \\ -H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The deletion's details.",
                      "required": [
                        "id",
                        "object",
                        "deleted"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "title": "id",
                          "description": "The customer's ID."
                        },
                        "object": {
                          "type": "string",
                          "title": "object",
                          "description": "The name of the deleted object."
                        },
                        "deleted": {
                          "type": "boolean",
                          "title": "deleted",
                          "description": "Whether the Customer was deleted."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The deletion's details.",
                      "properties": {
                        "parent": {
                          "$ref": "#/components/schemas/AdminCustomer"
                        }
                      }
                    }
                  ],
                  "description": "The deletion's details."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteCustomerAddressesWorkflow",
        "x-events": []
      }
    },
    "/admin/customers/{id}/customer-groups": {
      "post": {
        "operationId": "AdminPostCustomersIdCustomerGroups",
        "x-sidebar-summary": "Manage Customer Groups",
        "summary": "Manage Customer Groups of Customer",
        "description": "Manage the customer groups of a customer, adding or removing the customer from those groups.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The customer's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in \nthe [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchLink"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.customer.batchCustomerGroups(\"cus_123\", {\n  add: [\"cusgroup_123\"],\n  remove: [\"cusgroup_321\"]\n})\n.then(({ customer }) => {\n  console.log(customer)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/customers/{id}/customer-groups' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminCustomerResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "linkCustomerGroupsToCustomerWorkflow",
        "x-events": []
      }
    },
    "/admin/draft-orders": {
      "get": {
        "operationId": "AdminGetDraftOrders",
        "summary": "List Draft Orders",
        "description": "Retrieve a list of draft orders. The draft orders can be filtered by fields such as `id`. The draft orders can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a draft order's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by draft order IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A draft order's ID."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by conditions on the draft order's ID.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by exact matches.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by exact matches.",
                          "items": {
                            "oneOf": [
                              {
                                "type": "string",
                                "title": "$eq",
                                "description": "Filter by an exact match."
                              },
                              {
                                "type": "array",
                                "description": "Filter by exact matches.",
                                "items": {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                }
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not equal to this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$ne",
                            "description": "Filter by values not equal to this parameter."
                          }
                        }
                      ]
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "oneOf": [
                          {
                            "type": "string",
                            "title": "$in",
                            "description": "Filter by matching value."
                          },
                          {
                            "type": "array",
                            "description": "Filter by values in this array.",
                            "items": {
                              "type": "string",
                              "title": "$in",
                              "description": "Filter matching values."
                            }
                          }
                        ]
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "oneOf": [
                          {
                            "type": "string",
                            "title": "$nin",
                            "description": "Filter by values not matching this parameter."
                          },
                          {
                            "type": "array",
                            "description": "Filter by values not in this array.",
                            "items": {
                              "type": "string",
                              "title": "$nin",
                              "description": "Filter by values not matching this parameter."
                            }
                          }
                        ]
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "properties": {
                            "$and": {
                              "type": "array",
                              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$and"
                            },
                            "$or": {
                              "type": "array",
                              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$or"
                            },
                            "$eq": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by exact matches.",
                                  "items": {
                                    "type": "string",
                                    "title": "$eq",
                                    "description": "Filter by an exact match."
                                  }
                                }
                              ]
                            },
                            "$ne": {
                              "type": "string",
                              "title": "$ne",
                              "description": "Filter by values not equal to this parameter."
                            },
                            "$in": {
                              "type": "array",
                              "description": "Filter by values in this array.",
                              "items": {
                                "type": "string",
                                "title": "$in",
                                "description": "Filter by values in this array."
                              }
                            },
                            "$nin": {
                              "type": "array",
                              "description": "Filter by values not in this array.",
                              "items": {
                                "type": "string",
                                "title": "$nin",
                                "description": "Filter by values not in this array."
                              }
                            },
                            "$not": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$not",
                                  "description": "Filter by values not matching this parameter."
                                },
                                {
                                  "type": "object",
                                  "description": "Filter by values not matching the conditions in this parameter."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by values not in this array.",
                                  "items": {
                                    "type": "string",
                                    "title": "$not",
                                    "description": "Filter by values not matching this parameter."
                                  }
                                }
                              ]
                            },
                            "$gt": {
                              "type": "string",
                              "title": "$gt",
                              "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                            },
                            "$gte": {
                              "type": "string",
                              "title": "$gte",
                              "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$lt": {
                              "type": "string",
                              "title": "$lt",
                              "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                            },
                            "$lte": {
                              "type": "string",
                              "title": "$lte",
                              "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$like": {
                              "type": "string",
                              "title": "$like",
                              "description": "Apply a `like` filter. Useful for strings only."
                            },
                            "$re": {
                              "type": "string",
                              "title": "$re",
                              "description": "Apply a regex filter. Useful for strings only."
                            },
                            "$ilike": {
                              "type": "string",
                              "title": "$ilike",
                              "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                            },
                            "$fulltext": {
                              "type": "string",
                              "title": "$fulltext",
                              "description": "Filter to apply on full-text properties."
                            },
                            "$overlap": {
                              "type": "array",
                              "description": "Filter arrays that have overlapping values with this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$overlap",
                                "description": "Filter arrays that have overlapping values with this parameter."
                              }
                            },
                            "$contains": {
                              "type": "array",
                              "description": "Filter arrays that contain some of the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contains",
                                "description": "Filter arrays that contain some of the values of this parameter."
                              }
                            },
                            "$contained": {
                              "type": "array",
                              "description": "Filter arrays that contain all values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contained",
                                "description": "Filter arrays that contain all values of this parameter."
                              }
                            },
                            "$exists": {
                              "type": "boolean",
                              "title": "$exists",
                              "description": "Filter by whether a value for this parameter exists (not `null`)."
                            }
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching this parameter."
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "oneOf": [
                              {
                                "type": "string",
                                "title": "$not",
                                "description": "Filter by values not matching this parameter."
                              },
                              {
                                "type": "object",
                                "description": "Filter by values not matching the conditions in this parameter.",
                                "properties": {
                                  "$and": {
                                    "type": "array",
                                    "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "title": "$and"
                                  },
                                  "$or": {
                                    "type": "array",
                                    "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "title": "$or"
                                  },
                                  "$eq": {
                                    "oneOf": [
                                      {
                                        "type": "string",
                                        "title": "$eq",
                                        "description": "Filter by an exact match."
                                      },
                                      {
                                        "type": "array",
                                        "description": "Filter by exact matches.",
                                        "items": {
                                          "type": "string",
                                          "title": "$eq",
                                          "description": "Filter by an exact match."
                                        }
                                      }
                                    ]
                                  },
                                  "$ne": {
                                    "type": "string",
                                    "title": "$ne",
                                    "description": "Filter by values not equal to this parameter."
                                  },
                                  "$in": {
                                    "type": "array",
                                    "description": "Filter by values in this array.",
                                    "items": {
                                      "type": "string",
                                      "title": "$in",
                                      "description": "Filter by exact matches."
                                    }
                                  },
                                  "$nin": {
                                    "type": "array",
                                    "description": "Filter by values not in this array.",
                                    "items": {
                                      "type": "string",
                                      "title": "$nin",
                                      "description": "Filter by values not matching this parameter."
                                    }
                                  },
                                  "$not": {
                                    "oneOf": [
                                      {
                                        "type": "string",
                                        "title": "$not",
                                        "description": "Filter by values not matching this parameter."
                                      },
                                      {
                                        "type": "object",
                                        "description": "Filter by values not matching the conditions in this parameter."
                                      },
                                      {
                                        "type": "array",
                                        "description": "Filter by values not in this array.",
                                        "items": {
                                          "type": "string",
                                          "title": "$not",
                                          "description": "Filter by values not matching this parameter."
                                        }
                                      }
                                    ]
                                  },
                                  "$gt": {
                                    "type": "string",
                                    "title": "$gt",
                                    "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                                  },
                                  "$gte": {
                                    "type": "string",
                                    "title": "$gte",
                                    "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                                  },
                                  "$lt": {
                                    "type": "string",
                                    "title": "$lt",
                                    "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                                  },
                                  "$lte": {
                                    "type": "string",
                                    "title": "$lte",
                                    "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                                  },
                                  "$like": {
                                    "type": "string",
                                    "title": "$like",
                                    "description": "Apply a `like` filter. Useful for strings only."
                                  },
                                  "$re": {
                                    "type": "string",
                                    "title": "$re",
                                    "description": "Apply a regex filter. Useful for strings only."
                                  },
                                  "$ilike": {
                                    "type": "string",
                                    "title": "$ilike",
                                    "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                                  },
                                  "$fulltext": {
                                    "type": "string",
                                    "title": "$fulltext",
                                    "description": "Filter to apply on full-text properties."
                                  },
                                  "$overlap": {
                                    "type": "array",
                                    "description": "Filter arrays that have overlapping values with this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$overlap",
                                      "description": "Filter arrays that have overlapping values with this parameter."
                                    }
                                  },
                                  "$contains": {
                                    "type": "array",
                                    "description": "Filter arrays that contain some of the values of this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$contains",
                                      "description": "Filter arrays that contain some of the values of this parameter."
                                    }
                                  },
                                  "$contained": {
                                    "type": "array",
                                    "description": "Filter arrays that contain all values of this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$contained",
                                      "description": "Filter arrays that contain all values of this parameter."
                                    }
                                  },
                                  "$exists": {
                                    "type": "boolean",
                                    "title": "$exists",
                                    "description": "Filter by whether a value for this parameter exists (not `null`)."
                                  }
                                }
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values greater than items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$gt",
                            "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$gte": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values greater than or equal to items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$gte",
                            "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$lt": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values less than items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$lt",
                            "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$lte": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values less than or equal to items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$lte",
                            "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by a draft order's status."
                },
                {
                  "type": "array",
                  "description": "Filter by draft order statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "The draft order status."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by conditions on the status.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by exact matches.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by exact matches.",
                          "items": {
                            "oneOf": [
                              {
                                "type": "string",
                                "title": "$eq",
                                "description": "Filter by an exact match."
                              },
                              {
                                "type": "array",
                                "description": "Filter by exact matches.",
                                "items": {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                }
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not equal to this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$ne",
                            "description": "Filter by values not equal to this parameter."
                          }
                        }
                      ]
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "oneOf": [
                          {
                            "type": "string",
                            "title": "$in",
                            "description": "Filter by matching value."
                          },
                          {
                            "type": "array",
                            "description": "Filter by values in this array.",
                            "items": {
                              "type": "string",
                              "title": "$in",
                              "description": "Filter matching values."
                            }
                          }
                        ]
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "oneOf": [
                          {
                            "type": "string",
                            "title": "$nin",
                            "description": "Filter by values not matching this parameter."
                          },
                          {
                            "type": "array",
                            "description": "Filter by values not in this array.",
                            "items": {
                              "type": "string",
                              "title": "$nin",
                              "description": "Filter by values not matching this parameter."
                            }
                          }
                        ]
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "properties": {
                            "$and": {
                              "type": "array",
                              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$and"
                            },
                            "$or": {
                              "type": "array",
                              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$or"
                            },
                            "$eq": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by exact matches.",
                                  "items": {
                                    "type": "string",
                                    "title": "$eq",
                                    "description": "Filter by an exact match."
                                  }
                                }
                              ]
                            },
                            "$ne": {
                              "type": "string",
                              "title": "$ne",
                              "description": "Filter by values not equal to this parameter."
                            },
                            "$in": {
                              "type": "array",
                              "description": "Filter by values in this array.",
                              "items": {
                                "type": "string",
                                "title": "$in",
                                "description": "Filter by values in this array."
                              }
                            },
                            "$nin": {
                              "type": "array",
                              "description": "Filter by values not in this array.",
                              "items": {
                                "type": "string",
                                "title": "$nin",
                                "description": "Filter by values not in this array."
                              }
                            },
                            "$not": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$not",
                                  "description": "Filter by values not matching this parameter."
                                },
                                {
                                  "type": "object",
                                  "description": "Filter by values not matching the conditions in this parameter."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by values not in this array.",
                                  "items": {
                                    "type": "string",
                                    "title": "$not",
                                    "description": "Filter by values not matching this parameter."
                                  }
                                }
                              ]
                            },
                            "$gt": {
                              "type": "string",
                              "title": "$gt",
                              "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                            },
                            "$gte": {
                              "type": "string",
                              "title": "$gte",
                              "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$lt": {
                              "type": "string",
                              "title": "$lt",
                              "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                            },
                            "$lte": {
                              "type": "string",
                              "title": "$lte",
                              "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$like": {
                              "type": "string",
                              "title": "$like",
                              "description": "Apply a `like` filter. Useful for strings only."
                            },
                            "$re": {
                              "type": "string",
                              "title": "$re",
                              "description": "Apply a regex filter. Useful for strings only."
                            },
                            "$ilike": {
                              "type": "string",
                              "title": "$ilike",
                              "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                            },
                            "$fulltext": {
                              "type": "string",
                              "title": "$fulltext",
                              "description": "Filter to apply on full-text properties."
                            },
                            "$overlap": {
                              "type": "array",
                              "description": "Filter arrays that have overlapping values with this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$overlap",
                                "description": "Filter arrays that have overlapping values with this parameter."
                              }
                            },
                            "$contains": {
                              "type": "array",
                              "description": "Filter arrays that contain some of the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contains",
                                "description": "Filter arrays that contain some of the values of this parameter."
                              }
                            },
                            "$contained": {
                              "type": "array",
                              "description": "Filter arrays that contain all values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contained",
                                "description": "Filter arrays that contain all values of this parameter."
                              }
                            },
                            "$exists": {
                              "type": "boolean",
                              "title": "$exists",
                              "description": "Filter by whether a value for this parameter exists (not `null`)."
                            }
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching this parameter."
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "oneOf": [
                              {
                                "type": "string",
                                "title": "$not",
                                "description": "Filter by values not matching this parameter."
                              },
                              {
                                "type": "object",
                                "description": "Filter by values not matching the conditions in this parameter.",
                                "properties": {
                                  "$and": {
                                    "type": "array",
                                    "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "title": "$and"
                                  },
                                  "$or": {
                                    "type": "array",
                                    "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                                    "items": {
                                      "type": "object"
                                    },
                                    "title": "$or"
                                  },
                                  "$eq": {
                                    "oneOf": [
                                      {
                                        "type": "string",
                                        "title": "$eq",
                                        "description": "Filter by an exact match."
                                      },
                                      {
                                        "type": "array",
                                        "description": "Filter by exact matches.",
                                        "items": {
                                          "type": "string",
                                          "title": "$eq",
                                          "description": "Filter by an exact match."
                                        }
                                      }
                                    ]
                                  },
                                  "$ne": {
                                    "type": "string",
                                    "title": "$ne",
                                    "description": "Filter by values not equal to this parameter."
                                  },
                                  "$in": {
                                    "type": "array",
                                    "description": "Filter by values in this array.",
                                    "items": {
                                      "type": "string",
                                      "title": "$in",
                                      "description": "Filter by exact matches."
                                    }
                                  },
                                  "$nin": {
                                    "type": "array",
                                    "description": "Filter by values not in this array.",
                                    "items": {
                                      "type": "string",
                                      "title": "$nin",
                                      "description": "Filter by values not matching this parameter."
                                    }
                                  },
                                  "$not": {
                                    "oneOf": [
                                      {
                                        "type": "string",
                                        "title": "$not",
                                        "description": "Filter by values not matching this parameter."
                                      },
                                      {
                                        "type": "object",
                                        "description": "Filter by values not matching the conditions in this parameter."
                                      },
                                      {
                                        "type": "array",
                                        "description": "Filter by values not in this array.",
                                        "items": {
                                          "type": "string",
                                          "title": "$not",
                                          "description": "Filter by values not matching this parameter."
                                        }
                                      }
                                    ]
                                  },
                                  "$gt": {
                                    "type": "string",
                                    "title": "$gt",
                                    "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                                  },
                                  "$gte": {
                                    "type": "string",
                                    "title": "$gte",
                                    "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                                  },
                                  "$lt": {
                                    "type": "string",
                                    "title": "$lt",
                                    "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                                  },
                                  "$lte": {
                                    "type": "string",
                                    "title": "$lte",
                                    "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                                  },
                                  "$like": {
                                    "type": "string",
                                    "title": "$like",
                                    "description": "Apply a `like` filter. Useful for strings only."
                                  },
                                  "$re": {
                                    "type": "string",
                                    "title": "$re",
                                    "description": "Apply a regex filter. Useful for strings only."
                                  },
                                  "$ilike": {
                                    "type": "string",
                                    "title": "$ilike",
                                    "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                                  },
                                  "$fulltext": {
                                    "type": "string",
                                    "title": "$fulltext",
                                    "description": "Filter to apply on full-text properties."
                                  },
                                  "$overlap": {
                                    "type": "array",
                                    "description": "Filter arrays that have overlapping values with this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$overlap",
                                      "description": "Filter arrays that have overlapping values with this parameter."
                                    }
                                  },
                                  "$contains": {
                                    "type": "array",
                                    "description": "Filter arrays that contain some of the values of this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$contains",
                                      "description": "Filter arrays that contain some of the values of this parameter."
                                    }
                                  },
                                  "$contained": {
                                    "type": "array",
                                    "description": "Filter arrays that contain all values of this parameter.",
                                    "items": {
                                      "type": "string",
                                      "title": "$contained",
                                      "description": "Filter arrays that contain all values of this parameter."
                                    }
                                  },
                                  "$exists": {
                                    "type": "boolean",
                                    "title": "$exists",
                                    "description": "Filter by whether a value for this parameter exists (not `null`)."
                                  }
                                }
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values greater than items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$gt",
                            "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$gte": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values greater than or equal to items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$gte",
                            "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$lt": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values less than items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$lt",
                            "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$lte": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values less than or equal to items in this array. Useful for numbers and dates only.",
                          "items": {
                            "type": "string",
                            "title": "$lte",
                            "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                          }
                        }
                      ]
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "sales_channel_id",
            "in": "query",
            "description": "Filter by the associated sales channels to retrieve its draft orders.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Filter by the associated sales channels to retrieve its draft orders.",
              "items": {
                "type": "string",
                "title": "sales_channel_id",
                "description": "A sales channel's ID."
              }
            }
          },
          {
            "name": "region_id",
            "in": "query",
            "description": "Filter by region IDs to retrieve their associated draft orders.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "region_id",
                  "description": "The draft order's region id."
                },
                {
                  "type": "array",
                  "description": "The draft order's region id.",
                  "items": {
                    "type": "string",
                    "title": "region_id",
                    "description": "The region id's details."
                  }
                }
              ]
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the order's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the order's searchable properties."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the draft order's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the draft order's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the draft order's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the draft order's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "customer_id",
                  "description": "The draft order's customer id."
                },
                {
                  "type": "array",
                  "description": "The draft order's customer id.",
                  "items": {
                    "type": "string",
                    "title": "customer_id",
                    "description": "The customer id's details."
                  }
                }
              ]
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.list()\n.then(({ draft_orders, count, limit, offset }) => {\n  console.log(draft_orders)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/draft-orders' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminDraftOrderListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "getOrdersListWorkflow",
        "x-events": []
      },
      "post": {
        "operationId": "AdminPostDraftOrders",
        "summary": "Create Draft Order",
        "description": "Create a draft order. This creates an order with the `is_draft_order` property enabled. You can later convert the draft order to an order.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The draft order's details.",
                    "required": [
                      "sales_channel_id",
                      "email",
                      "customer_id",
                      "region_id",
                      "currency_code",
                      "shipping_methods",
                      "metadata"
                    ],
                    "properties": {
                      "status": {
                        "type": "string",
                        "title": "status",
                        "description": "The draft order's status.",
                        "enum": [
                          "completed"
                        ]
                      },
                      "sales_channel_id": {
                        "type": "string",
                        "title": "sales_channel_id",
                        "description": "The ID of the associated sales channel."
                      },
                      "email": {
                        "type": "string",
                        "title": "email",
                        "description": "The email of the draft order's customer.",
                        "format": "email"
                      },
                      "customer_id": {
                        "type": "string",
                        "title": "customer_id",
                        "description": "The ID of the draft order's customer."
                      },
                      "billing_address": {
                        "type": "object",
                        "description": "The billing address's details.",
                        "required": [
                          "first_name",
                          "last_name",
                          "phone",
                          "company",
                          "address_1",
                          "address_2",
                          "city",
                          "country_code",
                          "province",
                          "postal_code",
                          "metadata"
                        ],
                        "properties": {
                          "first_name": {
                            "type": "string",
                            "title": "first_name",
                            "description": "The billing address's first name."
                          },
                          "last_name": {
                            "type": "string",
                            "title": "last_name",
                            "description": "The billing address's last name."
                          },
                          "phone": {
                            "type": "string",
                            "title": "phone",
                            "description": "The billing address's phone."
                          },
                          "company": {
                            "type": "string",
                            "title": "company",
                            "description": "The billing address's company."
                          },
                          "address_1": {
                            "type": "string",
                            "title": "address_1",
                            "description": "The billing address's first line."
                          },
                          "address_2": {
                            "type": "string",
                            "title": "address_2",
                            "description": "The billing address's second line."
                          },
                          "city": {
                            "type": "string",
                            "title": "city",
                            "description": "The billing address's city."
                          },
                          "country_code": {
                            "type": "string",
                            "title": "country_code",
                            "description": "The billing address's country code."
                          },
                          "province": {
                            "type": "string",
                            "title": "province",
                            "description": "The billing address's ISO 3166-2 province code. Must be lower-case.",
                            "example": "us-ca",
                            "externalDocs": {
                              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                              "description": "Learn more about ISO 3166-2"
                            }
                          },
                          "postal_code": {
                            "type": "string",
                            "title": "postal_code",
                            "description": "The billing address's postal code."
                          },
                          "metadata": {
                            "type": "object",
                            "description": "The billing address's metadata."
                          }
                        }
                      },
                      "shipping_address": {
                        "type": "object",
                        "description": "The draft order's shipping address.",
                        "required": [
                          "first_name",
                          "last_name",
                          "phone",
                          "company",
                          "address_1",
                          "address_2",
                          "city",
                          "country_code",
                          "province",
                          "postal_code",
                          "metadata"
                        ],
                        "properties": {
                          "first_name": {
                            "type": "string",
                            "title": "first_name",
                            "description": "The shipping address's first name."
                          },
                          "last_name": {
                            "type": "string",
                            "title": "last_name",
                            "description": "The shipping address's last name."
                          },
                          "phone": {
                            "type": "string",
                            "title": "phone",
                            "description": "The shipping address's phone."
                          },
                          "company": {
                            "type": "string",
                            "title": "company",
                            "description": "The shipping address's company."
                          },
                          "address_1": {
                            "type": "string",
                            "title": "address_1",
                            "description": "The shipping address's first line."
                          },
                          "address_2": {
                            "type": "string",
                            "title": "address_2",
                            "description": "The shipping address's second line."
                          },
                          "city": {
                            "type": "string",
                            "title": "city",
                            "description": "The shipping address's city."
                          },
                          "country_code": {
                            "type": "string",
                            "title": "country_code",
                            "description": "The shipping address's country code."
                          },
                          "province": {
                            "type": "string",
                            "title": "province",
                            "description": "The shipping address's ISO 3166-2 province code. Must be lower-case.",
                            "example": "us-ca",
                            "externalDocs": {
                              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                              "description": "Learn more about ISO 3166-2"
                            }
                          },
                          "postal_code": {
                            "type": "string",
                            "title": "postal_code",
                            "description": "The shipping address's postal code."
                          },
                          "metadata": {
                            "type": "object",
                            "description": "The shipping address's metadata."
                          }
                        }
                      },
                      "items": {
                        "type": "array",
                        "description": "The draft order's items.",
                        "items": {
                          "type": "object",
                          "description": "The item's details.",
                          "required": [
                            "title",
                            "sku",
                            "barcode",
                            "variant_id",
                            "unit_price",
                            "quantity",
                            "metadata"
                          ],
                          "properties": {
                            "title": {
                              "type": "string",
                              "title": "title",
                              "description": "The item's title."
                            },
                            "sku": {
                              "type": "string",
                              "title": "sku",
                              "description": "The item's SKU."
                            },
                            "barcode": {
                              "type": "string",
                              "title": "barcode",
                              "description": "The item's barcode."
                            },
                            "variant_id": {
                              "type": "string",
                              "title": "variant_id",
                              "description": "The ID of the associated product variant."
                            },
                            "unit_price": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "unit_price",
                                  "description": "The item's unit price."
                                },
                                {
                                  "type": "number",
                                  "title": "unit_price",
                                  "description": "The item's unit price."
                                },
                                {
                                  "type": "object",
                                  "description": "The item's unit price.",
                                  "required": [
                                    "value",
                                    "precision"
                                  ],
                                  "properties": {
                                    "value": {
                                      "type": "string",
                                      "title": "value",
                                      "description": "The unit price's value."
                                    },
                                    "precision": {
                                      "type": "number",
                                      "title": "precision",
                                      "description": "The unit price's rounding precision."
                                    }
                                  }
                                }
                              ]
                            },
                            "quantity": {
                              "type": "number",
                              "title": "quantity",
                              "description": "The item's ordered quantity."
                            },
                            "metadata": {
                              "type": "object",
                              "description": "The item's metadata."
                            }
                          }
                        }
                      },
                      "region_id": {
                        "type": "string",
                        "title": "region_id",
                        "description": "The ID of the associated region."
                      },
                      "promo_codes": {
                        "type": "array",
                        "description": "The promotion codes applied on the draft order.",
                        "items": {
                          "type": "string",
                          "title": "promo_codes",
                          "description": "A promotion code."
                        }
                      },
                      "currency_code": {
                        "type": "string",
                        "title": "currency_code",
                        "description": "The draft order's currency code."
                      },
                      "no_notification_order": {
                        "type": "boolean",
                        "title": "no_notification_order",
                        "description": "Whether to send the customer notifications on order changes."
                      },
                      "shipping_methods": {
                        "type": "array",
                        "description": "The draft order's shipping methods.",
                        "items": {
                          "type": "object",
                          "description": "The shipping method's details.",
                          "required": [
                            "name",
                            "option_id",
                            "amount"
                          ],
                          "properties": {
                            "shipping_method_id": {
                              "type": "string",
                              "title": "shipping_method_id",
                              "description": "The ID of an existing shipping method."
                            },
                            "name": {
                              "type": "string",
                              "title": "name",
                              "description": "The shipping method's name."
                            },
                            "option_id": {
                              "type": "string",
                              "title": "option_id",
                              "description": "The ID of the shipping option this method is created from."
                            },
                            "data": {
                              "type": "object",
                              "description": "The shipping method's data, useful for fulfillment providers.",
                              "externalDocs": {
                                "url": "https://docs.medusajs.com/resources/commerce-modules/order/concepts#data-property"
                              }
                            },
                            "amount": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "amount",
                                  "description": "The shipping method's amount."
                                },
                                {
                                  "type": "number",
                                  "title": "amount",
                                  "description": "The shipping method's amount."
                                },
                                {
                                  "type": "object",
                                  "description": "The shipping method's amount.",
                                  "required": [
                                    "value",
                                    "precision"
                                  ],
                                  "properties": {
                                    "value": {
                                      "type": "string",
                                      "title": "value",
                                      "description": "The amount's value."
                                    },
                                    "precision": {
                                      "type": "number",
                                      "title": "precision",
                                      "description": "The amount's rounding precision."
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      },
                      "metadata": {
                        "type": "object",
                        "description": "The draft order's metadata."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The draft order's details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The draft order's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.create({\n  email: \"test@test.com\",\n  items: [\n    {\n      variant_id: \"variant_123\",\n      quantity: 1,\n    },\n  ],\n  region_id: \"region_123\",\n  sales_channel_id: \"sc_123\",\n})\n.then(({ draft_order }) => {\n  console.log(draft_order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/draft-orders' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"sales_channel_id\": \"{value}\",\n  \"email\": \"Bartholome.Goodwin90@yahoo.com\",\n  \"customer_id\": \"{value}\",\n  \"region_id\": \"{value}\",\n  \"currency_code\": \"{value}\",\n  \"shipping_methods\": [\n    {\n      \"shipping_method_id\": \"{value}\",\n      \"order_id\": \"{value}\",\n      \"name\": \"Cheyanne\",\n      \"option_id\": \"{value}\"\n    }\n  ],\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminDraftOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createOrderWorkflow",
        "x-events": []
      }
    },
    "/admin/draft-orders/{id}": {
      "get": {
        "operationId": "AdminGetDraftOrdersId",
        "summary": "Get a Draft Order",
        "description": "Retrieve a draft order by its ID. You can expand the draft order's relations or select the fields that should be returned using the query parameters.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.retrieve(\"order_123\")\n.then(({ draft_order }) => {\n  console.log(draft_order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/draft-orders/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminDraftOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "getOrderDetailWorkflow",
        "x-events": []
      },
      "post": {
        "operationId": "AdminPostDraftOrdersId",
        "summary": "Update a Draft Order",
        "description": "Update a draft order's details. This doesn't include updating the draft order's items, shipping methods, or promotions. To update those, you need to create an edit that you can later request or confirm.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateDraftOrder"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.update(\"order_123\", {\n  email: \"test@test.com\",\n})\n.then(({ draft_order }) => {\n  console.log(draft_order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/draft-orders/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"email\": \"test@test.com\"\n}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminDraftOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateDraftOrderWorkflow",
        "x-events": [
          {
            "name": "order.updated",
            "payload": "```ts\n{\n  id, // The ID of the order\n}\n```",
            "description": "Emitted when the details of an order or draft order is updated. This\ndoesn't include updates made by an edit.",
            "deprecated": false
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteDraftOrdersId",
        "summary": "Delete a Draft Order",
        "description": "Delete a draft order.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.delete(\"order_123\")\n.then(({ id, object, deleted }) => {\n  console.log(id, object, deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/draft-orders/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteDraftOrdersWorkflow",
        "x-events": [],
        "x-since": "2.8.4"
      }
    },
    "/admin/draft-orders/{id}/convert-to-order": {
      "post": {
        "operationId": "AdminPostDraftOrdersIdConvertToOrder",
        "summary": "Convert a Draft Order to an Order",
        "x-sidebar-summary": "Convert to Order",
        "description": "Convert a draft order to an order. This will finalize the draft order and create a new order with the same details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.convertToOrder(\"order_123\")\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/draft-orders/{id}/convert-to-order' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "convertDraftOrderWorkflow",
        "x-events": [
          {
            "name": "order.placed",
            "payload": "```ts\n{\n  id, // The ID of the order\n}\n```",
            "description": "Emitted when an order is placed, or when a draft order is converted to an\norder.",
            "deprecated": false
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminDraftOrderParams"
              }
            }
          }
        }
      }
    },
    "/admin/draft-orders/{id}/edit": {
      "post": {
        "operationId": "AdminPostDraftOrdersIdEdit",
        "summary": "Create a Draft Order Edit",
        "x-sidebar-summary": "Create Edit",
        "description": "Create an edit on a draft order. This will allow you to make changes to the draft order's items, shipping methods, or promotions. Once you've made the necessar changes, you can later either request the edit (which requires a confirmation from the customer), or force-confirm the edit.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.beginEdit(\"order_123\")\n.then(({ draft_order_preview }) => {\n  console.log(draft_order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/draft-orders/{id}/edit' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "beginDraftOrderEditWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteDraftOrdersIdEdit",
        "summary": "Cancel Edit on Draft Order",
        "x-sidebar-summary": "Cancel Edit",
        "description": "Cancel an unconfirmed edit on a draft order.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.cancelEdit(\"order_123\")\n.then(({ id, object, deleted }) => {\n  console.log(id, object, deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/draft-orders/{id}/edit' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "cancelDraftOrderEditWorkflow",
        "x-events": []
      }
    },
    "/admin/draft-orders/{id}/edit/confirm": {
      "post": {
        "operationId": "AdminPostDraftOrdersIdEditConfirm",
        "summary": "Confirm an Edit on a Draft Order",
        "x-sidebar-summary": "Confirm Edit",
        "description": "Confirm an edit on a draft order. This will apply the changes made to the draft order.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.confirmEdit(\"order_123\")\n.then(({ draft_order_preview }) => {\n  console.log(draft_order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/confirm' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "confirmDraftOrderEditWorkflow",
        "x-events": []
      }
    },
    "/admin/draft-orders/{id}/edit/items": {
      "post": {
        "operationId": "AdminPostDraftOrdersIdEditItems",
        "summary": "Add Item to Draft Order Edit",
        "x-sidebar-summary": "Add Item",
        "description": "Add an item to a draft order edit.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminAddDraftOrderItems"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.addItems(\"order_123\", {\n  items: [\n    {\n      variant_id: \"variant_123\",\n      quantity: 1,\n    },\n  ],\n})\n.then(({ draft_order_preview }) => {\n  console.log(draft_order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/items' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "addDraftOrderItemsWorkflow",
        "x-events": []
      }
    },
    "/admin/draft-orders/{id}/edit/items/item/{item_id}": {
      "post": {
        "operationId": "AdminPostDraftOrdersIdEditItemsItemItem_id",
        "summary": "Update Existing Item in Draft Order Edit",
        "x-sidebar-summary": "Update Item",
        "description": "Update an existing item in a draft order edit.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "item_id",
            "in": "path",
            "description": "The item's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateDraftOrderItem"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.updateItem(\"order_123\", \"item_123\", {\n  quantity: 2,\n})\n.then(({ draft_order_preview }) => {\n  console.log(draft_order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/items/item/{item_id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"quantity\": 0\n}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateDraftOrderItemWorkflow",
        "x-events": []
      }
    },
    "/admin/draft-orders/{id}/edit/items/{action_id}": {
      "post": {
        "operationId": "AdminPostDraftOrdersIdEditItemsAction_id",
        "summary": "Update New Item in Draft Order Edit",
        "x-sidebar-summary": "Update New Item",
        "description": "Update a new item that was added to a draft order edit by the ID of the item's `ITEM_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the item's `ITEM_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateDraftOrderItem"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.updateActionItem(\"order_123\", \"action_123\", {\n  quantity: 2,\n})\n.then(({ draft_order_preview }) => {\n  console.log(draft_order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/items/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"quantity\": 39\n}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateDraftOrderActionItemWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteDraftOrdersIdEditItemsAction_id",
        "summary": "Remove Item from Draft Order Edit",
        "x-sidebar-summary": "Remove Item",
        "description": "Remove an order item from a draft order edit by the ID of the item's `ITEM_ADD` or `ITEM_UPDATE` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the order item's `ITEM_ADD` or `ITEM_UPDATE` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.removeActionItem(\"order_123\", \"action_123\")\n.then(({ draft_order_preview }) => {\n  console.log(draft_order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/draft-orders/{id}/edit/items/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeDraftOrderActionItemWorkflow",
        "x-events": []
      }
    },
    "/admin/draft-orders/{id}/edit/promotions": {
      "post": {
        "operationId": "AdminPostDraftOrdersIdEditPromotions",
        "summary": "Add Promotions to Draft Order Edit",
        "x-sidebar-summary": "Add Promotions",
        "description": "Add promotions to a draft order edit.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminAddDraftOrderPromotions"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.addPromotions(\"order_123\", {\n  promo_codes: [\"PROMO_CODE_1\", \"PROMO_CODE_2\"],\n})\n.then(({ draft_order_preview }) => {\n  console.log(draft_order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/promotions' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"promo_codes\": [\n    \"{value}\"\n  ]\n}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminDraftOrderPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "addDraftOrderPromotionWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteDraftOrdersIdEditPromotions",
        "summary": "Remove Promotions from Draft Order Edit",
        "x-sidebar-summary": "Remove Promotions",
        "description": "Remove specified promotions from a draft order edit.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.removePromotions(\"order_123\", {\n  promo_codes: [\"PROMO_CODE_1\", \"PROMO_CODE_2\"],\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/draft-orders/{id}/edit/promotions' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminDraftOrderPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeDraftOrderPromotionsWorkflow",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminRemoveDraftOrderPromotions"
              }
            }
          }
        },
        "x-events": []
      }
    },
    "/admin/draft-orders/{id}/edit/request": {
      "post": {
        "operationId": "AdminPostDraftOrdersIdEditRequest",
        "summary": "Request Edit on Draft Order",
        "x-sidebar-summary": "Request Edit",
        "description": "Change the status of a draft order's edit to be requested. Later, the edit can be confirmed or canceled.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.requestEdit(\"order_123\")\n.then(({ draft_order_preview }) => {\n  console.log(draft_order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/request' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "requestDraftOrderEditWorkflow",
        "x-events": []
      }
    },
    "/admin/draft-orders/{id}/edit/shipping-methods": {
      "post": {
        "operationId": "AdminPostDraftOrdersIdEditShippingMethods",
        "summary": "Add Shipping Method to Draft Order Edit",
        "x-sidebar-summary": "Add Shipping Method",
        "description": "Add a shipping method to a draft order edit.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminAddDraftOrderShippingMethod"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.addShippingMethod(\"order_123\", {\n  shipping_option_id: \"shipping_option_123\",\n})\n.then(({ draft_order_preview }) => {\n  console.log(draft_order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/shipping-methods' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"shipping_option_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "addDraftOrderShippingMethodsWorkflow",
        "x-events": []
      }
    },
    "/admin/draft-orders/{id}/edit/shipping-methods/method/{method_id}": {
      "post": {
        "operationId": "AdminPostDraftOrdersIdEditShippingMethodsMethodMethod_id",
        "summary": "Update Existing Shipping Method in Draft Order Edit",
        "x-sidebar-summary": "Update Shipping Method",
        "description": "Update an existing shipping method in a draft order edit.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "method_id",
            "in": "path",
            "description": "The ID of the shipping method.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateDraftOrderShippingMethod"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.updateShippingMethod(\"order_123\", \"sm_123\", {\n shipping_option_id: \"so_123\",\n})\n.then(({ draft_order_preview }) => {\n  console.log(draft_order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/shipping-methods/method/{method_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateDraftOrderShippingMethodWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteDraftOrdersIdEditShippingMethodsMethodMethod_id",
        "summary": "Remove Shipping Method from Draft Order Edit",
        "x-sidebar-summary": "Remove Shipping Method",
        "description": "Remove an existing shipping method from a draft order edit.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "method_id",
            "in": "path",
            "description": "The shipping method's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.removeShippingMethod(\n  \"order_123\", \n  \"shipping_method_123\"\n)\n.then(({ draft_order_preview }) => {\n  console.log(draft_order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/draft-orders/{id}/edit/shipping-methods/method/{method_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeDraftOrderShippingMethodWorkflow",
        "x-events": []
      }
    },
    "/admin/draft-orders/{id}/edit/shipping-methods/{action_id}": {
      "post": {
        "operationId": "AdminPostDraftOrdersIdEditShippingMethodsAction_id",
        "summary": "Update New Shipping Method in Draft Order Edit",
        "x-sidebar-summary": "Update New Shipping Method",
        "description": "Update a new shipping method that was added to a draft order edit using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the shipping method's `SHIPPING_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateDraftOrderActionShippingMethod"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.updateShippingMethod(\"order_123\", \"action_123\", {\n  shipping_option_id: \"shipping_option_123\",\n})\n.then(({ draft_order_preview }) => {\n  console.log(draft_order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/draft-orders/{id}/edit/shipping-methods/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"shipping_option_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateDraftOrderActionShippingMethodWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteDraftOrdersIdEditShippingMethodsAction_id",
        "summary": "Remove New Shipping Method from Draft Order",
        "x-sidebar-summary": "Remove New Shipping Method",
        "description": "Remove a shipping method that was added to a draft order edit using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The draft order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the shipping method's `SHIPPING_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.draftOrder.removeShippingMethod(\"order_123\", \"action_123\")\n.then(({ draft_order_preview }) => {\n  console.log(draft_order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/draft-orders/{id}/edit/shipping-methods/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Draft Orders"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeDraftOrderActionShippingMethodWorkflow",
        "x-events": []
      }
    },
    "/admin/exchanges": {
      "get": {
        "operationId": "AdminGetExchanges",
        "summary": "List Exchanges",
        "description": "Retrieve a list of exchanges. The exchanges can be filtered by fields such as `id`. The exchanges can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by an exchange's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by an exchange's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by an exchange ID."
                },
                {
                  "type": "array",
                  "description": "Filter by exchange IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "An exchange ID."
                  }
                }
              ]
            }
          },
          {
            "name": "order_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "order_id",
                  "description": "Filter by an exchange's order ID."
                },
                {
                  "type": "array",
                  "description": "Filter by order IDs that the exchanges belong to.",
                  "items": {
                    "type": "string",
                    "title": "order_id",
                    "description": "An order's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by an exchange's status."
                },
                {
                  "type": "array",
                  "description": "Filter by exchange statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "An exchange status."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the exchange's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the exchange's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the exchange's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the exchange's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.list()\n.then(({ exchanges, count, limit, offset }) => {\n  console.log(exchanges)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/exchanges' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of exchanges.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of exchanges.",
                      "required": [
                        "exchanges"
                      ],
                      "properties": {
                        "exchanges": {
                          "type": "array",
                          "description": "The exchange's exchanges.",
                          "items": {
                            "$ref": "#/components/schemas/AdminExchange"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostExchanges",
        "summary": "Create Exchange",
        "description": "Create an exchange request. Its changes aren't applied on the order until the exchange is confirmed.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateExchange"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.create({\n  order_id: \"order_123\"\n})\n.then(({ exchange }) => {\n  console.log(exchange)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/exchanges' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"order_id\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangeOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "beginExchangeOrderWorkflow",
        "x-events": []
      }
    },
    "/admin/exchanges/{id}": {
      "get": {
        "operationId": "AdminGetExchangesId",
        "summary": "Get an Exchange",
        "description": "Retrieve an exchange by its ID. You can expand the exchange's relations or select the fields that should be returned using query parameters.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The exchange's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.retrieve(\"exchange_123\")\n.then(({ exchange }) => {\n  console.log(exchange)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/exchanges/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangeResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/exchanges/{id}/cancel": {
      "post": {
        "operationId": "AdminPostExchangesIdCancel",
        "summary": "Cancel an Exchange",
        "description": "Cancel an exchange and its associated return.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The exchange's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPostCancelExchangeReqSchema"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.cancel(\"exchange_123\")\n.then(({ exchange }) => {\n  console.log(exchange)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/cancel' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangeResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "cancelOrderExchangeWorkflow",
        "x-events": []
      }
    },
    "/admin/exchanges/{id}/inbound/items": {
      "post": {
        "operationId": "AdminPostExchangesIdInboundItems",
        "summary": "Add Inbound Items to an Exchange",
        "x-sidebary-summary": "Add Inbound Items",
        "description": "Add inbound (or return) items to an exchange. These inbound items will have the action `RETURN_ITEM`.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The exchange's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminAddExchangeInboundItems"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.addInboundItems(\"exchange_123\", {\n  items: [{\n    id: \"orli_123\",\n    quantity: 1\n  }]\n})\n.then(({ return: returnData }) => {\n  console.log(returnData)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/inbound/items' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangeReturnResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "orderExchangeRequestItemReturnWorkflow",
        "x-events": []
      }
    },
    "/admin/exchanges/{id}/inbound/items/{action_id}": {
      "post": {
        "operationId": "AdminPostExchangesIdInboundItemsAction_id",
        "summary": "Update an Inbount Item of an Exchange",
        "x-sidebar-summary": "Update Inbound Item",
        "description": "Update an inbound (or return) item from an exchange using the `ID` of the item's `RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The exchange's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the return item's `RETURN_ITEM` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPostExchangesRequestItemsReturnActionReqSchema"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.updateInboundItem(\n  \"exchange_123\", \n  \"ordchact_123\",\n  {\n    quantity: 1\n  }\n)\n.then(({ return: returnData }) => {\n  console.log(returnData)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/inbound/items/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangeReturnResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateRequestItemReturnWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteExchangesIdInboundItemsAction_id",
        "summary": "Remove Inbound Item from Exchange",
        "x-sidebar-summary": "Remove Inbound Item",
        "description": "Remove an inbound (or return) item from an exchange using the `ID` of the item's `RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The exchange's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the return item's `RETURN_ITEM` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.removeInboundItem(\n  \"exchange_123\", \n  \"ordchact_123\",\n)\n.then(({ return: returnData }) => {\n  console.log(returnData)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/exchanges/{id}/inbound/items/{action_id}' \\ -H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangeReturnResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeItemReturnActionWorkflow",
        "x-events": []
      }
    },
    "/admin/exchanges/{id}/inbound/shipping-method": {
      "post": {
        "operationId": "AdminPostExchangesIdInboundShippingMethod",
        "summary": "Add an Inbound Shipping Method to an Exchange",
        "x-sidebar-summary": "Add Inbound Shipping",
        "description": "Add an inbound (or return) shipping method to an exchange. The inbound shipping method will have a `SHIPPING_ADD` action.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The exchange's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPostReturnsShippingReqSchema"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.addInboundShipping(\"exchange_123\", {\n  shipping_option_id: \"so_123\"\n})\n.then(({ return: returnData }) => {\n  console.log(returnData)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/inbound/shipping-method' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"shipping_option_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangeReturnResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createExchangeShippingMethodWorkflow",
        "x-events": []
      }
    },
    "/admin/exchanges/{id}/inbound/shipping-method/{action_id}": {
      "post": {
        "operationId": "AdminPostExchangesIdInboundShippingMethodAction_id",
        "summary": "Update Inbound Shipping Method of an Exchange",
        "x-sidebar-summary": "Update Inbound Shipping",
        "description": "Update the shipping method for returning items in the exchange using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The exchange's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the shipping method's `SHIPPING_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminExchangeUpdateInboundShipping"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.updateInboundShipping(\n  \"exchange_123\",\n  \"ordchact_123\",\n   {\n    custom_amount: 10\n  }\n)\n.then(({ return: returnData }) => {\n  console.log(returnData)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/inbound/shipping-method/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangePreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateReturnShippingMethodWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteExchangesIdInboundShippingMethodAction_id",
        "summary": "Remove Inbound Shipping Method from Exchange",
        "x-sidebar-summary": "Remove Inbound Shipping Method",
        "description": "Remove the shipping method for returning items in the exchange using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The exchange's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the shipping method's `SHIPPING_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.deleteInboundShipping(\n  \"exchange_123\",\n  \"ordchact_123\",\n)\n.then(({ return: returnData }) => {\n  console.log(returnData)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/exchanges/{id}/inbound/shipping-method/{action_id}' \\ -H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangeReturnResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeReturnShippingMethodWorkflow",
        "x-events": []
      }
    },
    "/admin/exchanges/{id}/outbound/items": {
      "post": {
        "operationId": "AdminPostExchangesIdOutboundItems",
        "summary": "Add Outbound Items to Exchange",
        "description": "Add outbound (or new) items to an exchange. These outbound items will have the action `ITEM_ADD`.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The exchange's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminAddExchangeOutboundItems"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.addOutboundItems(\"exchange_123\", {\n  items: [{\n    id: \"variant_123\",\n    quantity: 1\n  }]\n})\n.then(({ exchange }) => {\n  console.log(exchange)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/outbound/items' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangePreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "orderExchangeAddNewItemWorkflow",
        "x-events": []
      }
    },
    "/admin/exchanges/{id}/outbound/items/{action_id}": {
      "post": {
        "operationId": "AdminPostExchangesIdOutboundItemsAction_id",
        "summary": "Update Outbound Item of an Exchange",
        "x-sidebar-summary": "Update Outbound Item",
        "description": "Update an outbound (or new) item from an exchange using the `ID` of the item's `ITEM_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The exchange's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the new exchange item's `ITEM_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateExchangeOutboundItem"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.updateOutboundItem(\n  \"exchange_123\",\n  \"ordchact_123\",\n  {\n    quantity: 1\n  }\n)\n.then(({ exchange }) => {\n  console.log(exchange)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/outbound/items/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangePreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateExchangeAddItemWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteExchangesIdOutboundItemsAction_id",
        "summary": "Remove Outbound Item from Exchange",
        "x-sidebar-summary": "Remove Outbound Item",
        "description": "Remove an outbound (or new) item from an exchange using the `ID` of the item's `ITEM_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The exchange's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the new exchange item's `ITEM_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.removeOutboundItem(\n  \"exchange_123\",\n  \"ordchact_123\",\n)\n.then(({ exchange }) => {\n  console.log(exchange)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/exchanges/{id}/outbound/items/{action_id}' \\ -H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangePreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeItemExchangeActionWorkflow",
        "x-events": []
      }
    },
    "/admin/exchanges/{id}/outbound/shipping-method": {
      "post": {
        "operationId": "AdminPostExchangesIdOutboundShippingMethod",
        "summary": "Add Outbound Shipping Method to Exchange",
        "x-sidebar-summary": "Add Outbound Shipping",
        "description": "Add an outbound shipping method to an exchange. The outbound shipping method will have a `SHIPPING_ADD` action.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The exchange's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminExchangeAddOutboundShipping"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.addOutboundShipping(\"exchange_123\", {\n  shipping_option_id: \"so_123\"\n})\n.then(({ exchange }) => {\n  console.log(exchange)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/outbound/shipping-method' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"shipping_option_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangePreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createExchangeShippingMethodWorkflow",
        "x-events": []
      }
    },
    "/admin/exchanges/{id}/outbound/shipping-method/{action_id}": {
      "post": {
        "operationId": "AdminPostExchangesIdOutboundShippingMethodAction_id",
        "summary": "Update Outbound Shipping Method of Exchange",
        "x-sidebar-summary": "Update Outbound Shipping",
        "description": "Update the shipping method for delivering outbound items in the exchange using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The exchange's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the shipping method's `SHIPPING_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminExchangeUpdateOutboundShipping"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.updateOutboundShipping(\n  \"exchange_123\",\n  \"ordchact_123\",\n  {\n    custom_amount: 10\n  }\n)\n.then(({ exchange }) => {\n  console.log(exchange)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/outbound/shipping-method/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangePreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateExchangeShippingMethodWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteExchangesIdOutboundShippingMethodAction_id",
        "summary": "Remove Outbound Shipping Method from Exchange",
        "x-sidebar-summary": "Remove Outbound Shipping Method",
        "description": "Remove the shipping method for delivering outbound items in the exchange using the `ID` of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The exchange's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the shipping method's `SHIPPING_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.deleteOutboundShipping(\n  \"exchange_123\",\n  \"ordchact_123\",\n)\n.then(({ exchange }) => {\n  console.log(exchange)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/exchanges/{id}/outbound/shipping-method/{action_id}'\\ -H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangePreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeExchangeShippingMethodWorkflow",
        "x-events": []
      }
    },
    "/admin/exchanges/{id}/request": {
      "post": {
        "operationId": "AdminPostExchangesIdRequest",
        "summary": "Confirm an Exchange",
        "description": "Confirm an exchange request, applying its changes on the associated order.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The exchange's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.request(\"exchange_123\", {})\n.then(({ exchange }) => {\n  console.log(exchange)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/exchanges/{id}/request' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangeRequestResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "confirmExchangeRequestWorkflow",
        "x-events": [
          {
            "name": "order.exchange_created",
            "payload": "```ts\n{\n  order_id, // The ID of the order\n  exchange_id, // The ID of the exchange\n}\n```",
            "description": "Emitted when an exchange is created for an order.",
            "deprecated": false
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteExchangesIdRequest",
        "summary": "Cancel Exchange Request",
        "description": "Cancel a requested exchange.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The exchange's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.exchange.cancel(\"exchange_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/exchanges/{id}/request' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Exchanges"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExchangeDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "cancelBeginOrderExchangeWorkflow",
        "x-events": []
      }
    },
    "/admin/feature-flags": {
      "get": {
        "operationId": "AdminGetFeatureFlags",
        "summary": "List Feature Flags",
        "description": "Retrieve a list of feature flags. The feature flags can be filtered by fields such as `id`. The feature flags can also be sorted or paginated.",
        "x-authenticated": false,
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/feature-flags'"
          }
        ],
        "tags": [
          "Admin Feature Flags"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "SUMMARY",
                  "required": [
                    "feature_flags"
                  ],
                  "properties": {
                    "feature_flags": {
                      "type": "object",
                      "description": "The list of feature flags."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.10.0"
      }
    },
    "/admin/fulfillment-providers": {
      "get": {
        "operationId": "AdminGetFulfillmentProviders",
        "summary": "List Fulfillment Providers",
        "description": "Retrieve a list of fulfillment providers. The fulfillment providers can be filtered by fields such as `id`. The fulfillment providers can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a fulfillment provider's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by fulfillment provider IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A fulfillment provider ID."
                  }
                }
              ]
            }
          },
          {
            "name": "is_enabled",
            "in": "query",
            "description": "Filter by whether the fulfillment provider is enabled.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "is_enabled",
              "description": "Filter by whether the fulfillment provider is enabled."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter a fulfillment provider's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter a fulfillment provider's searchable properties."
            }
          },
          {
            "name": "stock_location_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "stock_location_id",
                  "description": "Filter by associated stock location's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by associated stock location IDs.",
                  "items": {
                    "type": "string",
                    "title": "stock_location_id",
                    "description": "A stock location's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.fulfillmentProvider.list()\n.then(({ fulfillment_providers, count, limit, offset }) => {\n  console.log(fulfillment_providers)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/fulfillment-providers' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Fulfillment Providers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminFulfillmentProviderListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/fulfillment-providers/{id}/options": {
      "get": {
        "operationId": "AdminGetFulfillmentProvidersIdOptions",
        "summary": "List Fulfillment Options",
        "description": "Retrieve the list of fulfillment options of a fulfillment provider. These options may be retrieved from an integrated third-party service.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The fulfillment provider's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.fulfillmentProvider.listFulfillmentOptions(\"fp_123\")\n.then(({ fulfillment_options }) => {\n  console.log(fulfillment_options)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/fulfillment-providers/{id}/options' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Fulfillment Providers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminFulfillmentProviderOptionsListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/fulfillment-sets/{id}": {
      "delete": {
        "operationId": "AdminDeleteFulfillmentSetsId",
        "summary": "Delete Fulfillment Set",
        "description": "Delete a fulfillment set.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The fulfillment set's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.fulfillmentSet.delete(\"fset_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/fulfillment-sets/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Fulfillment Sets"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminFulfillmentSetDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteFulfillmentSetsWorkflow",
        "x-events": []
      }
    },
    "/admin/fulfillment-sets/{id}/service-zones": {
      "post": {
        "operationId": "AdminPostFulfillmentSetsIdServiceZones",
        "summary": "Add a Service Zone to a Fulfillment Set",
        "x-sidebar-summary": "Add Service Zone",
        "description": "Add a service zone to a fulfillment set.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The fulfillment set's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateFulfillmentSetServiceZone"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.fulfillmentSet.createServiceZone(\"fset_123\", {\n  name: \"Europe Service Zone\",\n  geo_zones: [{\n    type: \"country\",\n    country_code: \"us\"\n  }]\n})\n.then(({ fulfillment_set }) => {\n  console.log(fulfillment_set)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/fulfillment-sets/{id}/service-zones' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"name\": \"Layla\"\n}'"
          }
        ],
        "tags": [
          "Admin Fulfillment Sets"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminFulfillmentSetResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createServiceZonesWorkflow",
        "x-events": []
      }
    },
    "/admin/fulfillment-sets/{id}/service-zones/{zone_id}": {
      "get": {
        "operationId": "AdminGetFulfillmentSetsIdServiceZonesZone_id",
        "summary": "Get a Service Zone in a Fulfillment Set",
        "x-sidebar-summary": "Get a Service Zone",
        "description": "Retrieve a service zone that belongs to a fulfillment set. be paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The fulfillment set's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "zone_id",
            "in": "path",
            "description": "The service zone's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.fulfillmentSet.retrieveServiceZone(\n  \"fset_123\",\n  \"serzo_123\"\n)\n.then(({ service_zone }) => {\n  console.log(service_zone)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/fulfillment-sets/{id}/service-zones/{zone_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Fulfillment Sets"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminServiceZoneResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostFulfillmentSetsIdServiceZonesZone_id",
        "summary": "Update the Service Zone of a Fulfillment Set",
        "x-sidebar-summary": "Update Service Zone",
        "description": "Update the details of a service zone in a fulfillment set.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The fulfillment set's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "zone_id",
            "in": "path",
            "description": "The service zone's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateFulfillmentSetServiceZone"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.fulfillmentSet.updateServiceZone(\n  \"fset_123\", \n  \"serzo_123\",\n  {\n    name: \"Europe Service Zone\",\n  }\n)\n.then(({ fulfillment_set }) => {\n  console.log(fulfillment_set)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/fulfillment-sets/{id}/service-zones/{zone_id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"name\": \"Elvis\"\n}'"
          }
        ],
        "tags": [
          "Admin Fulfillment Sets"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminFulfillmentSetResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateServiceZonesWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteFulfillmentSetsIdServiceZonesZone_id",
        "summary": "Remove a Service Zone from Fulfillment Set",
        "x-sidebar-summary": "Remove Service Zone",
        "description": "Remove a service zone that belongs to a fulfillment set.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The fulfillment set's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "zone_id",
            "in": "path",
            "description": "The service zone's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.fulfillmentSet.deleteServiceZone(\n  \"fset_123\", \n  \"serzo_123\",\n)\n.then(({ deleted, parent: fulfillmentSet }) => {\n  console.log(deleted, fulfillmentSet)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/fulfillment-sets/{id}/service-zones/{zone_id}' \\ -H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Fulfillment Sets"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminServiceZoneDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteServiceZonesWorkflow",
        "x-events": []
      }
    },
    "/admin/fulfillments": {
      "post": {
        "operationId": "AdminPostFulfillments",
        "summary": "Create Fulfillment",
        "description": "Create a fulfillment for an order, return, exchange, and more.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateFulfillment"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.fulfillment.create({\n  location_id: \"sloc_123\",\n  provider_id: \"my_fulfillment\",\n  delivery_address: {\n    country_code: \"us\"\n  },\n  items: [\n    {\n      title: \"Shirt\",\n      sku: \"SHIRT\",\n      quantity: 1,\n      barcode: \"123\"\n    }\n  ],\n  labels: [],\n  order: {},\n  order_id: \"order_123\"\n})\n.then(({ fulfillment }) => {\n  console.log(fulfillment)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/fulfillments' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"location_id\": \"{value}\",\n  \"provider_id\": \"{value}\",\n  \"delivery_address\": {\n    \"first_name\": \"{value}\",\n    \"last_name\": \"{value}\",\n    \"phone\": \"{value}\",\n    \"company\": \"{value}\",\n    \"address_1\": \"{value}\",\n    \"address_2\": \"{value}\",\n    \"city\": \"{value}\",\n    \"country_code\": \"{value}\",\n    \"province\": \"us-ca\",\n    \"postal_code\": \"{value}\",\n    \"metadata\": {}\n  },\n  \"items\": [\n    {\n      \"title\": \"{value}\",\n      \"sku\": \"{value}\",\n      \"quantity\": 1667318922870784,\n      \"barcode\": \"{value}\",\n      \"line_item_id\": \"{value}\",\n      \"inventory_item_id\": \"{value}\"\n    }\n  ],\n  \"labels\": [\n    {\n      \"tracking_number\": \"{value}\",\n      \"tracking_url\": \"{value}\",\n      \"label_url\": \"{value}\"\n    }\n  ],\n  \"order\": {},\n  \"order_id\": \"{value}\",\n  \"shipping_option_id\": \"{value}\",\n  \"data\": {},\n  \"packed_at\": \"2024-11-12T18:37:37.122Z\",\n  \"shipped_at\": \"2025-04-13T12:39:42.432Z\",\n  \"delivered_at\": \"2025-01-29T19:05:57.056Z\",\n  \"canceled_at\": \"2025-02-16T02:12:11.763Z\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Fulfillments"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminFulfillmentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createFulfillmentWorkflow",
        "x-events": []
      }
    },
    "/admin/fulfillments/{id}/cancel": {
      "post": {
        "operationId": "AdminPostFulfillmentsIdCancel",
        "summary": "Cancel a Fulfillment",
        "description": "Cancel a fulfillment. The fulfillment can't be shipped or delivered.\n\nTo cancel the fulfillment, the `cancelFulfillment` method of the associated fulfillment provider is used.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The fulfillment's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.fulfillment.cancel(\"ful_123\")\n.then(({ fulfillment }) => {\n  console.log(fulfillment)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/fulfillments/{id}/cancel' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Fulfillments"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminFulfillmentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "cancelFulfillmentWorkflow",
        "x-events": []
      }
    },
    "/admin/fulfillments/{id}/shipment": {
      "post": {
        "operationId": "AdminPostFulfillmentsIdShipment",
        "summary": "Create a Shipment for a Fulfillment",
        "x-sidebar-summary": "Create Shipment",
        "description": "Create a shipment for a fulfillment. The fulfillment must not be shipped or canceled.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The fulfillment's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateFulfillmentShipment"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.fulfillment.createShipment(\"ful_123\", {\n  labels: [\n    {\n      tracking_number: \"123\",\n      tracking_url: \"example.com\",\n      label_url: \"example.com\"\n    }\n  ]\n})\n.then(({ fulfillment }) => {\n  console.log(fulfillment)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/fulfillments/{id}/shipment' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"labels\": [\n    {\n      \"tracking_number\": \"{value}\",\n      \"tracking_url\": \"{value}\",\n      \"label_url\": \"{value}\"\n    }\n  ]\n}'"
          }
        ],
        "tags": [
          "Admin Fulfillments"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminFulfillmentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createShipmentWorkflow",
        "x-events": []
      }
    },
    "/admin/gift-cards": {
      "get": {
        "operationId": "AdminGetGiftCards",
        "summary": "List Gift Cards",
        "description": "Retrieve a list of gift cards. The gift cards can be filtered by fields such as `id`. The gift cards can also be sorted or paginated.",
        "x-authenticated": true,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "The gift card's ID."
                },
                {
                  "type": "array",
                  "description": "The gift card's ID.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "The id's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "customer_id",
                  "description": "Filter by a customer ID to retrieve their gift cards."
                },
                {
                  "type": "array",
                  "description": "Filter by customer IDs to retrieve their gift cards.",
                  "items": {
                    "type": "string",
                    "title": "customer_id",
                    "description": "A customer ID."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a gift card's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a gift card's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              }
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a gift card's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a gift card's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/gift-cards' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Gift Cards"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminGiftCardsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      },
      "post": {
        "operationId": "AdminPostGiftCards",
        "summary": "Create Gift Card",
        "description": "Create a gift card.",
        "x-authenticated": true,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateGiftCardParams"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/gift-cards' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"code\": \"{value}\",\n  \"value\": 19,\n  \"currency_code\": \"bwp\",\n  \"expires_at\": \"2025-07-20T15:47:23.951Z\",\n  \"reference_id\": \"{value}\",\n  \"reference\": \"{value}\",\n  \"line_item_id\": \"{value}\",\n  \"customer_id\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Gift Cards"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminGiftCardResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      }
    },
    "/admin/gift-cards/{id}": {
      "get": {
        "operationId": "AdminGetGiftCardsId",
        "summary": "Get a Gift Card",
        "description": "Retrieve a gift card by its ID. You can expand the gift card's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The gift card's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/gift-cards/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Gift Cards"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminGiftCardResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      },
      "post": {
        "operationId": "AdminPostGiftCardsId",
        "summary": "Update a Gift Card",
        "description": "Update a gift card's details.",
        "x-authenticated": true,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The gift card's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateGiftCardParams"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/gift-cards/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Gift Cards"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminGiftCardResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      }
    },
    "/admin/gift-cards/{id}/orders": {
      "get": {
        "operationId": "AdminGetGiftCardsIdOrders",
        "summary": "List Gift Card's Orders",
        "x-sidebar-summary": "List Orders",
        "description": "Retrieve the list of orders that a gift card was used in.",
        "x-authenticated": true,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The gift card's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\n if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\n without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/gift-cards/{id}/orders' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Gift Cards"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      }
    },
    "/admin/gift-cards/{id}/redeem": {
      "post": {
        "operationId": "AdminPostGiftCardsIdRedeem",
        "summary": "Redeem a Gift Card",
        "description": "Redeem a gift card and add it to the customer's store credit account.",
        "x-authenticated": true,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The gift card's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminRedeemGiftCard"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/gift-cards/{id}/redeem' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"customer_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Gift Cards"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminGiftCardResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      }
    },
    "/admin/index/details": {
      "get": {
        "operationId": "AdminGetIndexDetails",
        "summary": "Get Index Details",
        "description": "Retrieve index metadata, including entity type, status, last synced key, and last updated timestamp.",
        "x-authenticated": true,
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/index/details' \\\n-H 'Authorization: Bearer {access_token}'"
          }
        ],
        "tags": [
          "Admin Index"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminIndexDetailsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.11.2",
        "x-featureFlag": "index"
      }
    },
    "/admin/index/sync": {
      "post": {
        "operationId": "AdminPostIndexSync",
        "summary": "Trigger Index Sync",
        "description": "Trigger reindexing or re-ingestion of the Index Module.",
        "x-authenticated": true,
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminIndexSyncPayload"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/index/sync' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"strategy\": \"full\"\n}'"
          }
        ],
        "tags": [
          "Admin Index"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.11.2",
        "x-featureFlag": "index"
      }
    },
    "/admin/inventory-items": {
      "get": {
        "operationId": "AdminGetInventoryItems",
        "summary": "List Inventory Items",
        "description": "Retrieve a list of inventory items. The inventory items can be filtered by fields such as `id`. The inventory items can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "The inventory item's q.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "The inventory item's q."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "The inventory item's ID."
                },
                {
                  "type": "array",
                  "description": "The inventory item's ID.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "The id's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "sku",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "sku",
                  "description": "The inventory item's sku."
                },
                {
                  "type": "array",
                  "description": "The inventory item's sku.",
                  "items": {
                    "type": "string",
                    "title": "sku",
                    "description": "The sku's details."
                  }
                }
              ]
            }
          },
          {
            "name": "origin_country",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "origin_country",
                  "description": "The inventory item's origin country."
                },
                {
                  "type": "array",
                  "description": "The inventory item's origin country.",
                  "items": {
                    "type": "string",
                    "title": "origin_country",
                    "description": "The origin country's details."
                  }
                }
              ]
            }
          },
          {
            "name": "mid_code",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "mid_code",
                  "description": "The inventory item's mid code."
                },
                {
                  "type": "array",
                  "description": "The inventory item's mid code.",
                  "items": {
                    "type": "string",
                    "title": "mid_code",
                    "description": "The mid code's details."
                  }
                }
              ]
            }
          },
          {
            "name": "hs_code",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "hs_code",
                  "description": "The inventory item's hs code."
                },
                {
                  "type": "array",
                  "description": "The inventory item's hs code.",
                  "items": {
                    "type": "string",
                    "title": "hs_code",
                    "description": "The hs code's details."
                  }
                }
              ]
            }
          },
          {
            "name": "material",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "material",
                  "description": "The inventory item's material."
                },
                {
                  "type": "array",
                  "description": "The inventory item's material.",
                  "items": {
                    "type": "string",
                    "title": "material",
                    "description": "The material's details."
                  }
                }
              ]
            }
          },
          {
            "name": "requires_shipping",
            "in": "query",
            "description": "The inventory item's requires shipping.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "requires_shipping",
              "description": "The inventory item's requires shipping."
            }
          },
          {
            "name": "weight",
            "in": "query",
            "description": "Filter the inventory item's weight.",
            "required": false,
            "schema": {
              "description": "Filter the inventory item's weight.",
              "properties": {
                "$eq": {
                  "type": "string",
                  "description": "Filter by an exact match."
                },
                "$ne": {
                  "type": "string",
                  "description": "Filter by values not matching this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array's items.",
                  "items": {
                    "type": "string"
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array's items.",
                  "items": {
                    "type": "string"
                  }
                },
                "$like": {
                  "type": "string",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string"
                  }
                },
                "$gt": {
                  "type": "string",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                }
              }
            }
          },
          {
            "name": "length",
            "in": "query",
            "description": "Filter the inventory item's length.",
            "required": false,
            "schema": {
              "description": "Filter the inventory item's length.",
              "properties": {
                "$eq": {
                  "type": "string",
                  "description": "Filter by an exact match."
                },
                "$ne": {
                  "type": "string",
                  "description": "Filter by values not matching this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array's items.",
                  "items": {
                    "type": "string"
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array's items.",
                  "items": {
                    "type": "string"
                  }
                },
                "$like": {
                  "type": "string",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string"
                  }
                },
                "$gt": {
                  "type": "string",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                }
              }
            }
          },
          {
            "name": "height",
            "in": "query",
            "description": "Filter by the inventory item's height.",
            "required": false,
            "schema": {
              "description": "Filter by the inventory item's height.",
              "properties": {
                "$eq": {
                  "type": "string",
                  "description": "Filter by an exact match."
                },
                "$ne": {
                  "type": "string",
                  "description": "Filter by values not matching this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array's items.",
                  "items": {
                    "type": "string"
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array's items.",
                  "items": {
                    "type": "string"
                  }
                },
                "$like": {
                  "type": "string",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string"
                  }
                },
                "$gt": {
                  "type": "string",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                }
              }
            }
          },
          {
            "name": "width",
            "in": "query",
            "description": "Filter by the inventory item's width.",
            "required": false,
            "schema": {
              "description": "Filter by the inventory item's width.",
              "properties": {
                "$eq": {
                  "type": "string",
                  "description": "Filter by an exact match."
                },
                "$ne": {
                  "type": "string",
                  "description": "Filter by values not matching this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array's items.",
                  "items": {
                    "type": "string"
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array's items.",
                  "items": {
                    "type": "string"
                  }
                },
                "$like": {
                  "type": "string",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string"
                  }
                },
                "$gt": {
                  "type": "string",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                }
              }
            }
          },
          {
            "name": "location_levels",
            "in": "query",
            "description": "Filter by the inventory item's associated location IDs.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the inventory item's associated location IDs.",
              "properties": {
                "location_id": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "location_id",
                      "description": "The associated location's ID."
                    },
                    {
                      "type": "array",
                      "description": "The location IDs to retrieve inventory items associated with them.",
                      "items": {
                        "type": "string",
                        "title": "location_id",
                        "description": "A location's ID."
                      }
                    }
                  ]
                }
              },
              "required": [
                "location_id"
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.inventoryItem.list()\n.then(({ inventory_items, count, limit, offset }) => {\n  console.log(inventory_items)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/inventory-items' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Inventory Items"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of inventory items.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of inventory items.",
                      "required": [
                        "inventory_items"
                      ],
                      "properties": {
                        "inventory_items": {
                          "type": "array",
                          "description": "The inventory item's inventory items.",
                          "items": {
                            "$ref": "#/components/schemas/AdminInventoryItem"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostInventoryItems",
        "summary": "Create Inventory Item",
        "description": "Create an inventory item.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateInventoryItem"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.inventoryItem.create({\n  sku: \"SHIRT\"\n})\n.then(({ inventory_item }) => {\n  console.log(inventory_item)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/inventory-items' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"sku\": \"{value}\",\n  \"hs_code\": \"{value}\",\n  \"weight\": 2857134683324416,\n  \"length\": 2322256963305472,\n  \"height\": 8391220613087232,\n  \"width\": 1297863250280448,\n  \"origin_country\": \"{value}\",\n  \"mid_code\": \"{value}\",\n  \"material\": \"{value}\",\n  \"title\": \"{value}\",\n  \"description\": \"{value}\",\n  \"thumbnail\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Inventory Items"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminInventoryItemResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createInventoryItemsWorkflow",
        "x-events": []
      }
    },
    "/admin/inventory-items/location-levels/batch": {
      "post": {
        "operationId": "AdminPostInventoryItemsLocationLevelsBatch",
        "summary": "Manage Inventory Levels",
        "description": "Manage inventory levels to create, update, or delete them.",
        "x-authenticated": true,
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchInventoryItemsLocationLevels"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.inventoryItem.batchInventoryItemsLocationLevels({\n  create: [{\n    inventory_item_id: \"iitem_123\",\n    location_id: \"sloc_123\",\n    stocked_quantity: 10\n  }],\n  delete: [\"ilvl_123\"]\n})\n.then(({ created, updated, deleted }) => {\n  console.log(created, updated, deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/inventory-items/location-levels/batch' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"create\": [\n    {\n      \"location_id\": \"sloc_123\",\n      \"inventory_item_id\": \"iitem_123\",\n      \"stocked_quantity\": 100,\n      \"incoming_quantity\": 50\n    }\n  ],\n  \"update\": [\n    {\n      \"location_id\": \"sloc_456\",\n      \"inventory_item_id\": \"iitem_456\",\n      \"stocked_quantity\": 200,\n      \"incoming_quantity\": 75\n    }\n  ],\n  \"delete\": [\n    \"iilev_123\"\n  ]\n}'"
          }
        ],
        "tags": [
          "Admin Inventory Items"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminBatchInventoryItemsLocationLevelsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchInventoryItemLevelsWorkflow",
        "x-events": []
      }
    },
    "/admin/inventory-items/{id}": {
      "get": {
        "operationId": "AdminGetInventoryItemsId",
        "summary": "Get a Inventory Item",
        "description": "Retrieve a inventory item by its ID. You can expand the inventory item's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The inventory item's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.inventoryItem.retrieve(\"iitem_123\")\n.then(({ inventory_item }) => {\n  console.log(inventory_item)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/inventory-items/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Inventory Items"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminInventoryItemResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostInventoryItemsId",
        "summary": "Update an Inventory Item",
        "description": "Update an inventory item's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The inventory item's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateInventoryItem"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.inventoryItem.update(\"iitem_123\", {\n  sku: \"SHIRT\"\n})\n.then(({ inventory_item }) => {\n  console.log(inventory_item)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/inventory-items/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"sku\": \"{value}\",\n  \"hs_code\": \"{value}\",\n  \"weight\": 8979922215239680,\n  \"length\": 667491233693696,\n  \"height\": 6328111551479808,\n  \"width\": 7175104570064896,\n  \"origin_country\": \"{value}\",\n  \"mid_code\": \"{value}\",\n  \"material\": \"{value}\",\n  \"title\": \"{value}\",\n  \"description\": \"{value}\",\n  \"thumbnail\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Inventory Items"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminInventoryItemResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateInventoryItemsWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteInventoryItemsId",
        "summary": "Delete Inventory Item",
        "description": "Delete an inventory item.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The inventory item's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.inventoryItem.delete(\"iitem_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/inventory-items/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Inventory Items"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The deletion's details.",
                  "required": [
                    "id",
                    "object",
                    "deleted"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The inventory item's ID."
                    },
                    "object": {
                      "type": "string",
                      "title": "object",
                      "description": "The name of the deleted object.",
                      "default": "inventory_item"
                    },
                    "deleted": {
                      "type": "boolean",
                      "title": "deleted",
                      "description": "Whether the inventory item was deleted."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteInventoryItemWorkflow",
        "x-events": []
      }
    },
    "/admin/inventory-items/{id}/location-levels": {
      "get": {
        "operationId": "AdminGetInventoryItemsIdLocationLevels",
        "summary": "List Inventory Levels",
        "description": "Retrieve a list of inventory levels associated with an inventory item. The inventory levels can be filtered by fields like `location_id`. The inventory levels can also be paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The inventory item's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "location_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "location_id",
                  "description": "Filter by the inventory item's location ID."
                },
                {
                  "type": "array",
                  "description": "The inventory item's location IDs.",
                  "items": {
                    "type": "string",
                    "title": "location_id",
                    "description": "The location ID."
                  }
                }
              ]
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.inventoryItem.listLevels(\"iitem_123\")\n.then(({ inventory_levels, count, limit, offset }) => {\n  console.log(inventory_levels)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/inventory-items/{id}/location-levels' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Inventory Items"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of inventory levels.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of inventory levels.",
                      "required": [
                        "inventory_levels"
                      ],
                      "properties": {
                        "inventory_levels": {
                          "type": "array",
                          "description": "The inventory item's inventory levels.",
                          "items": {
                            "$ref": "#/components/schemas/InventoryLevel"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostInventoryItemsIdLocationLevels",
        "summary": "Create Inventory Level for Inventory Item",
        "x-sidebar-summary": "Create Inventory Level",
        "description": "Create an inventory level for an inventory item.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The inventory item's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchCreateInventoryItemLocationLevels"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/inventory-items/{id}/location-levels' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"location_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Inventory Items"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminInventoryItemResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createInventoryLevelsWorkflow",
        "x-events": []
      }
    },
    "/admin/inventory-items/{id}/location-levels/batch": {
      "post": {
        "operationId": "AdminPostInventoryItemsIdLocationLevelsBatch",
        "summary": "Manage Inventory Levels of Inventory Item",
        "x-sidebar-summary": "Manage Inventory Levels",
        "description": "Manage the inventory levels of an inventory item to create or delete them.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The inventory item's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchInventoryItemLocationsLevel"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.inventoryItem.batchInventoryItemLocationLevels(\"iitem_123\", {\n  create: [{\n    location_id: \"sloc_123\",\n    stocked_quantity: 10\n  }],\n  delete: [\"ilvl_123\"]\n})\n.then(({ created, updated, deleted }) => {\n  console.log(created, updated, deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/inventory-items/{id}/location-levels/batch' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Inventory Items"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchInventoryItemLevelsWorkflow",
        "x-events": []
      }
    },
    "/admin/inventory-items/{id}/location-levels/{location_id}": {
      "post": {
        "operationId": "AdminPostInventoryItemsIdLocationLevelsLocation_id",
        "summary": "Update an Inventory Level of an Inventory Item",
        "x-sidebar-summary": "Update Inventory Level",
        "description": "Updates the details of an inventory item's inventory level using its associated location ID.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The inventory item's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "location_id",
            "in": "path",
            "description": "The ID of the location associated with the inventory level.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateInventoryLevel"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.inventoryItem.updateLevel(\n  \"iitem_123\",\n  \"sloc_123\",\n  {\n    stocked_quantity: 10\n  }\n)\n.then(({ inventory_item }) => {\n  console.log(inventory_item)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/inventory-items/{id}/location-levels/{location_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Inventory Items"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminInventoryItemResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateInventoryLevelsWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteInventoryItemsIdLocationLevelsLocation_id",
        "summary": "Remove Inventory Level of Inventory Item",
        "x-sidebar-summary": "Remove Inventory Level",
        "description": "Remove the inventory level of an inventory item.\n\nIf the inventory level has reserved quantity greater than `0`, an error is thrown.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The inventory item's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "location_id",
            "in": "path",
            "description": "The inventory item's location id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.inventoryItem.deleteLevel(\n  \"iitem_123\",\n  \"sloc_123\",\n)\n.then(({ deleted, parent: inventoryItem }) => {\n  console.log(deleted, inventoryItem)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/inventory-items/{id}/location-levels/{location_id}' \\ -H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Inventory Items"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The deletion's details.",
                      "required": [
                        "id",
                        "object",
                        "deleted"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "title": "id",
                          "description": "The inventory item's ID."
                        },
                        "object": {
                          "type": "string",
                          "title": "object",
                          "description": "The name of the deleted object."
                        },
                        "deleted": {
                          "type": "boolean",
                          "title": "deleted",
                          "description": "Whether the Inventory Item was deleted."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The deletion's details.",
                      "properties": {
                        "parent": {
                          "$ref": "#/components/schemas/AdminInventoryItem"
                        }
                      }
                    }
                  ],
                  "description": "The deletion's details."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteInventoryLevelsWorkflow",
        "x-events": []
      }
    },
    "/admin/invites": {
      "get": {
        "operationId": "AdminGetInvites",
        "summary": "List Invites",
        "description": "Retrieve a list of invites. The invites can be filtered by fields such as `id`. The invites can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to apply on an invite's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to apply on an invite's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by an invite's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by invite IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "An invite's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "email",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "email",
                  "description": "Filter by an invite's email.",
                  "format": "email"
                },
                {
                  "type": "array",
                  "description": "Filter by invite emails.",
                  "items": {
                    "type": "string",
                    "title": "email",
                    "description": "An email.",
                    "format": "email"
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the invite's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the invite's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the invite's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the invite's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by the invite's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the invite's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.invite.list()\n.then(({ invites, count, limit, offset }) => {\n  console.log(invites)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/invites'"
          }
        ],
        "tags": [
          "Admin Invites"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of invites.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items retrieved."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of invites.",
                      "required": [
                        "invites"
                      ],
                      "properties": {
                        "invites": {
                          "type": "array",
                          "description": "The list of invites.",
                          "items": {
                            "$ref": "#/components/schemas/AdminInvite"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ]
      },
      "post": {
        "operationId": "AdminPostInvites",
        "summary": "Create Invite",
        "description": "Create a invite.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "The invite's details.",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "title": "email",
                    "description": "The email of the user to invite.",
                    "format": "email"
                  },
                  "metadata": {
                    "type": "object",
                    "description": "The invite's metadata. Can be custom data in key-value pairs."
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.invite.create({\n  email: \"user@gmail.com\",\n})\n.then(({ invite }) => {\n  console.log(invite)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/invites' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"email\": \"Whitney_Schultz@gmail.com\"\n}'"
          }
        ],
        "tags": [
          "Admin Invites"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminInviteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createInvitesWorkflow",
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-events": [
          {
            "name": "invite.created",
            "payload": "```ts\n{\n  id, // The ID of the invite\n}\n```",
            "description": "Emitted when invites are created. You can listen to this event\nto send an email to the invited users, for example.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/invites/accept": {
      "post": {
        "operationId": "AdminPostInvitesAccept",
        "summary": "Accept Invite",
        "description": "Accept an invite and create a new user.\nSince the user isn't created yet, the JWT token used in the authorization header is retrieved from the `/auth/user/emailpass/register` API route (or a provider other than `emailpass`). The user can then authenticate using the `/auth/user/emailpass` API route.\n",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminInviteAccept"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nawait sdk.auth.register(\"user\", \"emailpass\", {\n  email: \"user@gmail.com\",\n  password: \"supersecret\"\n})\n\n// all subsequent requests will use the token in the header\nconst { user } = await sdk.admin.invite.accept(\n  {\n    email: \"user@gmail.com\",\n    first_name: \"John\",\n    last_name: \"Smith\",\n    invite_token: \"12345...\"\n  },\n)"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/invites/accept' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"email\": \"Lila_Zemlak@hotmail.com\",\n  \"first_name\": \"{value}\",\n  \"last_name\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Invites"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "The created user's details.",
                      "required": [
                        "user"
                      ],
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/AdminUser"
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "An error's details.",
                      "required": [
                        "message"
                      ],
                      "properties": {
                        "message": {
                          "type": "string",
                          "title": "message",
                          "description": "The error message."
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "acceptInviteWorkflow",
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-events": [
          {
            "name": "user.created",
            "payload": "```ts\n{\n  id, // The ID of the user\n}\n```",
            "description": "Emitted when users are created.",
            "deprecated": false
          },
          {
            "name": "invite.accepted",
            "payload": "```ts\n{\n  id, // The ID of the invite\n}\n```",
            "description": "Emitted when an invite is accepted.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/invites/{id}": {
      "get": {
        "operationId": "AdminGetInvitesId",
        "summary": "Get an Invite",
        "description": "Retrieve an invite by its ID. You can expand the invite's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The invite's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.invite.retrieve(\"invite_123\")\n.then(({ invite }) => {\n  console.log(invite)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/invites/{id}'"
          }
        ],
        "tags": [
          "Admin Invites"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminInviteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteInvitesId",
        "summary": "Delete Invite",
        "description": "Delete an invite.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The invite's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.invite.delete(\"invite_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/invites/{id}'"
          }
        ],
        "tags": [
          "Admin Invites"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The deletion's details.",
                  "required": [
                    "id",
                    "object",
                    "deleted"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The invite's ID."
                    },
                    "object": {
                      "type": "string",
                      "title": "object",
                      "description": "The name of the deleted object.",
                      "default": "invite"
                    },
                    "deleted": {
                      "type": "boolean",
                      "title": "deleted",
                      "description": "Whether the invite was deleted."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteInvitesWorkflow",
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-events": [
          {
            "name": "invite.deleted",
            "payload": "```ts\n{\n  id, // The ID of the invite\n}\n```",
            "description": "Emitted when invites are deleted.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/invites/{id}/resend": {
      "post": {
        "operationId": "AdminPostInvitesIdResend",
        "summary": "Refresh Invite Token",
        "description": "Refresh the token of an invite.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The invite's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.invite.resend(\"invite_123\")\n.then(({ invite }) => {\n  console.log(invite)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/invites/{id}/resend'"
          }
        ],
        "tags": [
          "Admin Invites"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminInviteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "refreshInviteTokensWorkflow",
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-events": [
          {
            "name": "invite.resent",
            "payload": "```ts\n{\n  id, // The ID of the invite\n}\n```",
            "description": "Emitted when invites should be resent because their token was\nrefreshed. You can listen to this event to send an email to the invited users,\nfor example.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/locales": {
      "get": {
        "operationId": "AdminGetLocales",
        "summary": "List Locales",
        "description": "Retrieve a list of locales. The locales can be filtered by fields such as `code`. The locales can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "Search query to filter locales by code or other fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search query to filter locales by code or other fields."
            }
          },
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "code",
                  "description": "Filter locales by a code."
                },
                {
                  "type": "array",
                  "description": "Filter locales by multiple codes.",
                  "items": {
                    "type": "string",
                    "title": "code",
                    "description": "A locale code."
                  }
                }
              ]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "The locale's with deleted.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "The locale's with deleted."
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.locale.list()\n.then(({ locales, count, limit, offset }) => {\n  console.log(locales)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/locales' \\\n-H 'Authorization: Bearer {access_token}'"
          }
        ],
        "tags": [
          "Admin Locales"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminLocaleListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.12.3",
        "x-featureFlag": "translation"
      }
    },
    "/admin/locales/{code}": {
      "get": {
        "operationId": "AdminGetLocalesCode",
        "summary": "Get a Locale",
        "x-sidebar-summary": "Get Locale",
        "description": "Retrieve a locale by its code. You can expand the locale's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "The locale's code in [BCP 47 format](https://gist.github.com/typpo/b2b828a35e683b9bf8db91b5404f1bd1).",
            "example": "fr-FR",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.locale.retrieve(\"en-US\")\n.then(({ locale }) => {\n  console.log(locale)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/locales/fr-FR' \\\n-H 'Authorization: Bearer {access_token}'"
          }
        ],
        "tags": [
          "Admin Locales"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminLocaleResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.12.3",
        "x-featureFlag": "translation"
      }
    },
    "/admin/notifications": {
      "get": {
        "operationId": "AdminListNotifications",
        "summary": "List Notifications",
        "description": "Retrieves a list of admin notifications from the feed channel.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "notifications": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AdminNotification"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Notifications"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/notifications/{id}": {
      "get": {
        "operationId": "AdminGetNotificationsId",
        "summary": "Get a Notification",
        "description": "Retrieve a notification by its ID. You can expand the notification's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The notification's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.notification.retrieve(\"notif_123\")\n.then(({ notification }) => {\n  console.log(notification)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/notifications/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Notifications"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminNotificationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/order-changes/{id}": {
      "post": {
        "operationId": "AdminPostOrderChangesId",
        "summary": "Update an Order Change",
        "x-sidebar-summary": "Update Order Change",
        "description": "Update an order change's details. An order change can be an exchange, claim, or edit. For example, you can edit whether an exchange carries over the parent order's promotion.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order change's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the order change's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the order change's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the order change's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the order change's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by the order change's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the order change's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by an order change's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by order change IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "An order change's ID."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by order change IDs.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by an order change's status."
                },
                {
                  "type": "array",
                  "description": "Filter by order change statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "An order change's status."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by order change statuses.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "change_type",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "change_type",
                  "description": "Filter by the order change's change type."
                },
                {
                  "type": "array",
                  "description": "Filter by order change types.",
                  "items": {
                    "type": "string",
                    "title": "change_type",
                    "description": "The order change type."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by order change types.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateOrderChange"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.updateOrderChange(\n  \"ordch_123\",\n  {\n    carry_over_promotions: true\n  }\n)\n.then(({ order_change }) => {\n  console.log(order_change)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/order-changes/{id}' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"carry_over_promotions\": true\n}'"
          }
        ],
        "tags": [
          "Admin Order Changes"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderChangeResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateOrderChangeWorkflow",
        "x-events": [],
        "x-since": "2.12.0"
      }
    },
    "/admin/order-edits": {
      "post": {
        "operationId": "AdminPostOrderEdits",
        "summary": "Create Order Edit",
        "description": "Create an order edit.",
        "x-authenticated": true,
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPostOrderEditsReqSchema"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.orderEdit.initiateRequest({\n  order_id: \"order_123\"\n})\n.then(({ order_change }) => {\n  console.log(order_change)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/order-edits' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"order_id\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Order Edits"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderEditResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "beginOrderEditOrderWorkflow",
        "x-events": []
      }
    },
    "/admin/order-edits/{id}": {
      "delete": {
        "operationId": "AdminDeleteOrderEditsId",
        "summary": "Cancel Order Edit",
        "description": "Cancel a requested order edit.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the order that is being edited.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.orderEdit.cancelRequest(\"order_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/order-edits/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Order Edits"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The deletion's details.",
                  "required": [
                    "id",
                    "object",
                    "deleted"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The order edit's ID."
                    },
                    "object": {
                      "type": "string",
                      "title": "object",
                      "description": "The name of the deleted object.",
                      "default": "order-edit"
                    },
                    "deleted": {
                      "type": "boolean",
                      "title": "deleted",
                      "description": "Whether the order edit was deleted."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "cancelBeginOrderEditWorkflow",
        "x-events": [
          {
            "name": "order-edit.canceled",
            "payload": "```ts\n{\n  order_id, // The ID of the order\n  actions, // (array) The [actions](https://docs.medusajs.com/resources/references/fulfillment/interfaces/fulfillment.OrderChangeActionDTO) to edit the order\n}\n```",
            "description": "Emitted when an order edit request is canceled.",
            "deprecated": false,
            "since": "2.8.0"
          }
        ]
      }
    },
    "/admin/order-edits/{id}/confirm": {
      "post": {
        "operationId": "AdminPostOrderEditsIdConfirm",
        "summary": "Confirm Order Edit",
        "description": "Confirm an order edit request and apply the changes on the order.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the order that is being edited.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.orderEdit.confirm(\"order_123\")\n.then(({ order_preview }) => {\n  console.log(order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/order-edits/{id}/confirm' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Order Edits"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderEditPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "confirmOrderEditRequestWorkflow",
        "x-events": [
          {
            "name": "order-edit.confirmed",
            "payload": "```ts\n{\n  order_id, // The ID of the order\n  actions, // (array) The [actions](https://docs.medusajs.com/resources/references/fulfillment/interfaces/fulfillment.OrderChangeActionDTO) to edit the order\n}\n```",
            "description": "Emitted when an order edit request is confirmed.",
            "deprecated": false,
            "since": "2.8.0"
          }
        ]
      }
    },
    "/admin/order-edits/{id}/items": {
      "post": {
        "operationId": "AdminPostOrderEditsIdItems",
        "summary": "Add Items to Order Edit",
        "x-sidebar-summary": "Add Items",
        "description": "Add new items to an order edit. These items will have the action `ITEM_ADD`.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the order that is being edited.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPostOrderEditsAddItemsReqSchema"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.orderEdit.addItems(\"order_123\", {\n  items: [\n    {\n      variant_id: \"variant_123\",\n      quantity: 1\n    }\n  ]\n})\n.then(({ order_preview }) => {\n  console.log(order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/order-edits/{id}/items' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Order Edits"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderEditPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "orderEditAddNewItemWorkflow",
        "x-events": []
      }
    },
    "/admin/order-edits/{id}/items/item/{item_id}": {
      "post": {
        "operationId": "AdminPostOrderEditsIdItemsItemItem_id",
        "summary": "Update Order Item Quantity of Order Edit",
        "x-sidebar-summary": "Update Item Quantity",
        "description": "Update an existing order item's quantity of an order edit.\nYou can also use this API route to remove an item from an order by setting its quantity to `0`.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the order that is being edited.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "item_id",
            "in": "path",
            "description": "The order edit's item id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPostOrderEditsUpdateItemQuantityReqSchema"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.orderEdit.updateOriginalItem(\n  \"order_123\", \n  \"orli_123\",\n  {\n    quantity: 1\n  }\n)\n.then(({ order_preview }) => {\n  console.log(order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/order-edits/{id}/items/item/{item_id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"quantity\": 7564330046324736\n}'"
          }
        ],
        "tags": [
          "Admin Order Edits"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderEditPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "orderEditUpdateItemQuantityWorkflow",
        "x-events": []
      }
    },
    "/admin/order-edits/{id}/items/{action_id}": {
      "post": {
        "operationId": "AdminPostOrderEditsIdItemsAction_id",
        "summary": "Update an Item in an Order Edit",
        "x-sidebar-summary": "Update Item",
        "description": "Update an added item in the order edit by the ID of the item's `ITEM_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the order that is being edited.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the new item's `ITEM_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPostOrderEditsItemsActionReqSchema"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.orderEdit.updateAddedItem(\n  \"order_123\", \n  \"orli_123\",\n  {\n    quantity: 1\n  }\n)\n.then(({ order_preview }) => {\n  console.log(order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/order-edits/{id}/items/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Order Edits"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderEditPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateOrderEditAddItemWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteOrderEditsIdItemsAction_id",
        "summary": "Remove Item from Order Edit",
        "x-sidebar-summary": "Remove Item",
        "description": "Remove an added item in the order edit by the ID of the item's `ITEM_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the order that is being edited.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the new item's `ITEM_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.orderEdit.removeAddedItem(\n  \"order_123\", \n  \"orli_123\",\n)\n.then(({ order_preview }) => {\n  console.log(order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/order-edits/{id}/items/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Order Edits"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderEditPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeItemOrderEditActionWorkflow",
        "x-events": []
      }
    },
    "/admin/order-edits/{id}/request": {
      "post": {
        "operationId": "AdminPostOrderEditsIdRequest",
        "summary": "Request Order Edit",
        "description": "Change the status of an active order edit to requested.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the order that is being edited.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.orderEdit.request(\"order_123\")\n.then(({ order_preview }) => {\n  console.log(order_preview)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/order-edits/{id}/request' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Order Edits"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderEditPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "requestOrderEditRequestWorkflow",
        "x-events": [
          {
            "name": "order-edit.requested",
            "payload": "```ts\n{\n  order_id, // The ID of the order\n  actions, // (array) The [actions](https://docs.medusajs.com/resources/references/fulfillment/interfaces/fulfillment.OrderChangeActionDTO) to edit the order\n}\n```",
            "description": "Emitted when an order edit is requested.",
            "deprecated": false,
            "since": "2.8.0"
          }
        ]
      }
    },
    "/admin/order-edits/{id}/shipping-method": {
      "post": {
        "operationId": "AdminPostOrderEditsIdShippingMethod",
        "summary": "Add Shipping Method to Order Edit",
        "x-sidebar-summary": "Add Shipping Method",
        "description": "Add a shipping method to an exchange. The shipping method will have a `SHIPPING_ADD` action.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the order that is being edited.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPostOrderEditsShippingReqSchema"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/order-edits/{id}/shipping-method' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"shipping_option_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Order Edits"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderEditPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createOrderEditShippingMethodWorkflow",
        "x-events": []
      }
    },
    "/admin/order-edits/{id}/shipping-method/{action_id}": {
      "post": {
        "operationId": "AdminPostOrderEditsIdShippingMethodAction_id",
        "summary": "Update Shipping Method of an Order Edit",
        "x-sidebar-summary": "Update Shipping Method",
        "description": "Update a shipping method in the order edit by the ID of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the order that is being edited.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the shipping method's `SHIPPING_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPostOrderEditsShippingActionReqSchema"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/order-edits/{id}/shipping-method/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Order Edits"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderEditPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateOrderEditShippingMethodWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteOrderEditsIdShippingMethodAction_id",
        "summary": "Remove Shipping Method from Order Edit",
        "x-sidebar-summary": "Remove Shipping Method",
        "description": "Remove a shipping method in the order edit by the ID of the method's `SHIPPING_ADD` action.\n\nEvery shipping method has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the order that is being edited.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the shipping method's `SHIPPING_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/order-edits/{id}/shipping-method/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Order Edits"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderEditPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeOrderEditShippingMethodWorkflow",
        "x-events": []
      }
    },
    "/admin/orders": {
      "get": {
        "operationId": "AdminGetOrders",
        "summary": "List Orders",
        "description": "Retrieve a list of orders. The orders can be filtered by fields such as `id`. The orders can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by an order ID."
                },
                {
                  "type": "array",
                  "description": "Filter by order IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "An order's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by the order's status."
                },
                {
                  "type": "array",
                  "description": "Filter by order statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "An order's status."
                  }
                }
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "sales_channel_id",
            "in": "query",
            "description": "Filter by sales channel IDs to retrieve the orders associated with them.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Filter by sales channel IDs to retrieve the orders associated with them.",
              "items": {
                "type": "string",
                "title": "sales_channel_id",
                "description": "A sales channel's ID."
              }
            }
          },
          {
            "name": "region_id",
            "in": "query",
            "description": "Filter by region IDs to retrieve their associated orders.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "region_id",
                  "description": "The order's region id."
                },
                {
                  "type": "array",
                  "description": "The order's region id.",
                  "items": {
                    "type": "string",
                    "title": "region_id",
                    "description": "The region id's details."
                  }
                }
              ]
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the order's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the order's searchable properties."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the order's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the order's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the order's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the order's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "customer_id",
                  "description": "The order's customer id."
                },
                {
                  "type": "array",
                  "description": "The order's customer id.",
                  "items": {
                    "type": "string",
                    "title": "customer_id",
                    "description": "The customer id's details."
                  }
                }
              ]
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.list()\n.then(({ orders, count, limit, offset }) => {\n  console.log(orders)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/orders' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of orders",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total count of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of orders.",
                      "required": [
                        "orders"
                      ],
                      "properties": {
                        "orders": {
                          "type": "array",
                          "description": "The list of orders.",
                          "items": {
                            "$ref": "#/components/schemas/AdminOrder"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "getOrdersListWorkflow",
        "x-events": []
      }
    },
    "/admin/orders/export": {
      "post": {
        "operationId": "AdminPostOrdersExport",
        "summary": "Export Orders",
        "description": "Start an order export process to retrieve a CSV of exported orders.\n\nYou'll receive in the response the transaction ID of the workflow generating the CSV file. To check the status of the execution, send a GET request to `/admin/workflows-executions/export-orders/:transaction-id`.\n\nOnce the execution finishes successfully, a notification is created for the export. You can retrieve the notifications using the `/admin/notification` API route to retrieve the file's download URL.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "The ID of the order to export."
                },
                {
                  "type": "array",
                  "description": "The IDs of the orders to export.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "An order ID."
                  }
                }
              ]
            }
          },
          {
            "name": "sales_channel_id",
            "in": "query",
            "description": "The IDs of the sales channels to export their orders.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "The IDs of the sales channels to export their orders.",
              "items": {
                "type": "string",
                "title": "sales_channel_id",
                "description": "A sales channel ID."
              }
            }
          },
          {
            "name": "region_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "region_id",
                  "description": "The ID of a region to export orders in it."
                },
                {
                  "type": "array",
                  "description": "The IDs of regions to export their orders.",
                  "items": {
                    "type": "string",
                    "title": "region_id",
                    "description": "A region ID."
                  }
                }
              ]
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "customer_id",
                  "description": "The ID of a customer to export their orders."
                },
                {
                  "type": "array",
                  "description": "The IDs of customers to export their orders.",
                  "items": {
                    "type": "string",
                    "title": "customer_id",
                    "description": "A customer ID."
                  }
                }
              ]
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "A search query to filter exported orders by.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "A search query to filter exported orders by."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by an order's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by an order's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by an order's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by an order's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted orders in the export.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted orders in the export."
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "The status of the orders to export.",
                  "enum": [
                    "canceled",
                    "completed",
                    "pending",
                    "draft",
                    "archived",
                    "requires_action"
                  ]
                },
                {
                  "type": "array",
                  "description": "The statuses of the orders to export.",
                  "items": {
                    "type": "string",
                    "description": "The order status.",
                    "enum": [
                      "canceled",
                      "completed",
                      "pending",
                      "draft",
                      "archived",
                      "requires_action"
                    ]
                  }
                },
                {
                  "type": "object",
                  "description": "The order's status.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.export()\n.then(({ transaction_id }) => {\n  console.log(transaction_id)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/orders/export' \\\n-H 'Authorization: Bearer {access_token}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "202": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExportOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "exportOrdersWorkflow",
        "x-events": [],
        "x-since": "2.12.3"
      }
    },
    "/admin/orders/{id}": {
      "get": {
        "operationId": "AdminGetOrdersId",
        "summary": "Get an Order",
        "description": "Retrieve an order by its ID. You can expand the order's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "version",
            "in": "query",
            "description": "The order's version.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "version",
              "description": "The order's version."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.retrieve(\"order_123\")\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/orders/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "getOrderDetailWorkflow",
        "x-events": []
      },
      "post": {
        "operationId": "AdminPostOrdersId",
        "summary": "Update Order",
        "description": "Update an order's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "version",
            "in": "query",
            "description": "The version of the order to retrieve.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "version",
              "description": "The version of the order to retrieve."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateOrder"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.update(\n  \"order_123\",\n  {\n    email: \"new_email@example.com\",\n    shipping_address: {\n      first_name: \"John\",\n      last_name: \"Doe\",\n      address_1: \"123 Main St\",\n    }\n  }\n)\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/orders/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateOrderWorkflow",
        "x-events": [
          {
            "name": "order.updated",
            "payload": "```ts\n{\n  id, // The ID of the order\n}\n```",
            "description": "Emitted when the details of an order or draft order is updated. This\ndoesn't include updates made by an edit.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/orders/{id}/archive": {
      "post": {
        "operationId": "AdminPostOrdersIdArchive",
        "summary": "Archive an Order",
        "description": "Change the status of an order to archived.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.archive(\"order_123\")\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/orders/{id}/archive' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"order_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "archiveOrderWorkflow",
        "x-events": [
          {
            "name": "order.archived",
            "payload": "```ts\n{\n  id, // The ID of the order\n}\n```",
            "description": "Emitted when an order is archived.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/orders/{id}/cancel": {
      "post": {
        "operationId": "AdminPostOrdersIdCancel",
        "summary": "Cancel Order",
        "description": "Cancel an order. The cancelation fails if:\n- The order has captured payments.\n\n\n- The order has refund payments.\n\n\n- The order has fulfillments that aren't canceled.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.cancel(\"order_123\")\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/orders/{id}/cancel' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "cancelOrderWorkflow",
        "x-events": [
          {
            "name": "order.canceled",
            "payload": "```ts\n{\n  id, // The ID of the order\n}\n```",
            "description": "Emitted when an order is canceld.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/orders/{id}/changes": {
      "get": {
        "operationId": "AdminGetOrdersIdChanges",
        "summary": "List Changes on an Order",
        "x-sidebar-summary": "List Changes",
        "description": "Retrieve a list of changes made on an order, including returns, exchanges, etc...\n\nThe changes can be filtered by fields like `created_at`. The changes can also be paginated.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the order change's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the order change's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the order change's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the order change's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by the order change's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the order change's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by an order change ID."
                },
                {
                  "type": "array",
                  "description": "Filter by order change IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "An order change ID."
                  }
                },
                {
                  "type": "object",
                  "description": "The order's ID.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by the order change's status."
                },
                {
                  "type": "array",
                  "description": "Filter by multiple order change statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "An order change status."
                  }
                },
                {
                  "type": "object",
                  "description": "The order change's status.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "change_type",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "change_type",
                  "description": "Filter by the order change's type."
                },
                {
                  "type": "array",
                  "description": "Filter by multiple order change types.",
                  "items": {
                    "type": "string",
                    "title": "change_type",
                    "description": "An order change type."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter the order change's type.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.listChanges(\"order_123\")\n.then(({ order_changes }) => {\n  console.log(order_changes)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/orders/{id}/changes' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderChangesResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/orders/{id}/complete": {
      "post": {
        "operationId": "AdminPostOrdersIdComplete",
        "summary": "Complete Order",
        "description": "Mark an order as completed.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter.",
                "properties": {
                  "additional_data": {
                    "type": "object",
                    "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.complete(\"order_123\")\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/orders/{id}/complete' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"order_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "completeOrderWorkflow",
        "x-events": [
          {
            "name": "order.completed",
            "payload": "```ts\n{\n  id, // The ID of the order\n}\n```",
            "description": "Emitted when orders are completed.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/orders/{id}/credit-lines": {
      "post": {
        "operationId": "AdminPostOrdersIdCreditLines",
        "summary": "Create Credit Line for Order",
        "x-sidebar-summary": "Create Credit Line",
        "description": "Create a credit line for an order.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateOrderCreditLine"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.createCreditLine(\n  \"order_123\",\n  {\n    amount: 100,\n    reference: \"order\",\n    reference_id: \"order_123\",\n  }\n)\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/orders/{id}/credit-lines' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"amount\": 32,\n  \"reference\": \"{value}\",\n  \"reference_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createOrderCreditLinesWorkflow",
        "x-events": []
      }
    },
    "/admin/orders/{id}/fulfillments": {
      "post": {
        "operationId": "AdminPostOrdersIdFulfillments",
        "summary": "Create an Order Fulfillment",
        "x-sidebar-summary": "Create Fulfillment",
        "description": "Create a fulfillment for an order. The creation fails if the order is canceled.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The fulfillment's details.",
                    "required": [
                      "items",
                      "location_id",
                      "metadata"
                    ],
                    "properties": {
                      "items": {
                        "type": "array",
                        "description": "The items to fulfill.",
                        "items": {
                          "type": "object",
                          "description": "An item's details.",
                          "required": [
                            "id",
                            "quantity"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "The item's ID."
                            },
                            "quantity": {
                              "type": "number",
                              "title": "quantity",
                              "description": "The item's quantity to fulfill."
                            }
                          }
                        }
                      },
                      "location_id": {
                        "type": "string",
                        "title": "location_id",
                        "description": "The ID of the location to fulfill the items from. If not provided, the location associated with the shipping option of the order's shipping method is used."
                      },
                      "no_notification": {
                        "type": "boolean",
                        "title": "no_notification",
                        "description": "Whether to send the customer a notification about the created fulfillment."
                      },
                      "metadata": {
                        "type": "object",
                        "description": "The order's metadata. Can hold custom key-value pairs."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The fulfillment's details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The fulfillment's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.createFulfillment(\"order_123\", {\n  items: [\n    {\n      id: \"orli_123\",\n      quantity: 1\n    }\n  ]\n})\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/orders/{id}/fulfillments' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"items\": [\n    {\n      \"id\": \"id_YePfQ6PBCBKvmYyreUt2\",\n      \"quantity\": 6623610359775232\n    }\n  ],\n  \"location_id\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createOrderFulfillmentWorkflow",
        "x-events": [
          {
            "name": "order.fulfillment_created",
            "payload": "```ts\n{\n  order_id, // The ID of the order\n  fulfillment_id, // The ID of the fulfillment\n  no_notification, // (boolean) Whether to notify the customer\n}\n```",
            "description": "Emitted when a fulfillment is created for an order.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/orders/{id}/fulfillments/{fulfillment_id}/cancel": {
      "post": {
        "operationId": "AdminPostOrdersIdFulfillmentsFulfillment_idCancel",
        "summary": "Cancel Fulfillment",
        "description": "Cancel an order's fulfillment. The fulfillment can't be canceled if it's shipped.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fulfillment_id",
            "in": "path",
            "description": "The order's fulfillment id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The cancelation details.",
                    "properties": {
                      "no_notification": {
                        "type": "boolean",
                        "title": "no_notification",
                        "description": "Whether the customer should receive a notification about this change."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The cancelation details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The cancelation details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.cancelFulfillment(\n  \"order_123\",\n  \"ful_123\",\n  {\n    no_notification: false\n  }\n)\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/orders/{id}/fulfillments/{fulfillment_id}/cancel' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "cancelOrderFulfillmentWorkflow",
        "x-events": [
          {
            "name": "order.fulfillment_canceled",
            "payload": "```ts\n{\n  order_id, // The ID of the order\n  fulfillment_id, // The ID of the fulfillment\n  no_notification, // (boolean) Whether to notify the customer\n}\n```",
            "description": "Emitted when an order's fulfillment is canceled.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/orders/{id}/fulfillments/{fulfillment_id}/mark-as-delivered": {
      "post": {
        "operationId": "AdminPostOrdersIdFulfillmentsFulfillment_idMarkAsDelivered",
        "summary": "Mark a Fulfillment as Delivered.",
        "x-sidebar-summary": "Mark Delivered",
        "description": "Mark an order's fulfillment as delivered.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fulfillment_id",
            "in": "path",
            "description": "The fulfillment's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nIf a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nWithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.markAsDelivered(\n  \"order_123\",\n  \"ful_123\",\n)\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/orders/{id}/fulfillments/{fulfillment_id}/mark-as-delivered' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "markOrderFulfillmentAsDeliveredWorkflow",
        "x-events": [
          {
            "name": "delivery.created",
            "payload": "```ts\n{\n  id, // the ID of the fulfillment\n}\n```",
            "description": "Emitted when a fulfillment is marked as delivered.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/orders/{id}/fulfillments/{fulfillment_id}/shipments": {
      "post": {
        "operationId": "AdminPostOrdersIdFulfillmentsFulfillment_idShipments",
        "summary": "Create Shipment for an Order's Fulfillment",
        "x-sidebar-summary": "Create Shipment",
        "description": "Create a shipment for an order's fulfillment.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fulfillment_id",
            "in": "path",
            "description": "The fulfillment's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The shipment's details.",
                    "required": [
                      "items",
                      "metadata"
                    ],
                    "properties": {
                      "items": {
                        "type": "array",
                        "description": "The items to create shipment for.",
                        "items": {
                          "type": "object",
                          "description": "The details of the item to create shipment for.",
                          "required": [
                            "id",
                            "quantity"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "The item's ID."
                            },
                            "quantity": {
                              "type": "number",
                              "title": "quantity",
                              "description": "The item's quantity to ship."
                            }
                          }
                        }
                      },
                      "labels": {
                        "type": "array",
                        "description": "The labels to create for the shipment.",
                        "items": {
                          "type": "object",
                          "description": "The label's labels.",
                          "required": [
                            "tracking_number",
                            "tracking_url",
                            "label_url"
                          ],
                          "properties": {
                            "tracking_number": {
                              "type": "string",
                              "title": "tracking_number",
                              "description": "The label's tracking number."
                            },
                            "tracking_url": {
                              "type": "string",
                              "title": "tracking_url",
                              "description": "The label's tracking url."
                            },
                            "label_url": {
                              "type": "string",
                              "title": "label_url",
                              "description": "The label's url."
                            }
                          }
                        }
                      },
                      "no_notification": {
                        "type": "boolean",
                        "title": "no_notification",
                        "description": "Whether to send the customer a notification about the created shipment."
                      },
                      "metadata": {
                        "type": "object",
                        "description": "The shipment's metadata. Can hold custom key-value pairs."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The shipment's details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The shipment's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.createShipment(\n  \"order_123\",\n  \"ful_123\",\n  {\n    items: [\n      {\n        id: \"fulit_123\",\n        quantity: 1\n      }\n    ]\n  }\n)\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/orders/{id}/fulfillments/{fulfillment_id}/shipments' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"items\": [\n    {\n      \"id\": \"id_3QQtl2VvE73c\",\n      \"quantity\": 6772917941567488\n    }\n  ],\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createOrderShipmentWorkflow",
        "x-events": [
          {
            "name": "shipment.created",
            "payload": "```ts\n{\n  id, // the ID of the fulfillment\n  no_notification, // (boolean) whether to notify the customer\n}\n```",
            "description": "Emitted when a shipment is created for an order.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/orders/{id}/line-items": {
      "get": {
        "operationId": "AdminGetOrdersIdLineItems",
        "summary": "List Line Items",
        "description": "Retrieve a list of line items in a order. The line items can be filtered by fields like FILTER FIELDS. The line items can also be paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "The order's ID."
                },
                {
                  "type": "array",
                  "description": "The order's ID.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "The id's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "item_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "item_id",
                  "description": "The order's item id."
                },
                {
                  "type": "array",
                  "description": "The order's item id.",
                  "items": {
                    "type": "string",
                    "title": "item_id",
                    "description": "The item id's details."
                  }
                }
              ]
            }
          },
          {
            "name": "version",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "number",
                  "title": "version",
                  "description": "The order's version."
                },
                {
                  "type": "array",
                  "description": "The order's version.",
                  "items": {
                    "type": "number",
                    "title": "version",
                    "description": "The version's details."
                  }
                }
              ]
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.listLineItems(\"order_123\")\n.then(({ order_items }) => {\n  console.log(order_items)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/orders/{id}/line-items' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "SUMMARY",
                  "required": [
                    "order_items"
                  ],
                  "properties": {
                    "order_items": {
                      "type": "array",
                      "description": "The order's order items.",
                      "items": {
                        "$ref": "#/components/schemas/AdminOrderItem"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/orders/{id}/preview": {
      "get": {
        "operationId": "AdminGetOrdersIdPreview",
        "summary": "Get Preview",
        "description": "Retrieve a preview of an order using its associated change, such as an edit.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.retrievePreview(\"order_123\")\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/orders/{id}/preview' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/orders/{id}/shipping-options": {
      "get": {
        "operationId": "AdminGetOrdersIdShippingOptions",
        "summary": "List Shipping Options for Order",
        "x-sidebar-summary": "List Shipping Options",
        "description": "Retrieve a list of shipping options that can be used for outbound shipping in an order. This is especially useful when adding outbound shipping to order exchanges or claims.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.listShippingOptions(\"order_123\")\n.then(({ shipping_options }) => {\n  console.log(shipping_options)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/orders/{id}/shipping-options' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The list of shipping options.",
                  "required": [
                    "shipping_options"
                  ],
                  "properties": {
                    "shipping_options": {
                      "type": "array",
                      "description": "The list of shipping options.",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "listShippingOptionsForOrderWorkflow",
        "x-events": [],
        "x-since": "2.10.0"
      }
    },
    "/admin/orders/{id}/transfer": {
      "post": {
        "operationId": "AdminPostOrdersIdTransfer",
        "x-sidebar-summary": "Request Transfer",
        "summary": "Request Order Transfer",
        "description": "Request an order to be transfered to another customer. The transfer is confirmed by sending a request to the [Accept Order Transfer](https://docs.medusajs.com/api/store#orders_postordersidtransferaccept) Store API route.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminRequestOrderTransfer"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.requestTransfer(\"order_123\", {\n  customer_id: \"cus_123\",\n  internal_note: \"Internal note\",\n})\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/orders/{id}/transfer' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"customer_id\": \"cus_123\"\n}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "requestOrderTransferWorkflow",
        "x-events": [
          {
            "name": "order.transfer_requested",
            "payload": "```ts\n{\n  id, // The ID of the order\n  order_change_id, // The ID of the order change created for the transfer\n}\n```",
            "description": "Emitted when an order is requested to be transferred to\nanother customer.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/orders/{id}/transfer/cancel": {
      "post": {
        "operationId": "AdminPostOrdersIdTransferCancel",
        "summary": "Cancel Transfer Request",
        "x-sidebar-summary": "Cancel Transfer",
        "description": "Cancel a request to transfer an order to another customer.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.order.cancelTransfer(\"order_123\")\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/orders/{id}/transfer/cancel' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "cancelOrderTransferRequestWorkflow",
        "x-events": []
      }
    },
    "/admin/payment-collections": {
      "post": {
        "operationId": "AdminPostPaymentCollections",
        "summary": "Create Payment Collection",
        "description": "Create a payment collection.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreatePaymentCollection"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.paymentCollection.create({\n  order_id: \"order_123\"\n})\n.then(({ payment_collection }) => {\n  console.log(payment_collection)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/payment-collections' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"order_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Payment Collections"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPaymentCollectionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createOrderPaymentCollectionWorkflow",
        "x-events": []
      }
    },
    "/admin/payment-collections/{id}": {
      "delete": {
        "operationId": "AdminDeletePaymentCollectionsId",
        "summary": "Delete a Payment Collection",
        "description": "Delete a payment collection.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment collection's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.paymentCollection.delete(\"paycol_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/payment-collections/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Payment Collections"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminDeletePaymentCollectionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteOrderPaymentCollections",
        "x-events": []
      }
    },
    "/admin/payment-collections/{id}/mark-as-paid": {
      "post": {
        "operationId": "AdminPostPaymentCollectionsIdMarkAsPaid",
        "summary": "Mark a Payment Collection as Paid",
        "x-sidebar-summary": "Mark as Paid",
        "description": "Mark a payment collection as paid. This creates and authorizes a payment session, then capture its payment, using the manual payment provider.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment collection's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminMarkPaymentCollectionAsPaid"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.paymentCollection.markAsPaid(\"paycol_123\", {\n  order_id: \"order_123\"\n})\n.then(({ payment_collection }) => {\n  console.log(payment_collection)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/payment-collections/{id}/mark-as-paid' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"order_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Payment Collections"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPaymentCollectionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "markPaymentCollectionAsPaid",
        "x-events": [
          {
            "name": "payment.captured",
            "payload": "```ts\n{\n  id, // the ID of the payment\n}\n```",
            "description": "Emitted when a payment is captured.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/payments": {
      "get": {
        "operationId": "AdminGetPayments",
        "summary": "List Payments",
        "description": "Retrieve a list of payments. The payments can be filtered by fields such as `id`. The payments can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the payment's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the payment's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a payment ID."
                },
                {
                  "type": "array",
                  "description": "Filter by payment IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A payment ID."
                  }
                }
              ]
            }
          },
          {
            "name": "payment_session_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "payment_session_id",
                  "description": "Filter by a payment session ID to retrieve its associated payments."
                },
                {
                  "type": "array",
                  "description": "Filter by payment session IDs to retrieve their associated payments.",
                  "items": {
                    "type": "string",
                    "title": "payment_session_id",
                    "description": "A payment session's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the payment's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the payment's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the payment's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the payment's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by the payment's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the payment's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.payment.list()\n.then(({ payments, count, limit, offset }) => {\n  console.log(payments)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/payments' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Payments"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of payments.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of returned items."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of payments."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of payments.",
                      "required": [
                        "payments"
                      ],
                      "properties": {
                        "payments": {
                          "type": "array",
                          "description": "The list of payments.",
                          "items": {
                            "$ref": "#/components/schemas/AdminPayment"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/payments/payment-providers": {
      "get": {
        "operationId": "AdminGetPaymentsPaymentProviders",
        "summary": "List Payment Providers",
        "description": "Retrieve a list of payment providers. The payment providers can be filtered by fields such as `id`. The payment providers can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": true,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a payment provider's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by payment provider IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A payment provider ID."
                  }
                }
              ]
            }
          },
          {
            "name": "is_enabled",
            "in": "query",
            "description": "Filter by whether the payment provider is enabled.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "is_enabled",
              "description": "Filter by whether the payment provider is enabled."
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.payment.listPaymentProviders()\n.then(({ payment_providers, count, limit, offset }) => {\n  console.log(payment_providers)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/payments/payment-providers' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Payments"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The list of payment providers.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of payment providers.",
                      "required": [
                        "payment_providers"
                      ],
                      "properties": {
                        "payment_providers": {
                          "type": "array",
                          "description": "The list of payment providers.",
                          "items": {
                            "$ref": "#/components/schemas/AdminPaymentProvider"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/payments/{id}": {
      "get": {
        "operationId": "AdminGetPaymentsId",
        "summary": "Get a Payment",
        "description": "Retrieve a payment by its ID. You can expand the payment's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.payment.retrieve(\"pay_123\")\n.then(({ payment }) => {\n  console.log(payment)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/payments/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Payments"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPaymentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/payments/{id}/capture": {
      "post": {
        "operationId": "AdminPostPaymentsIdCapture",
        "summary": "Capture Payment",
        "description": "Capture an amount of a payment. This uses the `capturePayment` method of the payment provider associated with the payment's collection.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCapturePayment"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.payment.capture(\"paycol_123\", {})\n.then(({ payment }) => {\n  console.log(payment)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/payments/{id}/capture' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Payments"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPaymentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "capturePaymentWorkflow",
        "x-events": [
          {
            "name": "payment.captured",
            "payload": "```ts\n{\n  id, // the ID of the payment\n}\n```",
            "description": "Emitted when a payment is captured.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/payments/{id}/refund": {
      "post": {
        "operationId": "AdminPostPaymentsIdRefund",
        "summary": "Refund Payment",
        "description": "Refund an amount of a payment. This uses the `refundPayment` method of the payment provider associated with the payment's collection.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminRefundPayment"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.payment.refund(\"paycol_123\", {})\n.then(({ payment }) => {\n  console.log(payment)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/payments/{id}/refund' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Payments"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPaymentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "refundPaymentWorkflow",
        "x-events": [
          {
            "name": "payment.refunded",
            "payload": "```ts\n{\n  id, // the ID of the payment\n}\n```",
            "description": "Emitted when a payment is refunded.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/plugins": {
      "get": {
        "operationId": "AdminGetPlugins",
        "summary": "List Plugins",
        "description": "Retrieve the list of plugins installed in the Medusa application.",
        "x-authenticated": true,
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.plugin.list()\n.then(({ plugins }) => {\n  console.log(plugins)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/plugins' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Plugins"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPluginsListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/price-lists": {
      "get": {
        "operationId": "AdminGetPriceLists",
        "summary": "List Price Lists",
        "description": "Retrieve a list of price lists. The price lists can be filtered by fields such as `id`. The price lists can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the price list's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the price list's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a price list ID."
                },
                {
                  "type": "array",
                  "description": "Filter by price list IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A price list ID."
                  }
                }
              ]
            }
          },
          {
            "name": "starts_at",
            "in": "query",
            "description": "Filter by a price list's start date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a price list's start date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "starts_at"
            }
          },
          {
            "name": "ends_at",
            "in": "query",
            "description": "Filter by the price list's end date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the price list's end date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "ends_at"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Filter by the price list's status.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Filter by the price list's status.",
              "items": {
                "type": "string",
                "description": "A price list's status.",
                "enum": [
                  "active",
                  "draft"
                ]
              }
            }
          },
          {
            "name": "rules_count",
            "in": "query",
            "description": "Filter by the price list's rules count.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Filter by the price list's rules count.",
              "items": {
                "type": "number",
                "title": "rules_count",
                "description": "The price list's rule count."
              }
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.priceList.list()\n.then(({ price_lists, count, limit, offset }) => {\n  console.log(price_lists)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/price-lists' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Price Lists"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPriceListListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostPriceLists",
        "summary": "Create Price List",
        "description": "Create a price list.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Apply a search query to the price list's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Apply a search query to the price list's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a specific price list ID."
                },
                {
                  "type": "array",
                  "description": "Filter by multiple price list IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A price list ID."
                  }
                }
              ]
            }
          },
          {
            "name": "starts_at",
            "in": "query",
            "description": "Filter by a price list's start date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a price list's start date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "starts_at"
            }
          },
          {
            "name": "ends_at",
            "in": "query",
            "description": "Filter by a price list's end date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a price list's end date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "ends_at"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Filter by price list statuses.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Filter by price list statuses.",
              "items": {
                "type": "string",
                "description": "A price list status.",
                "enum": [
                  "draft",
                  "active"
                ]
              }
            }
          },
          {
            "name": "rules_count",
            "in": "query",
            "description": "Filter by multiple price list rules count.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Filter by price list rules count.",
              "items": {
                "type": "number",
                "title": "rules_count",
                "description": "A price list's rules count."
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "The price list's with deleted.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "The price list's with deleted."
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreatePriceList"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.priceList.create({\n  title: \"My Price List\",\n  status: \"active\",\n  type: \"sale\",\n  prices: [\n    {\n      variant_id: \"variant_123\",\n      amount: 10,\n      currency_code: \"usd\",\n      rules: {\n        region_id: \"reg_123\"\n      }\n    }\n  ]\n})\n.then(({ price_list }) => {\n  console.log(price_list)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/price-lists' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"title\": \"{value}\",\n  \"description\": \"{value}\",\n  \"starts_at\": \"{value}\",\n  \"ends_at\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Price Lists"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPriceListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createPriceListsWorkflow",
        "x-events": []
      }
    },
    "/admin/price-lists/{id}": {
      "get": {
        "operationId": "AdminGetPriceListsId",
        "summary": "Get a Price List",
        "description": "Retrieve a price list by its ID. You can expand the price list's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The price list's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.priceList.retrieve(\"plist_123\")\n.then(({ price_list }) => {\n  console.log(price_list)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/price-lists/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Price Lists"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPriceListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostPriceListsId",
        "summary": "Update a Price List",
        "description": "Update a price list's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The price list's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdatePriceList"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.priceList.update(\"plist_123\", {\n  title: \"My Price List\",\n})\n.then(({ price_list }) => {\n  console.log(price_list)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/price-lists/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"description\": \"{value}\",\n  \"starts_at\": \"{value}\",\n  \"ends_at\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Price Lists"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPriceListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updatePriceListsWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeletePriceListsId",
        "summary": "Delete a Price List",
        "description": "Delete a price list.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The price list's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.priceList.delete(\"plist_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/price-lists/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Price Lists"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPriceListDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deletePriceListsWorkflow",
        "x-events": []
      }
    },
    "/admin/price-lists/{id}/prices": {
      "get": {
        "operationId": "AdminGetPriceListsIdPrices",
        "summary": "List Prices in a Price List",
        "x-sidebar-summary": "List Prices",
        "description": "Retrieve a list of prices in a price list. The prices can also be paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the price list to retrieve prices from.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.priceList.prices(\"plist_123\")\n.then(({ prices }) => {\n  console.log(prices)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/price-lists/{id}/prices' \\\n-H 'Authorization: Bearer {access_token}'"
          }
        ],
        "tags": [
          "Admin Price Lists"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPriceListPriceListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.12.3"
      }
    },
    "/admin/price-lists/{id}/prices/batch": {
      "post": {
        "operationId": "AdminPostPriceListsIdPricesBatch",
        "summary": "Manage Prices in Price List",
        "x-sidebar-summary": "Manage Prices",
        "description": "Manage the prices of a price list to create, update, or delete them.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The price list's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "The prices to create, update, or delete.",
                "properties": {
                  "create": {
                    "type": "array",
                    "description": "The prices to create.",
                    "items": {
                      "type": "object",
                      "description": "A price's details.",
                      "required": [
                        "currency_code",
                        "variant_id",
                        "amount"
                      ],
                      "properties": {
                        "currency_code": {
                          "type": "string",
                          "title": "currency_code",
                          "description": "The price's currency code."
                        },
                        "amount": {
                          "type": "number",
                          "title": "amount",
                          "description": "The price's amount."
                        },
                        "variant_id": {
                          "type": "string",
                          "title": "variant_id",
                          "description": "The ID of the variant this price is for."
                        },
                        "min_quantity": {
                          "type": "number",
                          "title": "min_quantity",
                          "description": "The minimum quantity that must be available of the associated variant in the cart for this price to apply."
                        },
                        "max_quantity": {
                          "type": "number",
                          "title": "max_quantity",
                          "description": "The maximum quantity that must be available of the associated variant in the cart for this price list to apply."
                        },
                        "rules": {
                          "type": "object",
                          "description": "Key-value pair rules to apply on the price.",
                          "example": {
                            "region_id": 123
                          }
                        }
                      }
                    }
                  },
                  "update": {
                    "type": "array",
                    "description": "The prices to update.",
                    "items": {
                      "type": "object",
                      "description": "The properties to update in a price.",
                      "required": [
                        "id",
                        "variant_id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "title": "id",
                          "description": "The price's ID."
                        },
                        "currency_code": {
                          "type": "string",
                          "title": "currency_code",
                          "description": "The price's currency code."
                        },
                        "amount": {
                          "type": "number",
                          "title": "amount",
                          "description": "The price's amount."
                        },
                        "variant_id": {
                          "type": "string",
                          "title": "variant_id",
                          "description": "The ID of the variant this price is for."
                        },
                        "min_quantity": {
                          "type": "number",
                          "title": "min_quantity",
                          "description": "The minimum quantity that must be available of the associated variant in the cart for this price to apply."
                        },
                        "max_quantity": {
                          "type": "number",
                          "title": "max_quantity",
                          "description": "The maximum quantity that must be available of the associated variant in the cart for this price list to apply."
                        },
                        "rules": {
                          "type": "object",
                          "description": "Key-value pair rules to apply on the price.",
                          "example": {
                            "region_id": 123
                          }
                        }
                      }
                    }
                  },
                  "delete": {
                    "type": "array",
                    "description": "The prices to delete.",
                    "items": {
                      "type": "string",
                      "title": "delete",
                      "description": "A price's ID."
                    }
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.priceList.batchPrices(\"plist_123\", {\n  create: [{\n    variant_id: \"variant_123\",\n    currency_code: \"usd\",\n    amount: 10,\n    rules: {\n      region_id: \"reg_123\"\n    }\n  }],\n  update: [{\n    id: \"price_123\",\n    variant_id: \"variant_123\",\n    amount: 20,\n  }],\n  delete: [\"price_123\"]\n})\n.then(({ created, updated, deleted }) => {\n  console.log(created, updated, deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/price-lists/{id}/prices/batch' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Price Lists"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPriceListBatchResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchPriceListPricesWorkflow",
        "x-events": []
      }
    },
    "/admin/price-lists/{id}/products": {
      "post": {
        "operationId": "AdminPostPriceListsIdProducts",
        "summary": "Remove Products from Price List",
        "description": "Remove products from a price list.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The price list's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminLinkPriceListProducts"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.priceList.linkProducts(\"plist_123\", {\n  remove: [\"prod_123\"]\n})\n.then(({ price_list }) => {\n  console.log(price_list)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/price-lists/{id}/products' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Price Lists"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPriceListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchPriceListPricesWorkflow",
        "x-events": []
      }
    },
    "/admin/price-preferences": {
      "get": {
        "operationId": "AdminGetPricePreferences",
        "summary": "List Price Preferences",
        "description": "Retrieve a list of price preferences. The price preferences can be filtered by fields such as `id`. The price preferences can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a price preference ID."
                },
                {
                  "type": "array",
                  "description": "Filter by price preference IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A price preference ID."
                  }
                }
              ]
            }
          },
          {
            "name": "attribute",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "attribute",
                  "description": "Filter by a price preference's attribute."
                },
                {
                  "type": "array",
                  "description": "Filter by price preference attributes.",
                  "items": {
                    "type": "string",
                    "title": "attribute",
                    "description": "A price preference's attribute."
                  }
                }
              ]
            }
          },
          {
            "name": "value",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "value",
                  "description": "Filter by a price preference's value."
                },
                {
                  "type": "array",
                  "description": "Filter by price preference values.",
                  "items": {
                    "type": "string",
                    "title": "value",
                    "description": "A price preference's value."
                  }
                }
              ]
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to apply on the price preference's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to apply on the price preference's searchable properties."
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.pricePreference.list()\n.then(({ price_preferences, count, limit, offset }) => {\n  console.log(price_preferences)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/price-preferences' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Price Preferences"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPricePreferenceListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostPricePreferences",
        "summary": "Create Price Preference",
        "description": "Create a price preference.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreatePricePreference"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.pricePreference.create({\n  attribute: \"region_id\",\n  value: \"region_123\",\n  is_tax_inclusive: true\n})\n.then(({ price_preference }) => {\n  console.log(price_preference)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/price-preferences' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Price Preferences"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPricePreferenceResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createPricePreferencesWorkflow",
        "x-events": []
      }
    },
    "/admin/price-preferences/{id}": {
      "get": {
        "operationId": "AdminGetPricePreferencesId",
        "summary": "Get a Price Preference",
        "description": "Retrieve a price preference by its ID. You can expand the price preference's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The price preference's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.pricePreference.retrieve(\"prpref_123\")\n.then(({ price_preference }) => {\n  console.log(price_preference)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/price-preferences/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Price Preferences"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPricePreferenceResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostPricePreferencesId",
        "summary": "Update a Price Preference",
        "description": "Update a price preference's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The price preference's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdatePricePreference"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.pricePreference.update(\"prpref_123\", {\n  is_tax_inclusive: true\n})\n.then(({ price_preference }) => {\n  console.log(price_preference)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/price-preferences/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Price Preferences"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPricePreferenceResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updatePricePreferencesWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeletePricePreferencesId",
        "summary": "Delete a Price Preference",
        "description": "Delete a price preference.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The price preference's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.pricePreference.delete(\"prpref_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/price-preferences/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Price Preferences"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPricePreferenceDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deletePricePreferencesWorkflow",
        "x-events": []
      }
    },
    "/admin/product-categories": {
      "get": {
        "operationId": "AdminGetProductCategories",
        "summary": "List Product Categories",
        "description": "Retrieve a list of product categories. The product categories can be filtered by fields such as `id`. The product categories can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter on the product category's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter on the product category's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a product category's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by product category IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A product category ID."
                  }
                }
              ]
            }
          },
          {
            "name": "description",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "description",
                  "description": "Filter by the category's description. This performs a full-text search. To do keyword search, use the `q` parameter instead."
                },
                {
                  "type": "array",
                  "description": "Filter by category descriptions. This performs a full-text search. To do keyword search, use the `q` parameter instead.",
                  "items": {
                    "type": "string",
                    "title": "description",
                    "description": "The category's description."
                  }
                }
              ]
            }
          },
          {
            "name": "handle",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "handle",
                  "description": "Filter by a category's handle."
                },
                {
                  "type": "array",
                  "description": "Filter by category handles.",
                  "items": {
                    "type": "string",
                    "title": "handle",
                    "description": "A category's handle."
                  }
                }
              ]
            }
          },
          {
            "name": "parent_category_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "parent_category_id",
                  "description": "Filter by a parent category's ID to retrieve its child categories."
                },
                {
                  "type": "array",
                  "description": "Filter by parent category IDs to retrieve their child categories.",
                  "items": {
                    "type": "string",
                    "title": "parent_category_id",
                    "description": "A parent category's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "include_ancestors_tree",
            "in": "query",
            "description": "Whether to include the parent category of each category. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "include_ancestors_tree",
              "description": "Whether to include the parent category of each category. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`."
            }
          },
          {
            "name": "include_descendants_tree",
            "in": "query",
            "description": "Whether to include the child categories of each category. If you enable this, add to the `fields` query parameter `category_children` to set the children of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "include_descendants_tree",
              "description": "Whether to include the child categories of each category. If you enable this, add to the `fields` query parameter `category_children` to set the children of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`."
            }
          },
          {
            "name": "is_internal",
            "in": "query",
            "description": "Filter by whether the category is internal.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "is_internal",
              "description": "Filter by whether the category is internal."
            }
          },
          {
            "name": "is_active",
            "in": "query",
            "description": "Filter by whether the category is active.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "is_active",
              "description": "Filter by whether the category is active."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the category's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the category's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the category's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the category's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by the category's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the category's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "name",
                  "description": "The product category's name."
                },
                {
                  "type": "array",
                  "description": "The product category's name.",
                  "items": {
                    "type": "string",
                    "title": "name",
                    "description": "The name's details."
                  }
                }
              ]
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productCategory.list()\n.then(({ product_categories, count, limit, offset }) => {\n  console.log(product_categories)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/product-categories' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Product Categories"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductCategoryListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostProductCategories",
        "summary": "Create Product Category",
        "description": "Create a product category.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "include_ancestors_tree",
            "in": "query",
            "description": "Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "include_ancestors_tree",
              "description": "Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`."
            }
          },
          {
            "name": "include_descendants_tree",
            "in": "query",
            "description": "Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the child of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "include_descendants_tree",
              "description": "Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the child of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateProductCategory"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productCategory.create({\n  name: \"Shirts\"\n})\n.then(({ product_category }) => {\n  console.log(product_category)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/product-categories' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"name\": \"Vesta\",\n  \"parent_category_id\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Product Categories"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductCategoryResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createProductCategoriesWorkflow",
        "x-events": [
          {
            "name": "product-category.created",
            "payload": "```ts\n{\n  id, // The ID of the product category\n}\n```",
            "description": "Emitted when product categories are created.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/product-categories/{id}": {
      "get": {
        "operationId": "AdminGetProductCategoriesId",
        "summary": "Get a Product Category",
        "description": "Retrieve a product category by its ID. You can expand the product category's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product category's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "include_ancestors_tree",
            "in": "query",
            "description": "Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "include_ancestors_tree",
              "description": "Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`."
            }
          },
          {
            "name": "include_descendants_tree",
            "in": "query",
            "description": "Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the children of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "include_descendants_tree",
              "description": "Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the children of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`."
            }
          },
          {
            "name": "is_internal",
            "in": "query",
            "description": "Filter by whether the product category is internal.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "is_internal",
              "description": "Filter by whether the product category is internal."
            }
          },
          {
            "name": "is_active",
            "in": "query",
            "description": "Filter by whether the product category is active.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "is_active",
              "description": "Filter by whether the product category is active."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Apply a search query to the product category's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Apply a search query to the product category's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by the product category's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by product category IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A product category ID."
                  }
                }
              ]
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "name",
                  "description": "Filter by the product category's name."
                },
                {
                  "type": "array",
                  "description": "Filter by product category names.",
                  "items": {
                    "type": "string",
                    "title": "name",
                    "description": "A product category name."
                  }
                }
              ]
            }
          },
          {
            "name": "description",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "description",
                  "description": "Filter by the product category's description."
                },
                {
                  "type": "array",
                  "description": "Filter by product category descriptions.",
                  "items": {
                    "type": "string",
                    "title": "description",
                    "description": "A product category description."
                  }
                }
              ]
            }
          },
          {
            "name": "parent_category_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "parent_category_id",
                  "description": "Retrieve the categories of a given parent category's ID."
                },
                {
                  "type": "array",
                  "description": "Retrieve the categories of the given parent category IDs.",
                  "items": {
                    "type": "string",
                    "title": "parent_category_id",
                    "description": "A parent category ID."
                  }
                }
              ]
            }
          },
          {
            "name": "handle",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "handle",
                  "description": "Filter by the product category's handle."
                },
                {
                  "type": "array",
                  "description": "Filter by product category handles.",
                  "items": {
                    "type": "string",
                    "title": "handle",
                    "description": "A product category handle."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the category's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the category's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the category's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the category's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by the category's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the category's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "The product category's with deleted.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "The product category's with deleted."
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productCategory.retrieve(\"pcat_123\")\n.then(({ product_category }) => {\n  console.log(product_category)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/product-categories/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Product Categories"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductCategoryResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostProductCategoriesId",
        "summary": "Update a Product Category",
        "description": "Update a product category's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product category's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "include_ancestors_tree",
            "in": "query",
            "description": "Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "include_ancestors_tree",
              "description": "Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`."
            }
          },
          {
            "name": "include_descendants_tree",
            "in": "query",
            "description": "Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the child of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "include_descendants_tree",
              "description": "Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the child of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateProductCategory"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productCategory.update(\"pcat_123\", {\n  name: \"Shirts\"\n})\n.then(({ product_category }) => {\n  console.log(product_category)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/product-categories/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"parent_category_id\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Product Categories"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductCategoryResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateProductCategoriesWorkflow",
        "x-events": [
          {
            "name": "product-category.updated",
            "payload": "```ts\n{\n  id, // The ID of the product category\n}\n```",
            "description": "Emitted when product categories are updated.",
            "deprecated": false
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteProductCategoriesId",
        "summary": "Delete a Product Category",
        "description": "Delete a product category. This doesn't deleted products in that category.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product category's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productCategory.delete(\"pcat_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/product-categories/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Product Categories"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductCategoryDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteProductCategoriesWorkflow",
        "x-events": [
          {
            "name": "product-category.deleted",
            "payload": "```ts\n{\n  id, // The ID of the product category\n}\n```",
            "description": "Emitted when product categories are deleted.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/product-categories/{id}/products": {
      "post": {
        "operationId": "AdminPostProductCategoriesIdProducts",
        "summary": "Manage Products in Product Category",
        "x-sidebar-summary": "Manage Products",
        "description": "Manage products of a category to add or remove them.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product category's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "include_ancestors_tree",
            "in": "query",
            "description": "Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "include_ancestors_tree",
              "description": "Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`."
            }
          },
          {
            "name": "include_descendants_tree",
            "in": "query",
            "description": "Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the child of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "include_descendants_tree",
              "description": "Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the child of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchLink"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productCategory.updateProducts(\"pcat_123\", {\n  add: [\"prod_123\"],\n  remove: [\"prod_321\"]\n})\n.then(({ product_category }) => {\n  console.log(product_category)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/product-categories/{id}/products' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Product Categories"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductCategoryResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchLinkProductsToCategoryWorkflow",
        "x-events": []
      }
    },
    "/admin/product-tags": {
      "get": {
        "operationId": "AdminGetProductTags",
        "summary": "List Product Tags",
        "description": "Retrieve a list of product tags. The product tags can be filtered by fields such as `id`. The product tags can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the product tag's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the product tag's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a product tag's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by product tag IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A product tag's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "value",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "value",
                  "description": "Filter by a product tag's value."
                },
                {
                  "type": "array",
                  "description": "Filter by product tag values.",
                  "items": {
                    "type": "string",
                    "title": "value",
                    "description": "A tag value."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the tag's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the tag's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the tag's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the tag's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by the tag's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the tag's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productTag.list()\n.then(({ product_tags, count, limit, offset }) => {\n  console.log(product_tags)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/product-tags' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Product Tags"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductTagListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostProductTags",
        "summary": "Create Product Tag",
        "description": "Create a product tag.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateProductTag"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productTag.create({\n  value: \"shirt\"\n})\n.then(({ product_tag }) => {\n  console.log(product_tag)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/product-tags' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"value\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Product Tags"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductTagResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createProductTagsWorkflow",
        "x-events": [
          {
            "name": "product-tag.created",
            "payload": "```ts\n{\n  id, // The ID of the product tag\n}\n```",
            "description": "Emitted when product tags are created.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/product-tags/{id}": {
      "get": {
        "operationId": "AdminGetProductTagsId",
        "summary": "Get a Product Tag",
        "description": "Retrieve a product tag by its ID. You can expand the product tag's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product tag's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productTag.retrieve(\"ptag_123\")\n.then(({ product_tag }) => {\n  console.log(product_tag)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/product-tags/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Product Tags"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductTagResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostProductTagsId",
        "summary": "Update a Product Tag",
        "description": "Update a product tag's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product tag's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateProductTag"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productTag.update(\"ptag_123\", {\n  value: \"shirt\"\n})\n.then(({ product_tag }) => {\n  console.log(product_tag)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/product-tags/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Product Tags"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductTagResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateProductTagsWorkflow",
        "x-events": [
          {
            "name": "product-tag.updated",
            "payload": "```ts\n{\n  id, // The ID of the product tag\n}\n```",
            "description": "Emitted when product tags are updated.",
            "deprecated": false
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteProductTagsId",
        "summary": "Delete a Product Tag",
        "description": "Delete a product tag. This doesn't delete products using the tag.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product tag's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productTag.delete(\"ptag_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/product-tags/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Product Tags"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductTagDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteProductTagsWorkflow",
        "x-events": [
          {
            "name": "product-tag.deleted",
            "payload": "```ts\n{\n  id, // The ID of the product tag\n}\n```",
            "description": "Emitted when product tags are deleted.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/product-types": {
      "get": {
        "operationId": "AdminGetProductTypes",
        "summary": "List Product Types",
        "description": "Retrieve a list of product types. The product types can be filtered by fields such as `id`. The product types can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the product type's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the product type's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a product type's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by product type IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A product type's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "value",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "value",
                  "description": "Filter by a type's value."
                },
                {
                  "type": "array",
                  "description": "Filter by values.",
                  "items": {
                    "type": "string",
                    "title": "value",
                    "description": "A type's value."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the type's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the type's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the type's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the type's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by the type's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the type's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productType.list()\n.then(({ product_types, count, limit, offset }) => {\n  console.log(product_types)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/product-types' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Product Types"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductTypeListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostProductTypes",
        "summary": "Create Product Type",
        "description": "Create a product type.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateProductType"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productType.create({\n  value: \"Clothes\"\n})\n.then(({ product_type }) => {\n  console.log(product_type)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/product-types' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"value\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Product Types"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductTypeResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createProductTypesWorkflow",
        "x-events": [
          {
            "name": "product-type.created",
            "payload": "```ts\n{\n  id, // The ID of the product type\n}\n```",
            "description": "Emitted when product types are created.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/product-types/{id}": {
      "get": {
        "operationId": "AdminGetProductTypesId",
        "summary": "Get a Product Type",
        "description": "Retrieve a product type by its ID. You can expand the product type's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product type's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productType.retrieve(\"ptyp_123\")\n.then(({ product_type }) => {\n  console.log(product_type)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/product-types/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Product Types"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductTypeResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostProductTypesId",
        "summary": "Update a Product Type",
        "description": "Update a product type's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product type's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateProductType"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productType.update(\"ptyp_123\", {\n  value: \"Clothes\"\n})\n.then(({ product_type }) => {\n  console.log(product_type)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/product-types/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Product Types"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductTypeResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateProductTypesWorkflow",
        "x-events": [
          {
            "name": "product-type.updated",
            "payload": "```ts\n{\n  id, // The ID of the product type\n}\n```",
            "description": "Emitted when product types are updated.",
            "deprecated": false
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteProductTypesId",
        "summary": "Delete a Product Type",
        "description": "Delete a product type. This doesn't delete products of this type.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product type's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productType.delete(\"ptyp_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/product-types/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Product Types"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductTypeDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteProductTypesWorkflow",
        "x-events": [
          {
            "name": "product-type.deleted",
            "payload": "```ts\n{\n  id, // The ID of the product type\n}\n```",
            "description": "Emitted when product types are deleted.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/product-variants": {
      "get": {
        "operationId": "AdminGetProductVariants",
        "summary": "List Product Variants",
        "description": "Retrieve a list of product variants. The product variants can be filtered by fields such as `id`. The product variants can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the product variant's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the product variant's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a variant's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by variant IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A variant's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "manage_inventory",
            "in": "query",
            "description": "Filter by whether a variant's `manage_inventory` is enabled.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "manage_inventory",
              "description": "Filter by whether a variant's `manage_inventory` is enabled."
            }
          },
          {
            "name": "allow_backorder",
            "in": "query",
            "description": "Filter by whether backorder is allowed for a variant.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "allow_backorder",
              "description": "Filter by whether backorder is allowed for a variant."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the product variant's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the product variant's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the product variant's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the product variant's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by the product variant's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the product variant's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "ean",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "ean",
                  "description": "The product variant's ean."
                },
                {
                  "type": "array",
                  "description": "The product variant's ean.",
                  "items": {
                    "type": "string",
                    "title": "ean",
                    "description": "The ean's details."
                  }
                }
              ]
            }
          },
          {
            "name": "upc",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "upc",
                  "description": "The product variant's upc."
                },
                {
                  "type": "array",
                  "description": "The product variant's upc.",
                  "items": {
                    "type": "string",
                    "title": "upc",
                    "description": "The upc's details."
                  }
                }
              ]
            }
          },
          {
            "name": "barcode",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "barcode",
                  "description": "The product variant's barcode."
                },
                {
                  "type": "array",
                  "description": "The product variant's barcode.",
                  "items": {
                    "type": "string",
                    "title": "barcode",
                    "description": "The barcode's details."
                  }
                }
              ]
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.productVariant.list()\n.then(({ variants, count, limit, offset }) => {\n  console.log(variants)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/product-variants' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Product Variants"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of product variants.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of product variants.",
                      "required": [
                        "variants"
                      ],
                      "properties": {
                        "variants": {
                          "type": "array",
                          "description": "The product variant's variants.",
                          "items": {
                            "$ref": "#/components/schemas/AdminProductVariant"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/products": {
      "get": {
        "operationId": "AdminGetProducts",
        "summary": "List Products",
        "description": "Retrieve a list of products. The products can be filtered by fields such as `id`. The products can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list."
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "price_list_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "price_list_id",
                  "description": "Filter by a price list's ID to retrieve its associated products."
                },
                {
                  "type": "array",
                  "description": "The product's price list id.",
                  "items": {
                    "type": "string",
                    "title": "price_list_id",
                    "description": "Filter by a price list IDs to retrieve their associated products."
                  }
                }
              ]
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter a product's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter a product's searchable properties."
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by a product status."
                },
                {
                  "type": "array",
                  "description": "Filter by product statuses.",
                  "items": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "proposed",
                      "published",
                      "rejected"
                    ]
                  }
                }
              ]
            }
          },
          {
            "name": "sales_channel_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "sales_channel_id",
                  "description": "Filter by a sales channel's ID to retrieve its associated products."
                },
                {
                  "type": "array",
                  "description": "Filter by sales channel IDs to retrieve their associated products.",
                  "items": {
                    "type": "string",
                    "title": "sales_channel_id",
                    "description": "A sales channel's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "title",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "title",
                  "description": "Filter by a title."
                },
                {
                  "type": "array",
                  "description": "Filter by titles",
                  "items": {
                    "type": "string",
                    "title": "title",
                    "description": "A product title."
                  }
                }
              ]
            }
          },
          {
            "name": "handle",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "handle",
                  "description": "Filter by a handle."
                },
                {
                  "type": "array",
                  "description": "Filter by handles.",
                  "items": {
                    "type": "string",
                    "title": "handle",
                    "description": "A product handle."
                  }
                }
              ]
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a product ID."
                },
                {
                  "type": "array",
                  "description": "Filter by product IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A product's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "is_giftcard",
            "in": "query",
            "description": "Filter by whether a product is a gift card.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "is_giftcard",
              "description": "Filter by whether a product is a gift card."
            }
          },
          {
            "name": "tags",
            "in": "query",
            "description": "Filter by associated tags to retrieve their products.",
            "required": false,
            "schema": {
              "description": "Filter by associated tags to retrieve their products.",
              "properties": {
                "value": {
                  "type": "array",
                  "description": "Filter by tag values.",
                  "items": {
                    "type": "string",
                    "title": "value",
                    "description": "A tag's value."
                  }
                }
              }
            }
          },
          {
            "name": "type_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "type_id",
                  "description": "Filter by a product type's ID to retrieve its associated products."
                },
                {
                  "type": "array",
                  "description": "Filter by product type IDs to retrieve their associated products.",
                  "items": {
                    "type": "string",
                    "title": "type_id",
                    "description": "A product type's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "category_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "category_id",
                  "description": "Filter by a product category's ID to retrieve its associated products."
                },
                {
                  "type": "array",
                  "description": "Filter by product category IDs to retrieve their associated products.",
                  "items": {
                    "type": "string",
                    "title": "category_id",
                    "description": "A product category's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a product's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a product's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a product's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a product's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a product's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a product's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "collection_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "collection_id",
                  "description": "Filter by a product collection ID."
                },
                {
                  "type": "array",
                  "description": "Filter by product collection IDs.",
                  "items": {
                    "type": "string",
                    "title": "collection_id",
                    "description": "A product collection's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "variants",
            "in": "query",
            "description": "Filter the retrieved products' variants.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter the retrieved products' variants.",
              "x-schemaName": "AdminProductVariantParams",
              "properties": {
                "id": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "id",
                      "description": "Filter by a variant's ID."
                    },
                    {
                      "type": "array",
                      "description": "Filter by variant IDs.",
                      "items": {
                        "type": "string",
                        "title": "id",
                        "description": "A variant's ID."
                      }
                    }
                  ]
                },
                "manage_inventory": {
                  "type": "boolean",
                  "title": "manage_inventory",
                  "description": "Filter by whether the Medusa application manages the variant's inventory."
                },
                "allow_backorder": {
                  "type": "boolean",
                  "title": "allow_backorder",
                  "description": "Filter by whether the variant can be ordered even if it's out of stock."
                },
                "created_at": {
                  "type": "object",
                  "description": "Filter by the variant's creation date.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by an exact match.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "type": "string",
                      "title": "$ne",
                      "description": "Filter by values not equal to this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "type": "string",
                        "title": "$in",
                        "description": "Filter by values in this array."
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "type": "string",
                        "title": "$nin",
                        "description": "Filter by values not in this array."
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching the conditions in this parameter."
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "type": "string",
                      "title": "$gt",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "title": "$gte",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "title": "$lt",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "title": "$lte",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                },
                "updated_at": {
                  "type": "object",
                  "description": "Filter by the variant's update date.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by an exact match.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "type": "string",
                      "title": "$ne",
                      "description": "Filter by values not equal to this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "type": "string",
                        "title": "$in",
                        "description": "Filter by values in this array."
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "type": "string",
                        "title": "$nin",
                        "description": "Filter by values not in this array."
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching the conditions in this parameter."
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "type": "string",
                      "title": "$gt",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "title": "$gte",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "title": "$lt",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "title": "$lte",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                },
                "deleted_at": {
                  "type": "object",
                  "description": "The variant's deleted at.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by an exact match.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "type": "string",
                      "title": "$ne",
                      "description": "Filter by values not equal to this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "type": "string",
                        "title": "$in",
                        "description": "Filter by values in this array."
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "type": "string",
                        "title": "$nin",
                        "description": "Filter by values not in this array."
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching the conditions in this parameter."
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "type": "string",
                      "title": "$gt",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "title": "$gte",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "title": "$lt",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "title": "$lte",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                },
                "limit": {
                  "type": "number",
                  "title": "limit",
                  "description": "Limit the number of items returned in the list."
                },
                "offset": {
                  "type": "number",
                  "title": "offset",
                  "description": "The number of items to skip when retrieving a list."
                },
                "order": {
                  "type": "string",
                  "title": "order",
                  "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
                },
                "fields": {
                  "type": "string",
                  "title": "fields",
                  "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields."
                },
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "ean": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "ean",
                      "description": "Filter by a variant's ean."
                    },
                    {
                      "type": "array",
                      "description": "Filter by variant eans.",
                      "items": {
                        "type": "string",
                        "title": "ean",
                        "description": "A variant's ean."
                      }
                    }
                  ]
                },
                "upc": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "upc",
                      "description": "Filter by a variant's upc."
                    },
                    {
                      "type": "array",
                      "description": "Filter by variant upcs.",
                      "items": {
                        "type": "string",
                        "title": "upc",
                        "description": "A variant's upc."
                      }
                    }
                  ]
                },
                "barcode": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "barcode",
                      "description": "Filter by a variant's barcode."
                    },
                    {
                      "type": "array",
                      "description": "Filter by variant barcodes.",
                      "items": {
                        "type": "string",
                        "title": "barcode",
                        "description": "A variant's barcode."
                      }
                    }
                  ]
                },
                "with_deleted": {
                  "type": "boolean",
                  "title": "with_deleted",
                  "description": "Whether to include deleted variants."
                }
              }
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted products.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted products."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.list()\n.then(({ products, count, limit, offset }) => {\n  console.log(products)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/products' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of products.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of products.",
                      "required": [
                        "products"
                      ],
                      "properties": {
                        "products": {
                          "type": "array",
                          "description": "The list of products.",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostProducts",
        "summary": "Create Product",
        "description": "Create a product.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AdminCreateProduct"
                  },
                  {
                    "type": "object",
                    "description": "The product's details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The product's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.create({\n  title: \"Shirt\",\n  options: [{\n    title: \"Default\",\n    values: [\"Default Option\"]\n  }],\n  variants: [\n    {\n      title: \"Default\",\n      options: {\n        Default: \"Default Option\"\n      },\n      prices: []\n    }\n  ],\n  shipping_profile_id: \"sp_123\"\n})\n.then(({ product }) => {\n  console.log(product)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"title\": \"{value}\",\n  \"options\": [\n    {\n      \"title\": \"Default option\",\n      \"values\": [\"Default option value\"]\n    }\n  ]\n}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createProductsWorkflow",
        "x-events": [
          {
            "name": "product-variant.created",
            "payload": "```ts\n{\n  id, // The ID of the product variant\n}\n```",
            "description": "Emitted when product variants are created.",
            "deprecated": false
          },
          {
            "name": "product.created",
            "payload": "```ts\n{\n  id, // The ID of the product\n}\n```",
            "description": "Emitted when products are created.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/products/batch": {
      "post": {
        "operationId": "AdminPostProductsBatch",
        "summary": "Manage Products",
        "description": "Manage products to create, update, or delete them.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchProductRequest"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.batch({\n  create: [\n    {\n      title: \"Shirt\",\n      options: [{\n        title: \"Default\",\n        values: [\"Default Option\"]\n      }],\n      variants: [\n        {\n          title: \"Default\",\n          options: {\n            Default: \"Default Option\"\n          },\n          prices: []\n        }\n      ]\n    }\n  ],\n  update: [{\n    id: \"prod_123\",\n    title: \"Pants\"\n  }],\n  delete: [\"prod_321\"]\n})\n.then(({ created, updated, deleted }) => {\n  console.log(created, updated, deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/batch' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n--data-raw '{\n  \"delete\": [\n    \"prod_123\"\n  ]\n}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminBatchProductResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchProductsWorkflow",
        "x-events": [
          {
            "name": "product-variant.created",
            "payload": "```ts\n{\n  id, // The ID of the product variant\n}\n```",
            "description": "Emitted when product variants are created.",
            "deprecated": false
          },
          {
            "name": "product.updated",
            "payload": "```ts\n{\n  id, // The ID of the product\n}\n```",
            "description": "Emitted when products are updated.",
            "deprecated": false
          },
          {
            "name": "product.created",
            "payload": "```ts\n{\n  id, // The ID of the product\n}\n```",
            "description": "Emitted when products are created.",
            "deprecated": false
          },
          {
            "name": "product.deleted",
            "payload": "```ts\n{\n  id, // The ID of the product\n}\n```",
            "description": "Emitted when products are deleted.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/products/export": {
      "post": {
        "operationId": "AdminPostProductsExport",
        "summary": "Export Products",
        "description": "Start a product export process to retrieve a CSV of exported products.\n\nYou'll receive in the response the transaction ID of the workflow generating the CSV file. To check the status of the execution, send a GET request to `/admin/workflows-executions/export-products/:transaction-id`.\nOnce the execution finishes successfully, a notification is created for the export. You can retrieve the notifications using the `/admin/notification` API route to retrieve the file's download URL.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "tags",
            "in": "query",
            "description": "Filter products by their tags.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter products by their tags.",
              "properties": {
                "id": {
                  "type": "array",
                  "description": "Filter by tag IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A tag ID."
                  }
                }
              }
            }
          },
          {
            "name": "variants",
            "in": "query",
            "description": "Filter the products' variants.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter the products' variants.",
              "properties": {
                "options": {
                  "type": "object",
                  "description": "Filter the variants by their options.",
                  "properties": {
                    "value": {
                      "type": "string",
                      "title": "value",
                      "description": "The option's value."
                    },
                    "option_id": {
                      "type": "string",
                      "title": "option_id",
                      "description": "The option's ID."
                    },
                    "option": {
                      "type": "object",
                      "description": "The option's details."
                    }
                  }
                }
              }
            }
          },
          {
            "name": "title",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "title",
                  "description": "Filter products by their title."
                },
                {
                  "type": "array",
                  "description": "Filter products by multiple titles.",
                  "items": {
                    "type": "string",
                    "title": "title",
                    "description": "A product title."
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter products by their status.",
                  "enum": [
                    "draft",
                    "proposed",
                    "published",
                    "rejected"
                  ]
                },
                {
                  "type": "array",
                  "description": "Filter products by multiple statuses.",
                  "items": {
                    "type": "string",
                    "description": "A product status.",
                    "enum": [
                      "draft",
                      "proposed",
                      "published",
                      "rejected"
                    ]
                  }
                }
              ]
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter products by their ID."
                },
                {
                  "type": "array",
                  "description": "Filter products by multiple IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A product ID."
                  }
                }
              ]
            }
          },
          {
            "name": "sales_channel_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "sales_channel_id",
                  "description": "Filter products by their sales channel ID."
                },
                {
                  "type": "array",
                  "description": "Filter products by multiple sales channel IDs.",
                  "items": {
                    "type": "string",
                    "title": "sales_channel_id",
                    "description": "A sales channel ID."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a product's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a product's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a product's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a product's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "handle",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "handle",
                  "description": "Filter products by their handle."
                },
                {
                  "type": "array",
                  "description": "Filter products by multiple handles.",
                  "items": {
                    "type": "string",
                    "title": "handle",
                    "description": "A product handle."
                  }
                }
              ]
            }
          },
          {
            "name": "is_giftcard",
            "in": "query",
            "description": "Filter products by whether they are gift cards.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "is_giftcard",
              "description": "Whether the product is a gift card."
            }
          },
          {
            "name": "collection_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "collection_id",
                  "description": "Filter products by their collection ID."
                },
                {
                  "type": "array",
                  "description": "Filter products by multiple collection IDs.",
                  "items": {
                    "type": "string",
                    "title": "collection_id",
                    "description": "A collection ID."
                  }
                }
              ]
            }
          },
          {
            "name": "type_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "type_id",
                  "description": "Filter products by their type ID."
                },
                {
                  "type": "array",
                  "description": "Filter products by multiple type IDs.",
                  "items": {
                    "type": "string",
                    "title": "type_id",
                    "description": "The type ID's details."
                  }
                }
              ]
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a product's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a product's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "The product's q.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "The product's q."
            }
          },
          {
            "name": "category_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "category_id",
                  "description": "Filter products by their category ID."
                },
                {
                  "type": "array",
                  "description": "Filter products by their category IDs.",
                  "items": {
                    "type": "string",
                    "title": "category_id",
                    "description": "A category ID."
                  }
                }
              ]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "The product's with deleted.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "The product's with deleted."
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "price_list_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "price_list_id",
                  "description": "Filter products by the ID of a price list they belong to."
                },
                {
                  "type": "array",
                  "description": "Filter products by the IDs of price lists they belong to.",
                  "items": {
                    "type": "string",
                    "title": "price_list_id",
                    "description": "A price list ID."
                  }
                }
              ]
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.export({})\n.then(({ transaction_id }) => {\n  console.log(transaction_id)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/export' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "202": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminExportProductResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "exportProductsWorkflow",
        "x-events": []
      }
    },
    "/admin/products/import": {
      "post": {
        "operationId": "AdminPostProductsImport",
        "summary": "Create Product Import",
        "description": "Create a new product import process. The products aren't imported until the import is confirmed with the `/admin/products/:transaction-id/import` API route.",
        "x-authenticated": true,
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminImportProductRequest"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.import({\n  file // uploaded File instance\n})\n.then(({ transaction_id }) => {\n  console.log(transaction_id)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/import' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "202": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminImportProductResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "importProductsWorkflow",
        "x-events": [
          {
            "name": "product-variant.created",
            "payload": "```ts\n{\n  id, // The ID of the product variant\n}\n```",
            "description": "Emitted when product variants are created.",
            "deprecated": false
          },
          {
            "name": "product.updated",
            "payload": "```ts\n{\n  id, // The ID of the product\n}\n```",
            "description": "Emitted when products are updated.",
            "deprecated": false
          },
          {
            "name": "product.created",
            "payload": "```ts\n{\n  id, // The ID of the product\n}\n```",
            "description": "Emitted when products are created.",
            "deprecated": false
          },
          {
            "name": "product.deleted",
            "payload": "```ts\n{\n  id, // The ID of the product\n}\n```",
            "description": "Emitted when products are deleted.",
            "deprecated": false
          }
        ],
        "deprecated": true,
        "x-deprecated_message": "use `POST /admin/products/imports` instead."
      }
    },
    "/admin/products/import/{transaction_id}/confirm": {
      "post": {
        "operationId": "AdminPostProductsImportTransaction_idConfirm",
        "summary": "Confirm Product Import",
        "description": "Confirm that a created product import should start importing the products into Medusa.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "transaction_id",
            "in": "path",
            "description": "The ID of the transaction returned when the product import was created.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.confirmImport(\"transaction_123\")\n.then(() => {\n  console.log(\"Import confirmed\")\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/import/{transaction_id}/confirm' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "202": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "deprecated": true,
        "x-deprecated_message": "use `POST /admin/products/imports/:transaction_id/confirm` instead."
      }
    },
    "/admin/products/imports": {
      "post": {
        "operationId": "AdminPostProductsImports",
        "summary": "Create Product Import",
        "description": "Create a new product import process. The products aren't imported until the import is confirmed with the `/admin/products/:transaction-id/imports` API route.",
        "x-authenticated": true,
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminImportProducts"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.createImport({\n  file // uploaded File instance\n})\n.then(({ transaction_id }) => {\n  console.log(transaction_id)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/imports' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"file_key\": \"{value}\",\n  \"originalname\": \"{value}\",\n  \"extension\": \"{value}\",\n  \"size\": 38,\n  \"mime_type\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "202": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminImportProductResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "importProductsAsChunksWorkflow",
        "x-events": [],
        "x-since": "2.8.5"
      }
    },
    "/admin/products/imports/{transaction_id}/confirm": {
      "post": {
        "operationId": "AdminPostProductsImportsTransaction_idConfirm",
        "summary": "Confirm Product Import",
        "description": "Confirm that a created product import should start importing the products into Medusa.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "transaction_id",
            "in": "path",
            "description": "The product's transaction id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.confirmImport(\"transaction_123\")\n.then(() => {\n  console.log(\"Import confirmed\")\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/imports/{transaction_id}/confirm' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "202": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.8.5"
      }
    },
    "/admin/products/{id}": {
      "get": {
        "operationId": "AdminGetProductsId",
        "summary": "Get a Product",
        "description": "Retrieve a product by its ID. You can expand the product's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.retrieve(\"prod_123\")\n.then(({ product }) => {\n  console.log(product)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/products/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostProductsId",
        "summary": "Update a Product",
        "description": "Update a product's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AdminUpdateProduct"
                  },
                  {
                    "type": "object",
                    "description": "The properties to update in a product.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The properties to update in a product."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.update(\"prod_123\", {\n  title: \"Shirt\",\n})\n.then(({ product }) => {\n  console.log(product)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateProductsWorkflow",
        "x-events": [
          {
            "name": "product.updated",
            "payload": "```ts\n{\n  id, // The ID of the product\n}\n```",
            "description": "Emitted when products are updated.",
            "deprecated": false
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteProductsId",
        "summary": "Delete a Product",
        "description": "Delete a product.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.delete(\"prod_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/products/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteProductsWorkflow",
        "x-events": [
          {
            "name": "product.deleted",
            "payload": "```ts\n{\n  id, // The ID of the product\n}\n```",
            "description": "Emitted when products are deleted.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/products/{id}/images/{image_id}/variants/batch": {
      "post": {
        "operationId": "AdminPostProductsIdImagesImage_idVariantsBatch",
        "summary": "Manage Variants of Product Image",
        "description": "Manage the association between product variants and a product image. You can add or remove associations between variants and the image.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "image_id",
            "in": "path",
            "description": "The product image's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchImageVariantRequest"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.batchImageVariants(\"prod_123\", \"img_123\", {\n  add: [\"variant_123\", \"variant_456\"],\n  remove: [\"variant_789\"]\n})\n.then(({ added, removed }) => {\n  console.log(added, removed)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/{id}/images/{image_id}/variants/batch' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"add\": [\"variant_123\", \"variant_456\"],\n  \"remove\": [\"variant_789\"]\n}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminBatchImageVariantResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchImageVariantsWorkflow",
        "x-events": [],
        "x-since": "2.11.2"
      }
    },
    "/admin/products/{id}/options": {
      "get": {
        "operationId": "AdminGetProductsIdOptions",
        "summary": "List a Product's Options",
        "x-sidebar-summary": "List Options",
        "description": "Retrieve a list of options of a product. The options can be filtered by fields like `id`. The options can also be paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the product option's searchable fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the product option's searchable fields."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by the product option's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by product option IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A product option's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "title",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "title",
                  "description": "Filter by a title."
                },
                {
                  "type": "array",
                  "description": "Filter by titles.",
                  "items": {
                    "type": "string",
                    "title": "title",
                    "description": "An option's title."
                  }
                }
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.listOptions(\"prod_123\")\n.then(({ product_options, count, limit, offset }) => {\n  console.log(product_options)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/products/{id}/options' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of product options.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of product options.",
                      "required": [
                        "product_options"
                      ],
                      "properties": {
                        "product_options": {
                          "type": "array",
                          "description": "The list of product options.",
                          "items": {
                            "$ref": "#/components/schemas/AdminProductOption"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostProductsIdOptions",
        "summary": "Create a Product Option",
        "x-sidebar-summary": "Create Option",
        "description": "Create an option for a product.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AdminCreateProductOption"
                  },
                  {
                    "type": "object",
                    "description": "The product option's details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The product option's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.createOption(\n  \"prod_123\",\n  {\n    title: \"Color\",\n    values: [\"Green\", \"Blue\"]\n  }\n)\n.then(({ product }) => {\n  console.log(product)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/{id}/options' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"title\": \"{value}\",\n  \"values\": [\n    \"{value}\"\n  ]\n}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createProductOptionsWorkflow",
        "x-events": [
          {
            "name": "product-option.created",
            "payload": "```ts\n{\n  id, // The ID of the product option\n}\n```",
            "description": "Emitted when product options are created.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/products/{id}/options/{option_id}": {
      "get": {
        "operationId": "AdminGetProductsIdOptionsOption_id",
        "summary": "Get a Product's Option",
        "x-sidebar-summary": "Get Option",
        "description": "Retrieve a product's option by its ID.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "option_id",
            "in": "path",
            "description": "The product's option id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.retrieveOption(\n  \"prod_123\",\n  \"prodopt_123\"\n)\n.then(({ product_option }) => {\n  console.log(product_option)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/products/{id}/options/{option_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductOptionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostProductsIdOptionsOption_id",
        "summary": "Update a Product's Option",
        "x-sidebar-summary": "Update Option",
        "description": "Update the details of a product option.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "option_id",
            "in": "path",
            "description": "The option's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AdminUpdateProductOption"
                  },
                  {
                    "type": "object",
                    "description": "The properties to update in the product option.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The properties to update in the product option."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.updateOption(\n  \"prod_123\",\n  \"prodopt_123\",\n  {\n    title: \"Color\"\n  }\n)\n.then(({ product }) => {\n  console.log(product)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/{id}/options/{option_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateProductOptionsWorkflow",
        "x-events": [
          {
            "name": "product-option.updated",
            "payload": "```ts\n{\n  id, // The ID of the product option\n}\n```",
            "description": "Emitted when product options are updated.",
            "deprecated": false
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteProductsIdOptionsOption_id",
        "summary": "Delete an Option from Product",
        "x-sidebar-summary": "Delete Option",
        "description": "Delete an option from a product.\n\nValues of this option in the product's variants are removed.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "option_id",
            "in": "path",
            "description": "The product option's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.deleteOption(\"prod_123\", \"prodopt_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/products/{id}/options/{option_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductOptionDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteProductOptionsWorkflow",
        "x-events": [
          {
            "name": "product-option.deleted",
            "payload": "```ts\n{\n  id, // The ID of the product option\n}\n```",
            "description": "Emitted when product options are deleted.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/products/{id}/variants": {
      "get": {
        "operationId": "AdminGetProductsIdVariants",
        "summary": "List Variants of a Product",
        "x-sidebar-summary": "List Variants",
        "description": "Retrieve a list of variants in a product. The variants can be filtered by fields like FILTER FIELDS. The variants can also be paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the variant's search attributes.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the variant's search attributes."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a variant's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by variant IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A variant ID."
                  }
                }
              ]
            }
          },
          {
            "name": "manage_inventory",
            "in": "query",
            "description": "Filter by whether a variant's `manage_inventory` property is enabled.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "manage_inventory",
              "description": "Filter by whether a variant's `manage_inventory` property is enabled."
            }
          },
          {
            "name": "allow_backorder",
            "in": "query",
            "description": "Filter by whether backorders are allowed for the variant.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "allow_backorder",
              "description": "Filter by whether backorders are allowed for the variant."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the product's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the product's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the product's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the product's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by the product's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the product's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "ean",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "ean",
                  "description": "The product's ean."
                },
                {
                  "type": "array",
                  "description": "The product's ean.",
                  "items": {
                    "type": "string",
                    "title": "ean",
                    "description": "The ean's details."
                  }
                }
              ]
            }
          },
          {
            "name": "upc",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "upc",
                  "description": "The product's upc."
                },
                {
                  "type": "array",
                  "description": "The product's upc.",
                  "items": {
                    "type": "string",
                    "title": "upc",
                    "description": "The upc's details."
                  }
                }
              ]
            }
          },
          {
            "name": "barcode",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "barcode",
                  "description": "The product's barcode."
                },
                {
                  "type": "array",
                  "description": "The product's barcode.",
                  "items": {
                    "type": "string",
                    "title": "barcode",
                    "description": "The barcode's details."
                  }
                }
              ]
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.listVariants(\"prod_123\")\n.then(({ variants, count, limit, offset }) => {\n  console.log(variants)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/products/{id}/variants' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of product variants.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of returned items."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before the returned item."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of product variants.",
                      "required": [
                        "variants"
                      ],
                      "properties": {
                        "variants": {
                          "type": "array",
                          "description": "The list of product variants.",
                          "items": {
                            "$ref": "#/components/schemas/AdminProductVariant"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostProductsIdVariants",
        "summary": "Create a Product Variant",
        "x-sidebar-summary": "Create Variant",
        "description": "Create a variant for a product.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AdminCreateProductVariant"
                  },
                  {
                    "type": "object",
                    "description": "The product variant's details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The product variant's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.createVariant(\"prod_123\", {\n  title: \"Blue Shirt\",\n  options: {\n    Color: \"Blue\"\n  },\n  prices: [\n    {\n      amount: 10,\n      currency_code: \"usd\"\n    }\n  ]\n})\n.then(({ product }) => {\n  console.log(product)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/{id}/variants' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"title\": \"{value}\",\n  \"prices\": []\n}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createProductVariantsWorkflow",
        "x-events": [
          {
            "name": "product-variant.created",
            "payload": "```ts\n{\n  id, // The ID of the product variant\n}\n```",
            "description": "Emitted when product variants are created.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/products/{id}/variants/batch": {
      "post": {
        "operationId": "AdminPostProductsIdVariantsBatch",
        "summary": "Manage Variants in a Product",
        "x-sidebary-summary": "Manage Variants",
        "description": "Manage variants in a product to create, update, or delete them.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchProductVariantRequest"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.batchVariants(\"prod_123\", {\n  create: [\n    {\n      title: \"Blue Shirt\",\n      options: {\n        Color: \"Blue\"\n      },\n      prices: []\n    }\n  ],\n  update: [\n    {\n      id: \"variant_123\",\n      title: \"Pants\"\n    }\n  ],\n  delete: [\"variant_123\"]\n})\n.then(({ created, updated, deleted }) => {\n  console.log(created, updated, deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/{id}/variants/batch' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminBatchProductVariantResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchProductVariantsWorkflow",
        "x-events": [
          {
            "name": "product-variant.updated",
            "payload": "```ts\n{\n  id, // The ID of the product variant\n}\n```",
            "description": "Emitted when product variants are updated.",
            "deprecated": false
          },
          {
            "name": "product-variant.created",
            "payload": "```ts\n{\n  id, // The ID of the product variant\n}\n```",
            "description": "Emitted when product variants are created.",
            "deprecated": false
          },
          {
            "name": "product-variant.deleted",
            "payload": "```ts\n{\n  id, // The ID of the product variant\n}\n```",
            "description": "Emitted when product variants are deleted.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/products/{id}/variants/inventory-items/batch": {
      "post": {
        "operationId": "AdminPostProductsIdVariantsInventoryItemsBatch",
        "summary": "Manage Variants Inventory in a Product",
        "x-sidebar-summary": "Manage Variants Inventory",
        "description": "Manage a product's variant's inventoris to associate them with inventory items, update their inventory items, or delete their association with inventory items.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "The product variant inventories to manage.",
                "properties": {
                  "create": {
                    "type": "array",
                    "description": "The associations to create between product variants and inventory items.",
                    "items": {
                      "type": "object",
                      "description": "The associations to create between a product variant and an inventory item.",
                      "required": [
                        "variant_id",
                        "required_quantity",
                        "inventory_item_id"
                      ],
                      "properties": {
                        "required_quantity": {
                          "type": "number",
                          "title": "required_quantity",
                          "description": "The number of units a single quantity is equivalent to. For example, if a customer orders one quantity of the variant, Medusa checks the availability of the quantity multiplied by the value set for `required_quantity`. When the customer orders the quantity, Medusa reserves the ordered quantity multiplied by the value set for `required_quantity`."
                        },
                        "inventory_item_id": {
                          "type": "string",
                          "title": "inventory_item_id",
                          "description": "The ID of the inventory item to associate the variant with."
                        },
                        "variant_id": {
                          "type": "string",
                          "title": "variant_id",
                          "description": "The ID of the variant."
                        }
                      }
                    }
                  },
                  "update": {
                    "type": "array",
                    "description": "The product variants to update their association with inventory items.",
                    "items": {
                      "type": "object",
                      "description": "Update a product variant's association with an inventory item.",
                      "required": [
                        "variant_id",
                        "required_quantity",
                        "inventory_item_id"
                      ],
                      "properties": {
                        "required_quantity": {
                          "type": "number",
                          "title": "required_quantity",
                          "description": "The number of units a single quantity is equivalent to. For example, if a customer orders one quantity of the variant, Medusa checks the availability of the quantity multiplied by the value set for `required_quantity`. When the customer orders the quantity, Medusa reserves the ordered quantity multiplied by the value set for `required_quantity`."
                        },
                        "inventory_item_id": {
                          "type": "string",
                          "title": "inventory_item_id",
                          "description": "The ID of the inventory item the variant is associated with."
                        },
                        "variant_id": {
                          "type": "string",
                          "title": "variant_id",
                          "description": "The ID of the variant."
                        }
                      }
                    }
                  },
                  "delete": {
                    "type": "array",
                    "description": "The product variants to delete their association with inventory items.",
                    "items": {
                      "type": "object",
                      "description": "Delete a product variant's association with an inventory item.",
                      "required": [
                        "variant_id",
                        "inventory_item_id"
                      ],
                      "properties": {
                        "inventory_item_id": {
                          "type": "string",
                          "title": "inventory_item_id",
                          "description": "The ID of the inventory item associated with the variant."
                        },
                        "variant_id": {
                          "type": "string",
                          "title": "variant_id",
                          "description": "The ID of the variant."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.batchVariantInventoryItems(\n  \"prod_123\",\n  {\n    create: [\n      {\n        inventory_item_id: \"iitem_123\",\n        variant_id: \"variant_123\",\n        required_quantity: 10\n      }\n    ],\n    update: [\n      {\n        inventory_item_id: \"iitem_1234\",\n        variant_id: \"variant_1234\",\n        required_quantity: 20\n      }\n    ],\n    delete: [\n      {\n        inventory_item_id: \"iitem_321\",\n        variant_id: \"variant_321\"\n      }\n    ]\n  }\n)\n.then(({ created, updated, deleted }) => {\n  console.log(created, updated, deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/{id}/variants/inventory-items/batch' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductVariantInventoryBatchResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchLinksWorkflow",
        "x-events": []
      }
    },
    "/admin/products/{id}/variants/{variant_id}": {
      "get": {
        "operationId": "AdminGetProductsIdVariantsVariant_id",
        "summary": "Get Variant of a Product",
        "x-sidebar-summary": "Get Variant",
        "description": "Retrieve a product's variant by its ID.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "variant_id",
            "in": "path",
            "description": "The variant's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.retrieveVariant(\n  \"prod_123\",\n  \"variant_123\"\n)\n.then(({ variant }) => {\n  console.log(variant)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/products/{id}/variants/{variant_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductVariantResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostProductsIdVariantsVariant_id",
        "summary": "Update a Product Variant",
        "x-sidebar-summary": "Update Variant",
        "description": "Update a variant's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "variant_id",
            "in": "path",
            "description": "The product's variant id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AdminUpdateProductVariant"
                  },
                  {
                    "type": "object",
                    "description": "The properties to update in the variant.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The properties to update in the variant."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.updateVariant(\n  \"prod_123\",\n  \"variant_123\",\n    {\n    title: \"Blue Shirt\",\n  }\n)\n.then(({ product }) => {\n  console.log(product)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/{id}/variants/{variant_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateProductVariantsWorkflow",
        "x-events": [
          {
            "name": "product-variant.updated",
            "payload": "```ts\n{\n  id, // The ID of the product variant\n}\n```",
            "description": "Emitted when product variants are updated.",
            "deprecated": false
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteProductsIdVariantsVariant_id",
        "summary": "Delete Product Variant",
        "x-sidebar-summary": "Delete Variant",
        "description": "Delete a variant of a product.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "variant_id",
            "in": "path",
            "description": "The product variant's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.deleteVariant(\"prod_123\", \"variant_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/products/{id}/variants/{variant_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductVariantDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteProductVariantsWorkflow",
        "x-events": [
          {
            "name": "product-variant.deleted",
            "payload": "```ts\n{\n  id, // The ID of the product variant\n}\n```",
            "description": "Emitted when product variants are deleted.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/products/{id}/variants/{variant_id}/images/batch": {
      "post": {
        "operationId": "AdminPostProductsIdVariantsVariant_idImagesBatch",
        "summary": "Manage Images of Product Variant",
        "description": "Manage the association between product images and a product variant. You can add or remove associations between images and the variant.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "variant_id",
            "in": "path",
            "description": "The product variant's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchVariantImagesRequest"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.product.batchVariantImages(\"prod_123\", \"variant_123\", {\n  add: [\"img_123\", \"img_456\"],\n  remove: [\"img_789\"]\n})\n.then(({ added, removed }) => {\n  console.log(added, removed)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/{id}/variants/{variant_id}/images/batch' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"add\": [\"img_123\", \"img_456\"],\n  \"remove\": [\"img_789\"]\n}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminBatchVariantImagesResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchVariantImagesWorkflow",
        "x-events": [],
        "x-since": "2.11.2"
      }
    },
    "/admin/products/{id}/variants/{variant_id}/inventory-items": {
      "post": {
        "operationId": "AdminPostProductsIdVariantsVariant_idInventoryItems",
        "summary": "Associate Variant with Inventory Item",
        "x-sidebar-summary": "Associate Variant's Inventory",
        "description": "Associate with a product variant an inventory item that manages its inventory details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "variant_id",
            "in": "path",
            "description": "The variant's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateVariantInventoryItem"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/{id}/variants/{variant_id}/inventory-items' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"required_quantity\": 7390879820021760,\n  \"inventory_item_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductVariantResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createLinksWorkflow",
        "x-events": []
      }
    },
    "/admin/products/{id}/variants/{variant_id}/inventory-items/{inventory_item_id}": {
      "post": {
        "operationId": "AdminPostProductsIdVariantsVariant_idInventoryItemsInventory_item_id",
        "summary": "Update Product Variant's Inventory Details",
        "x-sidebary-summary": "Update Variant Inventory",
        "description": "Update the inventory item that manages the inventory details of a product variant.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "variant_id",
            "in": "path",
            "description": "The variant's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "inventory_item_id",
            "in": "path",
            "description": "The inventory item's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateVariantInventoryItem"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/products/{id}/variants/{variant_id}/inventory-items/{inventory_item_id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"required_quantity\": 5324804697620480\n}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductVariantResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateLinksWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteProductsIdVariantsVariant_idInventoryItemsInventory_item_id",
        "summary": "Remove Inventory Item Association with Product Variant",
        "x-sidebar-summary": "Remove Inventory Item",
        "description": "Remove the association between an inventory item and its product variant.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "variant_id",
            "in": "path",
            "description": "The products variant's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "inventory_item_id",
            "in": "path",
            "description": "The inventory item's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/products/{id}/variants/{variant_id}/inventory-items/{inventory_item_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminProductVariantInventoryLinkDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "dismissLinksWorkflow",
        "x-events": []
      }
    },
    "/admin/promotions": {
      "get": {
        "operationId": "AdminGetPromotions",
        "summary": "List Promotions",
        "description": "Retrieve a list of promotions. The promotions can be filtered by fields such as `id`. The promotions can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the promotion's searchable attributes.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the promotion's searchable attributes."
            }
          },
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "code",
                  "description": "Filter by a promotion code."
                },
                {
                  "type": "array",
                  "description": "Filter by promotion codes.",
                  "items": {
                    "type": "string",
                    "title": "code",
                    "description": "A promotion code."
                  }
                }
              ]
            }
          },
          {
            "name": "campaign_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "campaign_id",
                  "description": "Filter by a campaign's ID to retrieve its associated promotions."
                },
                {
                  "type": "array",
                  "description": "Filter by campaign IDs to retrieve their associated promotions.",
                  "items": {
                    "type": "string",
                    "title": "campaign_id",
                    "description": "A campaign's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "application_method",
            "in": "query",
            "description": "Apply filters on the application methods to retrieve the promotions of the matching application methods.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Apply filters on the application methods to retrieve the promotions of the matching application methods.",
              "properties": {
                "currency_code": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "currency_code",
                      "description": "Filter by a currency code."
                    },
                    {
                      "type": "array",
                      "description": "Filter by currency codes.",
                      "items": {
                        "type": "string",
                        "title": "currency_code",
                        "description": "A currency code."
                      }
                    }
                  ]
                }
              }
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a promotion's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a promotion's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a promotion's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a promotion's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a promotion's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a promotion's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "currency_code",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "currency_code",
                  "description": "Filter by a currency code. The promotions are filtered based on their application method's currency code."
                },
                {
                  "type": "array",
                  "description": "Filter by currency codes. The promotions are filtered based on their application method's currency code.",
                  "items": {
                    "type": "string",
                    "title": "currency_code",
                    "description": "A currency code."
                  }
                }
              ]
            }
          },
          {
            "name": "application_method_type",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "application_method_type",
                  "description": "Filter by an application method type. The promotions are filtered based on their application method's type."
                },
                {
                  "type": "array",
                  "description": "Filter by application method types. The promotions are filtered based on their application method's type.",
                  "items": {
                    "type": "string",
                    "title": "application_method_type",
                    "description": "An application method type."
                  }
                }
              ]
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "description": "Filter by a promotion's ID.",
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a promotion's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by promotion IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "The promotion's ID."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by a promotion's ID.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by an exact match.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "type": "string",
                      "title": "$ne",
                      "description": "Filter by values not equal to this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "type": "string",
                        "title": "$in",
                        "description": "Filter by values in this array."
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "type": "string",
                        "title": "$nin",
                        "description": "Filter by values not in this array."
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching the conditions in this parameter."
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "type": "string",
                      "title": "$gt",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "title": "$gte",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "title": "$lt",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "title": "$lte",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.promotion.list()\n.then(({ promotions, count, limit, offset }) => {\n  console.log(promotions)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/promotions' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Promotions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of promotions.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of promotions.",
                      "required": [
                        "promotions"
                      ],
                      "properties": {
                        "promotions": {
                          "type": "array",
                          "description": "The list of promotions.",
                          "items": {
                            "$ref": "#/components/schemas/AdminPromotion"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostPromotions",
        "summary": "Create Promotion",
        "description": "Create a promotion.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The promotion's details.",
                    "required": [
                      "code",
                      "type",
                      "campaign_id",
                      "application_method"
                    ],
                    "properties": {
                      "code": {
                        "type": "string",
                        "title": "code",
                        "description": "The promotion's code."
                      },
                      "is_automatic": {
                        "type": "boolean",
                        "title": "is_automatic",
                        "description": "Whether the promotion is applied automatically."
                      },
                      "type": {
                        "type": "string",
                        "description": "The promotion's type.",
                        "externalDocs": {
                          "url": "https://docs.medusajs.com/resources/commerce-modules/promotion/concepts#what-is-a-promotion"
                        },
                        "enum": [
                          "standard",
                          "buyget"
                        ]
                      },
                      "campaign_id": {
                        "type": "string",
                        "title": "campaign_id",
                        "description": "The ID of the campaign that the promotion belongs to."
                      },
                      "campaign": {
                        "type": "object",
                        "description": "The details of a campaign to create and add the promotion to it.",
                        "required": [
                          "name",
                          "campaign_identifier",
                          "description",
                          "budget",
                          "starts_at",
                          "ends_at"
                        ],
                        "properties": {
                          "name": {
                            "type": "string",
                            "title": "name",
                            "description": "The campaign's name."
                          },
                          "campaign_identifier": {
                            "type": "string",
                            "title": "campaign_identifier",
                            "description": "The campaign's identifier."
                          },
                          "description": {
                            "type": "string",
                            "title": "description",
                            "description": "The campaign's description."
                          },
                          "budget": {
                            "type": "object",
                            "description": "The campaign's budget which, when crossed, ends the campaign.",
                            "required": [
                              "type",
                              "limit",
                              "currency_code"
                            ],
                            "properties": {
                              "type": {
                                "type": "string",
                                "description": "The budget's type. This can't be edited later. Use `spend` to set a limit on the total amount discounted by the campaign's promotions. Use `usage` to set a limit on the total number of times the campaign's promotions can be used.\n",
                                "enum": [
                                  "spend",
                                  "usage"
                                ]
                              },
                              "limit": {
                                "type": "number",
                                "title": "limit",
                                "description": "The budget's limit."
                              },
                              "currency_code": {
                                "type": "string",
                                "title": "currency_code",
                                "description": "The campaign budget's currency code. This can't be edited later."
                              }
                            }
                          },
                          "starts_at": {
                            "type": "string",
                            "title": "starts_at",
                            "description": "The campaign's start date.",
                            "format": "date-time"
                          },
                          "ends_at": {
                            "type": "string",
                            "title": "ends_at",
                            "description": "The campaign's end date.",
                            "format": "date-time"
                          }
                        }
                      },
                      "application_method": {
                        "type": "object",
                        "description": "The promotion's application method.",
                        "required": [
                          "description",
                          "value",
                          "currency_code",
                          "max_quantity",
                          "type",
                          "target_type",
                          "apply_to_quantity",
                          "buy_rules_min_quantity"
                        ],
                        "properties": {
                          "description": {
                            "type": "string",
                            "title": "description",
                            "description": "The application method's description."
                          },
                          "value": {
                            "type": "number",
                            "title": "value",
                            "description": "The discounted amount applied by the associated promotion based on the `type`."
                          },
                          "currency_code": {
                            "type": "string",
                            "title": "currency_code",
                            "description": "The application method's currency code."
                          },
                          "max_quantity": {
                            "type": "number",
                            "title": "max_quantity",
                            "description": "The max quantity allowed in the cart for the associated promotion to be applied."
                          },
                          "type": {
                            "type": "string",
                            "description": "The type of the application method indicating how the associated promotion is applied.",
                            "enum": [
                              "fixed",
                              "percentage"
                            ]
                          },
                          "target_type": {
                            "type": "string",
                            "description": "The target type of the application method indicating whether the associated promotion is applied to the cart's items, shipping methods, or the whole order.",
                            "enum": [
                              "order",
                              "shipping_methods",
                              "items"
                            ]
                          },
                          "allocation": {
                            "type": "string",
                            "description": "The allocation value that indicates whether the associated promotion is applied on each item in a cart or split between the items in the cart.",
                            "enum": [
                              "each",
                              "across"
                            ]
                          },
                          "target_rules": {
                            "type": "array",
                            "description": "The application method's target rules.",
                            "items": {
                              "type": "object",
                              "description": "A target rule's details.",
                              "required": [
                                "operator",
                                "description",
                                "attribute",
                                "values"
                              ],
                              "properties": {
                                "operator": {
                                  "type": "string",
                                  "description": "The operator used to check whether the target rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value.",
                                  "enum": [
                                    "gte",
                                    "lte",
                                    "gt",
                                    "lt",
                                    "eq",
                                    "ne",
                                    "in"
                                  ]
                                },
                                "description": {
                                  "type": "string",
                                  "title": "description",
                                  "description": "The target rule's description."
                                },
                                "attribute": {
                                  "type": "string",
                                  "title": "attribute",
                                  "description": "The attribute to compare against when checking whether a promotion can be applied on a cart.",
                                  "example": "items.product.id"
                                },
                                "values": {
                                  "oneOf": [
                                    {
                                      "type": "string",
                                      "title": "values",
                                      "description": "The attribute's value.",
                                      "example": "prod_123"
                                    },
                                    {
                                      "type": "array",
                                      "description": "The allowed attribute values.",
                                      "items": {
                                        "type": "string",
                                        "title": "values",
                                        "description": "An attribute value.",
                                        "example": "prod_123"
                                      }
                                    }
                                  ]
                                }
                              }
                            }
                          },
                          "buy_rules": {
                            "type": "array",
                            "description": "The application method's buy rules.",
                            "items": {
                              "type": "object",
                              "description": "A buy rule's details.",
                              "required": [
                                "operator",
                                "description",
                                "attribute",
                                "values"
                              ],
                              "properties": {
                                "operator": {
                                  "type": "string",
                                  "description": "The operator used to check whether the buy rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value.",
                                  "enum": [
                                    "gte",
                                    "lte",
                                    "gt",
                                    "lt",
                                    "eq",
                                    "ne",
                                    "in"
                                  ]
                                },
                                "description": {
                                  "type": "string",
                                  "title": "description",
                                  "description": "The buy rule's description."
                                },
                                "attribute": {
                                  "type": "string",
                                  "title": "attribute",
                                  "description": "The attribute to compare against when checking whether a promotion can be applied on a cart.",
                                  "example": "items.product.id"
                                },
                                "values": {
                                  "oneOf": [
                                    {
                                      "type": "string",
                                      "title": "values",
                                      "description": "The attribute's value.",
                                      "example": "prod_123"
                                    },
                                    {
                                      "type": "array",
                                      "description": "The allowed attribute values.",
                                      "items": {
                                        "type": "string",
                                        "title": "values",
                                        "description": "An attribute value.",
                                        "example": "prod_123"
                                      }
                                    }
                                  ]
                                }
                              }
                            }
                          },
                          "apply_to_quantity": {
                            "type": "number",
                            "title": "apply_to_quantity",
                            "description": "The quantity that results from matching the `buyget` promotion's condition. For example, if the promotion is a \"Buy 2 shirts get 1 free\", the value f this attribute is `1`."
                          },
                          "buy_rules_min_quantity": {
                            "type": "number",
                            "title": "buy_rules_min_quantity",
                            "description": "The minimum quantity required for a `buyget` promotion to be applied. For example, if the promotion is a \"Buy 2 shirts get 1 free\", the value of this attribute is `2`."
                          }
                        }
                      },
                      "rules": {
                        "type": "array",
                        "description": "The promotion's rules.",
                        "items": {
                          "type": "object",
                          "description": "A rule's details.",
                          "required": [
                            "operator",
                            "description",
                            "attribute",
                            "values"
                          ],
                          "properties": {
                            "operator": {
                              "type": "string",
                              "description": "The operator used to check whether the buy rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value.",
                              "enum": [
                                "gte",
                                "lte",
                                "gt",
                                "lt",
                                "eq",
                                "ne",
                                "in"
                              ]
                            },
                            "description": {
                              "type": "string",
                              "title": "description",
                              "description": "The rule's description."
                            },
                            "attribute": {
                              "type": "string",
                              "title": "attribute",
                              "description": "The attribute to compare against when checking whether a promotion can be applied on a cart.",
                              "example": "items.product.id"
                            },
                            "values": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "values",
                                  "description": "The attribute's value.",
                                  "example": "prod_123"
                                },
                                {
                                  "type": "array",
                                  "description": "The allowed attribute values.",
                                  "items": {
                                    "type": "string",
                                    "title": "values",
                                    "description": "An attribute value.",
                                    "example": "prod_123"
                                  }
                                }
                              ]
                            }
                          }
                        }
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The promotion's details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The promotion's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.promotion.create({\n  name: \"My Promotion\",\n  description: \"This is a test promotion\",\n  code: \"PROMO123\",\n  starts_at: \"2021-01-01\",\n  ends_at: \"2021-01-01\",\n})\n.then(({ promotion }) => {\n  console.log(promotion)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/promotions' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"code\": \"{value}\",\n  \"type\": \"{value}\",\n  \"campaign_id\": \"{value}\",\n  \"application_method\": {\n    \"description\": \"{value}\",\n    \"value\": 1841223411171328,\n    \"currency_code\": \"{value}\",\n    \"max_quantity\": 2960098049654784,\n    \"type\": \"{value}\",\n    \"target_type\": \"{value}\",\n    \"allocation\": \"{value}\",\n    \"target_rules\": [],\n    \"buy_rules\": [],\n    \"apply_to_quantity\": 708643867590656,\n    \"buy_rules_min_quantity\": 3167972149428224\n  }\n}'"
          }
        ],
        "tags": [
          "Admin Promotions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPromotionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createPromotionsWorkflow",
        "x-events": []
      }
    },
    "/admin/promotions/rule-attribute-options/{rule_type}": {
      "get": {
        "operationId": "AdminGetPromotionsRuleAttributeOptionsRule_type",
        "summary": "List Rule Attribute Options of a Rule Type",
        "x-sidebar-summary": "List Potential Rule Attributes",
        "description": "Retrieve a list of potential rule attributes for the promotion and application method types specified in the query parameters.\nOnly the attributes of the rule type specified in the path parameter are retrieved:\n- If `rule_type` is `rules`, the attributes of the promotion's type are retrieved.\n\n- If `rule_type` is `target-rules`, the target rules' attributes of the application method's type are retrieved.\n\n- If `rule_type` is `buy-rules`, the buy rules' attributes of the application method's type are retrieved.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "rule_type",
            "in": "path",
            "description": "The rule type.",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "rules",
                "target-rules",
                "buy-rules"
              ]
            }
          },
          {
            "name": "promotion_type",
            "in": "query",
            "description": "The promotion type to retrieve rules for.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The promotion type to retrieve rules for.",
              "enum": [
                "standard",
                "buyget"
              ]
            }
          },
          {
            "name": "application_method_type",
            "in": "query",
            "description": "The application method type to retrieve rules for.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The application method type to retrieve rules for.",
              "enum": [
                "fixed",
                "percentage"
              ]
            }
          },
          {
            "name": "application_method_target_type",
            "in": "query",
            "description": "The application method target type to retrieve rules for.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The application method target type to retrieve rules for.",
              "enum": [
                "items",
                "shipping_methods",
                "order"
              ]
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.promotion.listRuleAttributes(\"rules\", \"standard\")\n.then(({ attributes }) => {\n  console.log(attributes)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/promotions/rule-attribute-options/{rule_type}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Promotions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The list of attributes.",
                  "required": [
                    "attributes"
                  ],
                  "properties": {
                    "attributes": {
                      "type": "array",
                      "description": "The list of attributes.",
                      "items": {
                        "$ref": "#/components/schemas/AdminRuleAttributeOption"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/promotions/rule-value-options/{rule_type}/{rule_attribute_id}": {
      "get": {
        "operationId": "AdminGetPromotionsRuleValueOptionsRule_typeRule_attribute_id",
        "summary": "List Rule Values Given a Rule Attribute",
        "x-sidebar-summary": "List Rule Values",
        "description": "Retrieve all potential values for promotion rules and target and buy rules based on the specified rule attribute and type.\nFor example, if you provide the ID of the `currency_code` rule attribute, and set `rule_type` to `rules`, a list of currencies are retrieved in label-value pairs.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "rule_type",
            "in": "path",
            "description": "The rule type.",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "rules",
                "target-rules",
                "buy-rules"
              ]
            }
          },
          {
            "name": "rule_attribute_id",
            "in": "path",
            "description": "The rule attribute's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "application_method_target_type",
            "in": "query",
            "description": "The application method target type to retrieve rules for.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The application method target type to retrieve rules for."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Apply a search query on the rule values' searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Apply a search query on the rule values' searchable properties."
            }
          },
          {
            "name": "value",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "value",
                  "description": "Filter by a specific rule value."
                },
                {
                  "type": "array",
                  "description": "Filter by multiple rule values.",
                  "items": {
                    "type": "string",
                    "title": "value",
                    "description": "A rule value."
                  }
                }
              ]
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.promotion.listRuleValues(\"rules\", \"attr_123\")\n.then(({ values }) => {\n  console.log(values)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/promotions/rule-value-options/{rule_type}/{rule_attribute_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Promotions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The pagination fields.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The list of rule values.",
                      "required": [
                        "values"
                      ],
                      "properties": {
                        "values": {
                          "type": "array",
                          "description": "The list of rule values.",
                          "items": {
                            "$ref": "#/components/schemas/AdminRuleValueOption"
                          }
                        }
                      }
                    }
                  ],
                  "description": "The paginated list of rule values."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/promotions/{id}": {
      "get": {
        "operationId": "AdminGetPromotionsId",
        "summary": "Get a Promotion",
        "description": "Retrieve a promotion by its ID. You can expand the promotion's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The promotion's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.promotion.retrieve(\"promo_123\")\n.then(({ promotion }) => {\n  console.log(promotion)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/promotions/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Promotions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPromotionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostPromotionsId",
        "summary": "Update a Promotion",
        "description": "Update a promotion's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The promotion's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The properties to update in a promotion.",
                    "required": [
                      "campaign_id"
                    ],
                    "properties": {
                      "code": {
                        "type": "string",
                        "title": "code",
                        "description": "The promotion's code."
                      },
                      "is_automatic": {
                        "type": "boolean",
                        "title": "is_automatic",
                        "description": "Whether the promotion is applied automatically."
                      },
                      "type": {
                        "type": "string",
                        "description": "The promotion's type.",
                        "externalDocs": {
                          "url": "https://docs.medusajs.com/resources/commerce-modules/promotion/concepts#what-is-a-promotion"
                        },
                        "enum": [
                          "standard",
                          "buyget"
                        ]
                      },
                      "campaign_id": {
                        "type": "string",
                        "title": "campaign_id",
                        "description": "The ID of the campaign that the promotion belongs to."
                      },
                      "application_method": {
                        "type": "object",
                        "description": "The properties to update in the application method.",
                        "required": [
                          "id",
                          "description",
                          "max_quantity",
                          "currency_code",
                          "apply_to_quantity",
                          "buy_rules_min_quantity"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "title": "id",
                            "description": "The application method's ID."
                          },
                          "description": {
                            "type": "string",
                            "title": "description",
                            "description": "The application method's description."
                          },
                          "value": {
                            "type": "number",
                            "title": "value",
                            "description": "The discounted amount applied by the associated promotion based on the `type`."
                          },
                          "max_quantity": {
                            "type": "number",
                            "title": "max_quantity",
                            "description": "The max quantity allowed in the cart for the associated promotion to be applied."
                          },
                          "currency_code": {
                            "type": "string",
                            "title": "currency_code",
                            "description": "The application method's currency code."
                          },
                          "type": {
                            "type": "string",
                            "description": "The type of the application method indicating how the associated promotion is applied.",
                            "enum": [
                              "fixed",
                              "percentage"
                            ]
                          },
                          "target_type": {
                            "type": "string",
                            "description": "The target type of the application method indicating whether the associated promotion is applied to the cart's items, shipping methods, or the whole order.",
                            "enum": [
                              "order",
                              "shipping_methods",
                              "items"
                            ]
                          },
                          "allocation": {
                            "type": "string",
                            "description": "The allocation value that indicates whether the associated promotion is applied on each item in a cart or split between the items in the cart.",
                            "enum": [
                              "each",
                              "across"
                            ]
                          },
                          "apply_to_quantity": {
                            "type": "number",
                            "title": "apply_to_quantity",
                            "description": "The quantity that results from matching the `buyget` promotion's condition. For example, if the promotion is a \"Buy 2 shirts get 1 free\", the value f this attribute is `1`."
                          },
                          "buy_rules_min_quantity": {
                            "type": "number",
                            "title": "buy_rules_min_quantity",
                            "description": "The minimum quantity required for a `buyget` promotion to be applied. For example, if the promotion is a \"Buy 2 shirts get 1 free\", the value of this attribute is `2`."
                          }
                        }
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The properties to update in a promotion.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The properties to update in a promotion."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.promotion.update(\"promo_123\", {\n  code: \"PROMO123\",\n})\n.then(({ promotion }) => {\n  console.log(promotion)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/promotions/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"campaign_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Promotions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPromotionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updatePromotionsWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeletePromotionsId",
        "summary": "Delete a Promotion",
        "description": "Delete a promotion.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The promotion's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.promotion.delete(\"promo_123\")\n.then(({ promotion }) => {\n  console.log(promotion)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/promotions/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Promotions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The deletion's details.",
                  "required": [
                    "id",
                    "object",
                    "deleted"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The promotion's ID."
                    },
                    "object": {
                      "type": "string",
                      "title": "object",
                      "description": "The name of the deleted object.",
                      "default": "promotion"
                    },
                    "deleted": {
                      "type": "boolean",
                      "title": "deleted",
                      "description": "Whether the promotion was deleted."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deletePromotionsWorkflow",
        "x-events": []
      }
    },
    "/admin/promotions/{id}/buy-rules/batch": {
      "post": {
        "operationId": "AdminPostPromotionsIdBuyRulesBatch",
        "summary": "Manage the Buy Rules of a Promotion",
        "x-sidebar-summary": "Manage Buy Rules",
        "description": "Manage the buy rules of a `buyget` promotion to create, update, or delete them.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The promotion's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "promotion_type",
            "in": "query",
            "description": "The promotion's type.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The promotion's type.",
              "enum": [
                "standard",
                "buyget"
              ]
            }
          },
          {
            "name": "application_method_type",
            "in": "query",
            "description": "The promotion's application method type.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The promotion's application method type.",
              "enum": [
                "fixed",
                "percentage"
              ]
            }
          },
          {
            "name": "application_method_target_type",
            "in": "query",
            "description": "The promotion's application method target type.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The promotion's application method target type.",
              "enum": [
                "items",
                "shipping_methods",
                "order"
              ]
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "The buy rules to create, update, or delete.",
                "properties": {
                  "create": {
                    "type": "array",
                    "description": "The buy rules to create.",
                    "items": {
                      "$ref": "#/components/schemas/AdminCreatePromotionRule"
                    }
                  },
                  "update": {
                    "type": "array",
                    "description": "The buy rules to update.",
                    "items": {
                      "$ref": "#/components/schemas/AdminUpdatePromotionRule"
                    }
                  },
                  "delete": {
                    "type": "array",
                    "description": "The buy rules to delete.",
                    "items": {
                      "type": "string",
                      "title": "delete",
                      "description": "A buy rule's ID."
                    }
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/promotions/{id}/buy-rules/batch' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Promotions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The result of the batch operations.",
                  "required": [
                    "created",
                    "updated",
                    "deleted"
                  ],
                  "properties": {
                    "created": {
                      "type": "array",
                      "description": "The created buy rules.",
                      "items": {
                        "$ref": "#/components/schemas/AdminPromotionRule"
                      }
                    },
                    "updated": {
                      "type": "array",
                      "description": "The updated buy rules.",
                      "items": {
                        "$ref": "#/components/schemas/AdminPromotionRule"
                      }
                    },
                    "deleted": {
                      "type": "object",
                      "description": "The details of the deleted buy rules.",
                      "required": [
                        "ids",
                        "object",
                        "deleted"
                      ],
                      "properties": {
                        "ids": {
                          "type": "array",
                          "description": "The IDs of the buy rules that were deleted.",
                          "items": {
                            "type": "string",
                            "title": "ids",
                            "description": "A buy rule's ID."
                          }
                        },
                        "object": {
                          "type": "string",
                          "title": "object",
                          "description": "The name of the object that was deleted.",
                          "default": "promotion-rule"
                        },
                        "deleted": {
                          "type": "boolean",
                          "title": "deleted",
                          "description": "Whether the buy rules were deleted."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchPromotionRulesWorkflow",
        "x-events": []
      }
    },
    "/admin/promotions/{id}/rules/batch": {
      "post": {
        "operationId": "AdminPostPromotionsIdRulesBatch",
        "summary": "Manage a Promotion's Rules",
        "x-sidebar-summary": "Manage Rules",
        "description": "Manage the rules of a promotion to create, update, or delete them.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The promotion's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "promotion_type",
            "in": "query",
            "description": "The promotion's type.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The promotion's type.",
              "enum": [
                "standard",
                "buyget"
              ]
            }
          },
          {
            "name": "application_method_type",
            "in": "query",
            "description": "The promotion's application method type.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The promotion's application method type.",
              "enum": [
                "fixed",
                "percentage"
              ]
            }
          },
          {
            "name": "application_method_target_type",
            "in": "query",
            "description": "The promotion's application method target type.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The promotion's application method target type.",
              "enum": [
                "items",
                "shipping_methods",
                "order"
              ]
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "The rules to create, update, or delete.",
                "properties": {
                  "create": {
                    "type": "array",
                    "description": "The rules to create.",
                    "items": {
                      "$ref": "#/components/schemas/AdminCreatePromotionRule"
                    }
                  },
                  "update": {
                    "type": "array",
                    "description": "The rules to update.",
                    "items": {
                      "$ref": "#/components/schemas/AdminUpdatePromotionRule"
                    }
                  },
                  "delete": {
                    "type": "array",
                    "description": "The rules to delete.",
                    "items": {
                      "type": "string",
                      "title": "delete",
                      "description": "A rule's ID."
                    }
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/promotions/{id}/rules/batch' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Promotions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The result of the batch operations.",
                  "required": [
                    "created",
                    "updated",
                    "deleted"
                  ],
                  "properties": {
                    "created": {
                      "type": "array",
                      "description": "The created rules.",
                      "items": {
                        "$ref": "#/components/schemas/AdminPromotionRule"
                      }
                    },
                    "updated": {
                      "type": "array",
                      "description": "The updated rules.",
                      "items": {
                        "$ref": "#/components/schemas/AdminPromotionRule"
                      }
                    },
                    "deleted": {
                      "type": "object",
                      "description": "The details of the deleted buy rules.",
                      "required": [
                        "ids",
                        "object",
                        "deleted"
                      ],
                      "properties": {
                        "ids": {
                          "type": "array",
                          "description": "The IDs of the deleted rules.",
                          "items": {
                            "type": "string",
                            "title": "ids",
                            "description": "A rule's ID."
                          }
                        },
                        "object": {
                          "type": "string",
                          "title": "object",
                          "description": "The name of the object that was deleted.",
                          "default": "promotion-rule"
                        },
                        "deleted": {
                          "type": "boolean",
                          "title": "deleted",
                          "description": "Whether the rules were deleted."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchPromotionRulesWorkflow",
        "x-events": []
      }
    },
    "/admin/promotions/{id}/target-rules/batch": {
      "post": {
        "operationId": "AdminPostPromotionsIdTargetRulesBatch",
        "summary": "Manage Target Rules of a Promotion",
        "x-sidebar-summary": "Manage Target Rules",
        "description": "Manage the target rules of a promotion to create, update, or delete them.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The promotion's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "promotion_type",
            "in": "query",
            "description": "The promotion's type.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The promotion's type.",
              "enum": [
                "standard",
                "buyget"
              ]
            }
          },
          {
            "name": "application_method_type",
            "in": "query",
            "description": "The promotion's application method type.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The promotion's application method type.",
              "enum": [
                "fixed",
                "percentage"
              ]
            }
          },
          {
            "name": "application_method_target_type",
            "in": "query",
            "description": "The promotion's application method target type.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The promotion's application method target type.",
              "enum": [
                "items",
                "shipping_methods",
                "order"
              ]
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "The target rules to create, update, or delete.",
                "properties": {
                  "create": {
                    "type": "array",
                    "description": "The target rules to create.",
                    "items": {
                      "$ref": "#/components/schemas/AdminCreatePromotionRule"
                    }
                  },
                  "update": {
                    "type": "array",
                    "description": "The target rules to update.",
                    "items": {
                      "$ref": "#/components/schemas/AdminUpdatePromotionRule"
                    }
                  },
                  "delete": {
                    "type": "array",
                    "description": "The target rules to delete.",
                    "items": {
                      "type": "string",
                      "title": "delete",
                      "description": "A target rule's ID."
                    }
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/promotions/{id}/target-rules/batch' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Promotions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The result of the batch operations.",
                  "required": [
                    "created",
                    "updated",
                    "deleted"
                  ],
                  "properties": {
                    "created": {
                      "type": "array",
                      "description": "The created target rules.",
                      "items": {
                        "$ref": "#/components/schemas/AdminPromotionRule"
                      }
                    },
                    "updated": {
                      "type": "array",
                      "description": "The updated target rules.",
                      "items": {
                        "$ref": "#/components/schemas/AdminPromotionRule"
                      }
                    },
                    "deleted": {
                      "type": "object",
                      "description": "The details of the deleted target rules.",
                      "required": [
                        "ids",
                        "object",
                        "deleted"
                      ],
                      "properties": {
                        "ids": {
                          "type": "array",
                          "description": "The IDs of deleted target rules.",
                          "items": {
                            "type": "string",
                            "title": "ids",
                            "description": "A target rule's ID."
                          }
                        },
                        "object": {
                          "type": "string",
                          "title": "object",
                          "description": "The name of the object that was deleted.",
                          "default": "promotion-rule"
                        },
                        "deleted": {
                          "type": "boolean",
                          "title": "deleted",
                          "description": "Whether the target rules were deleted."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchPromotionRulesWorkflow",
        "x-events": []
      }
    },
    "/admin/promotions/{id}/{rule_type}": {
      "get": {
        "operationId": "AdminGetPromotionsIdRule_type",
        "summary": "List Rules of a Promotion",
        "x-sidebar-summary": "List Rules",
        "description": "Retrieve a list of rules in a promotion. The type of rules retrieved depend on the value of the `rule_type` path parameter:\n- If `rule_type` is `rules`, the promotion's rules are retrivied. - If `rule_type` is `target-rules`, the target rules of the promotion's application method are retrieved.\n\n- If `rule_type` is `buy-rules`, the buy rules of the promotion's application method are retrieved.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The promotion's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rule_type",
            "in": "path",
            "description": "The type of rules to retrieve.",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "rules",
                "target-rules",
                "buy-rules"
              ]
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "promotion_type",
            "in": "query",
            "description": "The type",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The promotion's type.",
              "enum": [
                "standard",
                "buyget"
              ]
            }
          },
          {
            "name": "application_method_type",
            "in": "query",
            "description": "The promotion's application method type.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The promotion's application method type.",
              "enum": [
                "fixed",
                "percentage"
              ]
            }
          },
          {
            "name": "application_method_target_type",
            "in": "query",
            "description": "The promotion's application method target type.",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The promotion's application method target type.",
              "enum": [
                "items",
                "shipping_methods",
                "order"
              ]
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.promotion.listRules(\"promo_123\", \"rules\")\n.then(({ rules }) => {\n  console.log(rules)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/promotions/{id}/{rule_type}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Promotions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The list of promotion rules.",
                  "required": [
                    "rules"
                  ],
                  "properties": {
                    "rules": {
                      "type": "array",
                      "description": "The list of promotion rules.",
                      "items": {
                        "$ref": "#/components/schemas/AdminPromotionRule"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/refund-reasons": {
      "get": {
        "operationId": "AdminGetRefundReasons",
        "summary": "List Refund Reasons",
        "description": "Retrieve a list of refund reasons. The refund reasons can be filtered by fields such as `id`. The refund reasons can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a refund reason's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by refund reason IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A refund reason ID."
                  }
                }
              ]
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the refund reason's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the refund reason's searchable properties."
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.refundReason.list()\n.then(({ refund_reasons, count, limit, offset }) => {\n  console.log(refund_reasons)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/refund-reasons' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Refund Reasons"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of refund reasons.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of refund reasons.",
                      "required": [
                        "refund_reasons"
                      ],
                      "properties": {
                        "refund_reasons": {
                          "type": "array",
                          "description": "The refund reason's refund reasons.",
                          "items": {
                            "$ref": "#/components/schemas/AdminRefundReason"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostRefundReasons",
        "summary": "Create Refund Reason",
        "description": "Create a refund reason.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateRefundReason"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.refundReason.create({\n  code: \"refund\",\n  label: \"Refund\",\n})\n.then(({ refund_reason }) => {\n  console.log(refund_reason)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/refund-reasons' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"label\": \"{value}\",\n  \"code\": \"{value}\",\n  \"description\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Refund Reasons"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundReasonResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createRefundReasonsWorkflow",
        "x-events": []
      }
    },
    "/admin/refund-reasons/{id}": {
      "get": {
        "operationId": "AdminGetRefundReasonsId",
        "summary": "Get a Refund Reason",
        "description": "Retrieve a refund reason by its ID. You can expand the refund reason's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The refund reason's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.refundReason.retrieve(\"refr_123\")\n.then(({ refund_reason }) => {\n  console.log(refund_reason)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/refund-reasons/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Refund Reasons"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundReasonResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostRefundReasonsId",
        "summary": "Update a Refund Reason",
        "description": "Update a refund reason's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The refund reason's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateRefundReason"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.refundReason.update(\"ret_123\", {\n  code: \"refund\",\n  label: \"Refund\",\n})\n.then(({ refund_reason }) => {\n  console.log(refund_reason)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/refund-reasons/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"description\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Refund Reasons"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundReasonResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateRefundReasonsWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteRefundReasonsId",
        "summary": "Delete a Refund Reason",
        "description": "Delete a refund reason.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The refund reason's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.refundReason.delete(\"ret_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/refund-reasons/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Refund Reasons"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminRefundReasonDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteRefundReasonsWorkflow",
        "x-events": []
      }
    },
    "/admin/regions": {
      "get": {
        "operationId": "AdminGetRegions",
        "summary": "List Regions",
        "description": "Retrieve a list of regions. The regions can be filtered by fields such as `id`. The regions can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the region's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the region's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a region's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by region IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A region's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "name",
                  "description": "Filter by a region's name."
                },
                {
                  "type": "array",
                  "description": "Filter by region names.",
                  "items": {
                    "type": "string",
                    "title": "name",
                    "description": "A region's name."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a region's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a region's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a region's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a region's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a region's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a region's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "currency_code",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "currency_code",
                  "description": "The region's currency code."
                },
                {
                  "type": "array",
                  "description": "The region's currency code.",
                  "items": {
                    "type": "string",
                    "title": "currency_code",
                    "description": "The currency code's details."
                  }
                }
              ]
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.region.list()\n.then(({ regions, count, limit, offset }) => {\n  console.log(regions)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/regions' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Regions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of regions.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of regions.",
                      "required": [
                        "regions"
                      ],
                      "properties": {
                        "regions": {
                          "type": "array",
                          "description": "The list of regions.",
                          "items": {
                            "$ref": "#/components/schemas/AdminRegion"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostRegions",
        "summary": "Create Region",
        "description": "Create a region.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateRegion"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.region.create({\n  name: \"United States\",\n  currency_code: \"usd\",\n})\n.then(({ region }) => {\n  console.log(region)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/regions' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"name\": \"Heloise\",\n  \"currency_code\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Regions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminRegionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createRegionsWorkflow",
        "x-events": [
          {
            "name": "region.created",
            "payload": "```ts\n{\n  id, // The ID of the region\n}\n```",
            "description": "Emitted when regions are created.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/regions/{id}": {
      "get": {
        "operationId": "AdminGetRegionsId",
        "summary": "Get a Region",
        "description": "Retrieve a region by its ID. You can expand the region's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The region's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.region.retrieve(\"region_123\")\n.then(({ region }) => {\n  console.log(region)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/regions/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Regions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminRegionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostRegionsId",
        "summary": "Update a Region",
        "description": "Update a region's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The region's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateRegion"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.region.update(\"region_123\", {\n  name: \"United States\",\n})\n.then(({ region }) => {\n  console.log(region)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/regions/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Regions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminRegionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateRegionsWorkflow",
        "x-events": [
          {
            "name": "region.updated",
            "payload": "```ts\n{\n  id, // The ID of the region\n}\n```",
            "description": "Emitted when regions are updated.",
            "deprecated": false
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteRegionsId",
        "summary": "Delete a Region",
        "description": "Delete a region.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The region's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.region.delete(\"region_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/regions/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Regions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The deletion's details.",
                  "required": [
                    "id",
                    "object",
                    "deleted"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The region's ID."
                    },
                    "object": {
                      "type": "string",
                      "title": "object",
                      "description": "The name of the deleted object.",
                      "default": "region"
                    },
                    "deleted": {
                      "type": "boolean",
                      "title": "deleted",
                      "description": "Whether the region was deleted."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteRegionsWorkflow",
        "x-events": [
          {
            "name": "region.deleted",
            "payload": "```ts\n{\n  id, // The ID of the region\n}\n```",
            "description": "Emitted when regions are deleted.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/reservations": {
      "get": {
        "operationId": "AdminGetReservations",
        "summary": "List Reservations",
        "description": "Retrieve a list of reservations. The reservations can be filtered by fields such as `id`. The reservations can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "location_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "location_id",
                  "description": "Filter by a location's ID to retrieve its associated reservations."
                },
                {
                  "type": "array",
                  "description": "Filter by location IDs to retrieve its associated reservations.",
                  "items": {
                    "type": "string",
                    "title": "location_id",
                    "description": "A location ID."
                  }
                }
              ]
            }
          },
          {
            "name": "inventory_item_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "inventory_item_id",
                  "description": "Filter by an inventory item's ID to retrieve its associated reservations."
                },
                {
                  "type": "array",
                  "description": "Filter by inventory item IDs to retrieve its associated reservations.",
                  "items": {
                    "type": "string",
                    "title": "inventory_item_id",
                    "description": "An inventory item ID"
                  }
                }
              ]
            }
          },
          {
            "name": "line_item_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "line_item_id",
                  "description": "Filter by a line item's ID to retrieve its associated reservations."
                },
                {
                  "type": "array",
                  "description": "Filter by line item IDs to retrieve its associated reservations.",
                  "items": {
                    "type": "string",
                    "title": "line_item_id",
                    "description": "A line item ID"
                  }
                }
              ]
            }
          },
          {
            "name": "created_by",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "created_by",
                  "description": "Filter by the ID of a user to retrieve the reservations they created."
                },
                {
                  "type": "array",
                  "description": "Filter by user IDs to retrieve the reservations they created.",
                  "items": {
                    "type": "string",
                    "title": "created_by",
                    "description": "A user's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "description",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "description",
                  "description": "Filter by a reservation's description. This filter applies a full-text match. To search by keywords, use the `q` query parameter instead."
                },
                {
                  "type": "object",
                  "description": "Apply filters on the reservation's description.",
                  "properties": {
                    "$eq": {
                      "type": "string",
                      "description": "Filter by an exact match."
                    },
                    "$ne": {
                      "type": "string",
                      "description": "Filter by values not matching this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array's items.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array's items.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "$like": {
                      "type": "string",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "$gt": {
                      "type": "string",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a reservation's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a reservation's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a reservation's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a reservation's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a reservation's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a reservation's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Apply a search query on the reservation's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Apply a search query on the reservation's searchable properties."
            }
          },
          {
            "name": "quantity",
            "in": "query",
            "description": "Filter by the reservation's quantity.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a reservation's quantity.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "number",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "number",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "number",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "number",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "number",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "number",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "number",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "number",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "number",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "number",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "number",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "number",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "number",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "number",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "quantity"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.reservation.list()\n.then(({ reservations, count, limit, offset }) => {\n  console.log(reservations)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/reservations' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Reservations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of reservations.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of reservations.",
                      "required": [
                        "reservations"
                      ],
                      "properties": {
                        "reservations": {
                          "type": "array",
                          "description": "The list of reservations.",
                          "items": {
                            "$ref": "#/components/schemas/AdminReservation"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostReservations",
        "summary": "Create Reservation",
        "description": "Create a reservation.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateReservation"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.reservation.create({\n  inventory_item_id: \"iitem_123\",\n  location_id: \"sloc_123\",\n  quantity: 10,\n})\n.then(({ reservation }) => {\n  console.log(reservation)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/reservations' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"line_item_id\": \"{value}\",\n  \"location_id\": \"{value}\",\n  \"inventory_item_id\": \"{value}\",\n  \"quantity\": 3268935814217728,\n  \"description\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Reservations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReservationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createReservationsWorkflow",
        "x-events": []
      }
    },
    "/admin/reservations/{id}": {
      "get": {
        "operationId": "AdminGetReservationsId",
        "summary": "Get a Reservation",
        "description": "Retrieve a reservation by its ID. You can expand the reservation's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The reservation's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.reservation.retrieve(\"res_123\")\n.then(({ reservation }) => {\n  console.log(reservation)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/reservations/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Reservations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReservationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostReservationsId",
        "summary": "Update a Reservation",
        "description": "Update a reservation's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The reservation's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateReservation"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.reservation.update(\"res_123\", {\n  quantity: 20,\n})\n.then(({ reservation }) => {\n  console.log(reservation)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/reservations/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"description\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Reservations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReservationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateReservationsWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteReservationsId",
        "summary": "Delete a Reservation",
        "description": "Delete a reservation.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The reservation's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.reservation.delete(\"res_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/reservations/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Reservations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The deletion's details.",
                  "required": [
                    "id",
                    "object",
                    "deleted"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The reservation's ID."
                    },
                    "object": {
                      "type": "string",
                      "title": "object",
                      "description": "The name of the deleted object.",
                      "default": "reservation"
                    },
                    "deleted": {
                      "type": "boolean",
                      "title": "deleted",
                      "description": "Whether the reservation was deleted."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteReservationsWorkflow",
        "x-events": []
      }
    },
    "/admin/return-reasons": {
      "get": {
        "operationId": "AdminGetReturnReasons",
        "summary": "List Return Reasons",
        "description": "Retrieve a list of return reasons. The return reasons can be filtered by fields such as `id`. The return reasons can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the return reason's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the return reason's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a return reason ID."
                },
                {
                  "type": "array",
                  "description": "Filter by return reason IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A return reason ID."
                  }
                }
              ]
            }
          },
          {
            "name": "value",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "value",
                  "description": "Filter by a return reason's value."
                },
                {
                  "type": "array",
                  "description": "Filter by return reason values.",
                  "items": {
                    "type": "string",
                    "title": "value",
                    "description": "A return reason value."
                  }
                }
              ]
            }
          },
          {
            "name": "label",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "label",
                  "description": "Filter by a return reason's label."
                },
                {
                  "type": "array",
                  "description": "Filter by return reason labels.",
                  "items": {
                    "type": "string",
                    "title": "label",
                    "description": "A return reason label."
                  }
                }
              ]
            }
          },
          {
            "name": "description",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "description",
                  "description": "Filter by a description. This filter looks for an exact match of the return reason's description. To search by a term or keywords, use the  `q` query parameter instead."
                },
                {
                  "type": "array",
                  "description": "Filter by descriptions. This filter looks for an exact match of the return reason's description. To search by a term or keywords, use the  `q` query parameter instead.",
                  "items": {
                    "type": "string",
                    "title": "description",
                    "description": "A return reason's description."
                  }
                }
              ]
            }
          },
          {
            "name": "parent_return_reason_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "parent_return_reason_id",
                  "description": "Filter by a return reason's ID to retrieve its child return reasons."
                },
                {
                  "type": "array",
                  "description": "Filter by return reason IDs to retrieve their child return reasons.",
                  "items": {
                    "type": "string",
                    "title": "parent_return_reason_id",
                    "description": "The return reason's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a return reason's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a return reason's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a return reason's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a return reason's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a return reason's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a return reason's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.returnReason.list()\n.then(({ return_reasons, count, limit, offset }) => {\n  console.log(return_reasons)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/return-reasons' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Return Reasons"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnReasonListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostReturnReasons",
        "summary": "Create Return Reason",
        "description": "Create a return reason.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateReturnReason"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.returnReason.create({\n  value: \"refund\",\n  label: \"Refund\",\n})\n.then(({ return_reason }) => {\n  console.log(return_reason)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/return-reasons' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"value\": \"{value}\",\n  \"label\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Return Reasons"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnReasonResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createReturnReasonsWorkflow",
        "x-events": []
      }
    },
    "/admin/return-reasons/{id}": {
      "get": {
        "operationId": "AdminGetReturnReasonsId",
        "summary": "Get a Return Reason",
        "description": "Retrieve a return reason by its ID. You can expand the return reason's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return reason's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.returnReason.retrieve(\"ret_123\")\n.then(({ return_reason }) => {\n  console.log(return_reason)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/return-reasons/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Return Reasons"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnReasonResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostReturnReasonsId",
        "summary": "Update a Return Reason",
        "description": "Update a return reason's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return reason's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateReturnReason"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.returnReason.update(\"ret_123\", {\n  value: \"refund\",\n  label: \"Refund\",\n})\n.then(({ return_reason }) => {\n  console.log(return_reason)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/return-reasons/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Return Reasons"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnReasonResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateReturnReasonsWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteReturnReasonsId",
        "summary": "Delete a Return Reason",
        "description": "Delete a return reason.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return reason's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.returnReason.delete(\"ret_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/return-reasons/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Return Reasons"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnReasonDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteReturnReasonsWorkflow",
        "x-events": []
      }
    },
    "/admin/returns": {
      "get": {
        "operationId": "AdminGetReturns",
        "summary": "List Returns",
        "description": "Retrieve a list of returns. The returns can be filtered by fields such as `id`. The returns can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a return's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by return IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A return ID."
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by a return status."
                },
                {
                  "type": "array",
                  "description": "Filter by return statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "A return status."
                  }
                }
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "sales_channel_id",
            "in": "query",
            "description": "Filter by sales channel IDs to retrieve their associated returns.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Filter by sales channel IDs to retrieve their associated returns.",
              "items": {
                "type": "string",
                "title": "sales_channel_id",
                "description": "A sales channel's ID."
              }
            }
          },
          {
            "name": "region_id",
            "in": "query",
            "description": "Filter by region IDs to retrieve their associated returns.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "region_id",
                  "description": "The return's region id."
                },
                {
                  "type": "array",
                  "description": "The return's region id.",
                  "items": {
                    "type": "string",
                    "title": "region_id",
                    "description": "The region id's details."
                  }
                }
              ]
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the return's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the return's searchable properties."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the return's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the return's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the return's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the return's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "customer_id",
                  "description": "The return's customer id."
                },
                {
                  "type": "array",
                  "description": "The return's customer id.",
                  "items": {
                    "type": "string",
                    "title": "customer_id",
                    "description": "The customer id's details."
                  }
                }
              ]
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.list()\n.then(({ returns, count, limit, offset }) => {\n  console.log(returns)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/returns' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of returns.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of returns.",
                      "required": [
                        "returns"
                      ],
                      "properties": {
                        "returns": {
                          "type": "array",
                          "description": "The return's returns.",
                          "items": {
                            "$ref": "#/components/schemas/AdminReturn"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostReturns",
        "summary": "Create Return",
        "description": "Create a return. The return can later be requested or confirmed.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminInitiateReturnRequest"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.initiateRequest({\n  order_id: \"order_123\",\n})\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/returns' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"order_id\": \"{value}\",\n  \"items\": [\n    {\n      \"id\": \"id_7DO5H2LbSN3p7IzB\",\n      \"quantity\": 1357590174892032,\n      \"reason_id\": \"{value}\",\n      \"note\": \"{value}\"\n    }\n  ],\n  \"return_shipping\": {\n    \"option_id\": \"{value}\",\n    \"price\": 5112171463704576\n  },\n  \"internal_note\": \"{value}\",\n  \"location_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderReturnResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "beginReturnOrderWorkflow",
        "x-events": []
      }
    },
    "/admin/returns/{id}": {
      "get": {
        "operationId": "AdminGetReturnsId",
        "summary": "Get a Return",
        "description": "Retrieve a return by its ID. You can expand the return's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.retrieve(\"return_123\")\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/returns/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostReturnsId",
        "summary": "Update a Return",
        "description": "Update a return's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateReturnRequest"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.updateRequest(\"return_123\", {\n  location_id: \"sloc_123\",\n})\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/returns/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateReturnWorkflow",
        "x-events": []
      }
    },
    "/admin/returns/{id}/cancel": {
      "post": {
        "operationId": "AdminPostReturnsIdCancel",
        "summary": "Cancel a return.",
        "description": "Cancel a return.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.cancel(\"return_123\")\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/returns/{id}/cancel' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPostCancelReturnReqSchema"
              }
            }
          }
        },
        "x-workflow": "cancelReturnWorkflow",
        "x-events": []
      }
    },
    "/admin/returns/{id}/dismiss-items": {
      "post": {
        "operationId": "AdminPostReturnsIdDismissItems",
        "summary": "Add Damaged Items to Return",
        "x-sidebar-summary": "Add Damaged Items",
        "description": "Add damaged items, whose quantity is to be dismissed, to a return. These items will have the action `RECEIVE_DAMAGED_RETURN_ITEM`.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminDismissItems"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.dismissItems(\"return_123\", {\n  items: [\n    { id: \"orli_123\", quantity: 1 },\n  ],\n})\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/returns/{id}/dismiss-items' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "dismissItemReturnRequestWorkflow",
        "x-events": []
      }
    },
    "/admin/returns/{id}/dismiss-items/{action_id}": {
      "post": {
        "operationId": "AdminPostReturnsIdDismissItemsAction_id",
        "summary": "Update Damaged Item of Return",
        "x-sidebar-summary": "Update Damaged Item",
        "description": "Update a damaged item, whose quantity is to be dismissed, in the return by the ID of the  item's `RECEIVE_DAMAGED_RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the damaged item's `RECEIVE_DAMAGED_RETURN_ITEM` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPostReturnsDismissItemsActionReqSchema"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.updateDismissItem(\"return_123\", \"orchach_123\", {\n  quantity: 2,\n})\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/returns/{id}/dismiss-items/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateReceiveItemReturnRequestWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteReturnsIdDismissItemsAction_id",
        "summary": "Remove Damaged Item from Return",
        "x-sidebar-summary": "Remove Damaged Item",
        "description": "Remove a damaged item, whose quantity is to be dismissed, in the return by the ID of the  item's `RECEIVE_DAMAGED_RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the damaged item's `RECEIVE_DAMAGED_RETURN_ITEM` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a return's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by return IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "The id's ID."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by a return's ID.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by an exact match.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "type": "string",
                      "title": "$ne",
                      "description": "Filter by values not equal to this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "type": "string",
                        "title": "$in",
                        "description": "Filter by values in this array."
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "type": "string",
                        "title": "$nin",
                        "description": "Filter by values not in this array."
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching the conditions in this parameter."
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "type": "string",
                      "title": "$gt",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "title": "$gte",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "title": "$lt",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "title": "$lte",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "order_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "order_id",
                  "description": "Filter by a return's order ID."
                },
                {
                  "type": "array",
                  "description": "Filter by return order IDs.",
                  "items": {
                    "type": "string",
                    "title": "order_id",
                    "description": "The order's ID."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by a return's order ID.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by an exact match.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "type": "string",
                      "title": "$ne",
                      "description": "Filter by values not equal to this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "type": "string",
                        "title": "$in",
                        "description": "Filter by values in this array."
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "type": "string",
                        "title": "$nin",
                        "description": "Filter by values not in this array."
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching the conditions in this parameter."
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "type": "string",
                      "title": "$gt",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "title": "$gte",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "title": "$lt",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "title": "$lte",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by a return's status."
                },
                {
                  "type": "array",
                  "description": "Filter by return statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "The status's details."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by a return's status.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a return's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a return's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "The return's with deleted.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "The return's with deleted."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the return's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the return's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.removeDismissItem(\"return_123\", \"orchach_123\")\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/returns/{id}/dismiss-items/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeItemReturnActionWorkflow",
        "x-events": []
      }
    },
    "/admin/returns/{id}/receive": {
      "post": {
        "operationId": "AdminPostReturnsIdReceive",
        "summary": "Start Return Receival",
        "description": "Start a return receival process to be later confirmed using the `/admin/returns/:id/receive/confirm` API route.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminInitiateReceiveReturn"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.initiateReceive(\"return_123\", {\n  internal_note: \"Return received by the customer\",\n})\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/returns/{id}/receive' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"return_id\": \"{value}\",\n  \"items\": [\n    {\n      \"id\": \"id_qfy3t6cU7m8O5cJ5zs\",\n      \"quantity\": 6429460591017984,\n      \"reason_id\": \"{value}\",\n      \"note\": \"{value}\"\n    }\n  ],\n  \"internal_note\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminOrderReturnResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "beginReceiveReturnWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteReturnsIdReceive",
        "summary": "Cancel Return Receival",
        "description": "Cancel the receival process previously started, and hasn't been confirmed, of a return.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.cancelReceive(\"return_123\")\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/returns/{id}/receive' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The deletion's details.",
                  "required": [
                    "id",
                    "object",
                    "deleted"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The return's ID."
                    },
                    "object": {
                      "type": "string",
                      "title": "object",
                      "description": "The name of the returned object.",
                      "default": "return"
                    },
                    "deleted": {
                      "type": "boolean",
                      "title": "deleted",
                      "description": "Whether the return was deleted."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "cancelReturnReceiveWorkflow",
        "x-events": []
      }
    },
    "/admin/returns/{id}/receive-items": {
      "post": {
        "operationId": "AdminPostReturnsIdReceiveItems",
        "summary": "Add Received Items to Return",
        "x-sidebar-summary": "Add Received Items",
        "description": "Add received items in a return. These items will have the action `RECEIVE_RETURN_ITEM`.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminReceiveItems"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.receiveItems(\"return_123\", {\n  items: [\n    { id: \"item_123\", quantity: 1 },\n  ],\n})\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/returns/{id}/receive-items' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "receiveItemReturnRequestWorkflow",
        "x-events": []
      }
    },
    "/admin/returns/{id}/receive-items/{action_id}": {
      "post": {
        "operationId": "AdminPostReturnsIdReceiveItemsAction_id",
        "summary": "Update a Received Item in a Return",
        "x-sidebar-summary": "Update Received Item",
        "description": "Update a received item in the return by the ID of the  item's `RECEIVE_RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the received item's `RECEIVE_RETURN_ITEM` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPostReturnsReceiveItemsActionReqSchema"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.updateReceiveItem(\"return_123\", \"orchach_123\", {\n  quantity: 2,\n})\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/returns/{id}/receive-items/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateReceiveItemReturnRequestWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteReturnsIdReceiveItemsAction_id",
        "summary": "Remove a Received Item from Return",
        "x-sidebar-summary": "Remove Received Item",
        "description": "Remove a received item in the return by the ID of the  item's `RECEIVE_RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the received item's `RECEIVE_RETURN_ITEM` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a return's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by return IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "The id's ID."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by a return's ID.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by an exact match.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "type": "string",
                      "title": "$ne",
                      "description": "Filter by values not equal to this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "type": "string",
                        "title": "$in",
                        "description": "Filter by values in this array."
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "type": "string",
                        "title": "$nin",
                        "description": "Filter by values not in this array."
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching the conditions in this parameter."
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "type": "string",
                      "title": "$gt",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "title": "$gte",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "title": "$lt",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "title": "$lte",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "order_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "order_id",
                  "description": "Filter by a return's order ID."
                },
                {
                  "type": "array",
                  "description": "Filter by return order IDs.",
                  "items": {
                    "type": "string",
                    "title": "order_id",
                    "description": "The order's ID."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by a return's order ID.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by an exact match.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "type": "string",
                      "title": "$ne",
                      "description": "Filter by values not equal to this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "type": "string",
                        "title": "$in",
                        "description": "Filter by values in this array."
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "type": "string",
                        "title": "$nin",
                        "description": "Filter by values not in this array."
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching the conditions in this parameter."
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "type": "string",
                      "title": "$gt",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "title": "$gte",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "title": "$lt",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "title": "$lte",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by a return's status."
                },
                {
                  "type": "array",
                  "description": "Filter by return statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "The status's details."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by a return's status.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a return's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a return's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "The return's with deleted.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "The return's with deleted."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the return's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the return's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.removeReceiveItem(\"return_123\", \"orchach_123\")\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/returns/{id}/receive-items/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeItemReceiveReturnActionWorkflow",
        "x-events": []
      }
    },
    "/admin/returns/{id}/receive/confirm": {
      "post": {
        "operationId": "AdminPostReturnsIdReceiveConfirm",
        "summary": "Confirm Return Receival",
        "description": "Confirm that a return has been received. This updates the quantity of the items received, if not damaged, and  reflects the changes on the order.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminConfirmReceiveReturn"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.confirmReceive(\"return_123\", {\n  no_notification: true,\n})\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/returns/{id}/receive/confirm' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "confirmReturnReceiveWorkflow",
        "x-events": [
          {
            "name": "order.return_received",
            "payload": "```ts\n{\n  order_id, // The ID of the order\n  return_id, // The ID of the return\n}\n```",
            "description": "Emitted when a return is marked as received.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/returns/{id}/request": {
      "post": {
        "operationId": "AdminPostReturnsIdRequest",
        "summary": "Confirm Return Request",
        "description": "Confirm a requested return. The changes are applied on the inventory quantity and the order only after the return has been confirmed as received using the `/admin/returns/:id/received/confirm`.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminConfirmReturnRequest"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.confirmRequest(\"return_123\", {\n  no_notification: true,\n})\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/returns/{id}/request' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "confirmReturnRequestWorkflow",
        "x-events": [
          {
            "name": "order.return_requested",
            "payload": "```ts\n{\n  order_id, // The ID of the order\n  return_id, // The ID of the return\n}\n```",
            "description": "Emitted when a return request is confirmed.",
            "deprecated": false
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteReturnsIdRequest",
        "summary": "Cancel Return Request",
        "description": "Cancel a requested return.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.cancelRequest(\"return_123\")\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/returns/{id}/request' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The deletion's details.",
                  "required": [
                    "id",
                    "object",
                    "deleted"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The return's ID."
                    },
                    "object": {
                      "type": "string",
                      "title": "object",
                      "description": "The name of the deleted object.",
                      "default": "return"
                    },
                    "deleted": {
                      "type": "boolean",
                      "title": "deleted",
                      "description": "Whether the return was deleted."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "cancelReturnRequestWorkflow",
        "x-events": []
      }
    },
    "/admin/returns/{id}/request-items": {
      "post": {
        "operationId": "AdminPostReturnsIdRequestItems",
        "summary": "Add Requested Items to Return",
        "x-sidebar-summary": "Add Items",
        "description": "Add items that are requested to be returned. These items will have the action `RETURN_ITEM`.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminAddReturnItems"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.addReturnItem(\"return_123\", {\n  id: \"orlitem_123\",\n  quantity: 1,\n})\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/returns/{id}/request-items' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "requestItemReturnWorkflow",
        "x-events": []
      }
    },
    "/admin/returns/{id}/request-items/{action_id}": {
      "post": {
        "operationId": "AdminPostReturnsIdRequestItemsAction_id",
        "summary": "Update Requested Item in Return",
        "x-sidebar-summary": "Update Requested Item",
        "description": "Update a requested item to be returned by the ID of the  item's `RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the item's `RETURN_ITEM` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateReturnItems"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.updateReturnItem(\"return_123\", \"orchach_123\", {\n  quantity: 2,\n})\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/returns/{id}/request-items/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateRequestItemReturnWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteReturnsIdRequestItemsAction_id",
        "summary": "Remove Item from Return",
        "x-sidebar-summary": "Remove Item",
        "description": "Remove a requested item to be returned by the ID of the item's `RETURN_ITEM` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property. return.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the item's `RETURN_ITEM` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a return's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by return IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "The id's ID."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by a return's ID.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by an exact match.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "type": "string",
                      "title": "$ne",
                      "description": "Filter by values not equal to this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "type": "string",
                        "title": "$in",
                        "description": "Filter by values in this array."
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "type": "string",
                        "title": "$nin",
                        "description": "Filter by values not in this array."
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching the conditions in this parameter."
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "type": "string",
                      "title": "$gt",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "title": "$gte",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "title": "$lt",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "title": "$lte",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "order_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "order_id",
                  "description": "Filter by a return's order ID."
                },
                {
                  "type": "array",
                  "description": "Filter by return order IDs.",
                  "items": {
                    "type": "string",
                    "title": "order_id",
                    "description": "The order's ID."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by a return's order ID.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by an exact match.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "type": "string",
                      "title": "$ne",
                      "description": "Filter by values not equal to this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "type": "string",
                        "title": "$in",
                        "description": "Filter by values in this array."
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "type": "string",
                        "title": "$nin",
                        "description": "Filter by values not in this array."
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching the conditions in this parameter."
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "type": "string",
                      "title": "$gt",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "title": "$gte",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "title": "$lt",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "title": "$lte",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by a return's status."
                },
                {
                  "type": "array",
                  "description": "Filter by return statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "The status's details."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by a return's status.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a return's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a return's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "The return's with deleted.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "The return's with deleted."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the return's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the return's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.removeReturnItem(\"return_123\", \"orchach_123\")\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/returns/{id}/request-items/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeItemReturnActionWorkflow",
        "x-events": []
      }
    },
    "/admin/returns/{id}/shipping-method": {
      "post": {
        "operationId": "AdminPostReturnsIdShippingMethod",
        "summary": "Add a Shipping Method to a Return",
        "x-sidebar-summary": "Add Shipping Method",
        "description": "Add a shipping method to a return. The shipping method will have a `SHIPPING_ADD` action.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminAddReturnShipping"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.addReturnShipping(\"return_123\", {\n  shipping_option_id: \"so_123\",\n})\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/returns/{id}/shipping-method' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"shipping_option_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createReturnShippingMethodWorkflow",
        "x-events": []
      }
    },
    "/admin/returns/{id}/shipping-method/{action_id}": {
      "post": {
        "operationId": "AdminPostReturnsIdShippingMethodAction_id",
        "summary": "Update a Shipping Method of a Return",
        "x-sidebar-summary": "Update Shipping Method",
        "description": "Update a shipping method of the return by the ID of the item's `SHIPPING_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the shipping method's `SHIPPING_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateReturnShipping"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.updateReturnShipping(\"return_123\", \"orchach_123\", {\n  custom_amount: 100,\n})\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/returns/{id}/shipping-method/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateReturnShippingMethodWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteReturnsIdShippingMethodAction_id",
        "summary": "Remove Shipping Method from Return",
        "x-sidebar-summary": "Remove Shipping Method",
        "description": "Remove a shipping method of the return by the ID of the item's `SHIPPING_ADD` action.\n\nEvery item has an `actions` property, whose value is an array of actions. You can check the action's name using its `action` property, and use the value of the `id` property.\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the shipping method's `SHIPPING_ADD` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a return's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by return IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "The id's ID."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by a return's ID.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by an exact match.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "type": "string",
                      "title": "$ne",
                      "description": "Filter by values not equal to this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "type": "string",
                        "title": "$in",
                        "description": "Filter by values in this array."
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "type": "string",
                        "title": "$nin",
                        "description": "Filter by values not in this array."
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching the conditions in this parameter."
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "type": "string",
                      "title": "$gt",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "title": "$gte",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "title": "$lt",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "title": "$lte",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "order_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "order_id",
                  "description": "Filter by a return's order ID."
                },
                {
                  "type": "array",
                  "description": "Filter by return order IDs.",
                  "items": {
                    "type": "string",
                    "title": "order_id",
                    "description": "The order's ID."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by a return's order ID.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by an exact match.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "type": "string",
                      "title": "$ne",
                      "description": "Filter by values not equal to this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "type": "string",
                        "title": "$in",
                        "description": "Filter by values in this array."
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "type": "string",
                        "title": "$nin",
                        "description": "Filter by values not in this array."
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching the conditions in this parameter."
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "type": "string",
                      "title": "$gt",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "title": "$gte",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "title": "$lt",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "title": "$lte",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "Filter by a return's status."
                },
                {
                  "type": "array",
                  "description": "Filter by return statuses.",
                  "items": {
                    "type": "string",
                    "title": "status",
                    "description": "The status's details."
                  }
                },
                {
                  "type": "object",
                  "description": "Filter by a return's status.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a return's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a return's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "The return's with deleted.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "The return's with deleted."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the return's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the return's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.return.deleteReturnShipping(\"return_123\", \"orchach_123\")\n.then(({ return }) => {\n  console.log(return)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/returns/{id}/shipping-method/{action_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminReturnPreviewResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeReturnShippingMethodWorkflow",
        "x-events": []
      }
    },
    "/admin/sales-channels": {
      "get": {
        "operationId": "AdminGetSalesChannels",
        "summary": "List Sales Channels",
        "description": "Retrieve a list of sales channels. The sales channels can be filtered by fields such as `id`. The sales channels can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the sales channel's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the sales channel's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a sales channel ID."
                },
                {
                  "type": "array",
                  "description": "Filter by sales channel IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A sales channel ID."
                  }
                }
              ]
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "name",
                  "description": "Filter by a sales channel name."
                },
                {
                  "type": "array",
                  "description": "Filter by sales channel names.",
                  "items": {
                    "type": "string",
                    "title": "name",
                    "description": "A sales channel name."
                  }
                }
              ]
            }
          },
          {
            "name": "description",
            "in": "query",
            "description": "The sales channel's description.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "description",
              "description": "Filter by a description. This filter matches an entire description. To search by terms or keywords, use the `q` query parameter instead."
            }
          },
          {
            "name": "is_disabled",
            "in": "query",
            "description": "Filter by whether the sales channel is disabled.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "is_disabled",
              "description": "Filter by whether the sales channel is disabled."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a sales channel's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a sales channel's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a sales channel's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a sales channel's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a sales channel's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a sales channel's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "location_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "location_id",
                  "description": "Filter by a location ID to retrieve its associated sales channels."
                },
                {
                  "type": "array",
                  "description": "Filter by location IDs to retrieve their associated sales channels.",
                  "items": {
                    "type": "string",
                    "title": "location_id",
                    "description": "A location ID."
                  }
                }
              ]
            }
          },
          {
            "name": "publishable_key_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "publishable_key_id",
                  "description": "Filter by a publishable API key's ID to retrieve its associated sales channels."
                },
                {
                  "type": "array",
                  "description": "Filter by publishable API key IDs to retrieve their associated sales channels.",
                  "items": {
                    "type": "string",
                    "title": "publishable_key_id",
                    "description": "A publishable API key ID."
                  }
                }
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.salesChannel.list()\n.then(({ sales_channels, count, limit, offset }) => {\n  console.log(sales_channels)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/sales-channels' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Sales Channels"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of sales channels.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of sales channels.",
                      "required": [
                        "sales_channels"
                      ],
                      "properties": {
                        "sales_channels": {
                          "type": "array",
                          "description": "The list of sales channels.",
                          "items": {
                            "$ref": "#/components/schemas/AdminSalesChannel"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostSalesChannels",
        "summary": "Create Sales Channel",
        "description": "Create a sales channel.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateSalesChannel"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.salesChannel.create({\n  name: \"Storefront\",\n})\n.then(({ salesChannel }) => {\n  console.log(salesChannel)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/sales-channels' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"name\": \"Linnea\",\n  \"description\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Sales Channels"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminSalesChannelResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createSalesChannelsWorkflow",
        "x-events": [
          {
            "name": "sales-channel.created",
            "payload": "```ts\n{\n  id, // The ID of the sales channel\n}\n```",
            "description": "Emitted when sales channels are created.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/sales-channels/{id}": {
      "get": {
        "operationId": "AdminGetSalesChannelsId",
        "summary": "Get a Sales Channel",
        "description": "Retrieve a sales channel by its ID. You can expand the sales channel's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The sales channel's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.salesChannel.retrieve(\"sc_123\")\n.then(({ sales_channel }) => {\n  console.log(sales_channel)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/sales-channels/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Sales Channels"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminSalesChannelResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostSalesChannelsId",
        "summary": "Update a Sales Channel",
        "description": "Update a sales channel's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The sales channel's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateSalesChannel"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.salesChannel.update(\n  \"sc_123\",\n  {\n    name: \"Storefront\",\n  }\n)\n.then(({ salesChannel }) => {\n  console.log(salesChannel)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/sales-channels/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"description\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Sales Channels"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminSalesChannelResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateSalesChannelsWorkflow",
        "x-events": [
          {
            "name": "sales-channel.updated",
            "payload": "```ts\n{\n  id, // The ID of the sales channel\n}\n```",
            "description": "Emitted when sales channels are updated.",
            "deprecated": false
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteSalesChannelsId",
        "summary": "Delete a Sales Channel",
        "description": "Delete a sales channel.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The sales channel's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.salesChannel.delete(\"sc_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/sales-channels/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Sales Channels"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminSalesChannelDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteSalesChannelsWorkflow",
        "x-events": [
          {
            "name": "sales-channel.deleted",
            "payload": "```ts\n{\n  id, // The ID of the sales channel\n}\n```",
            "description": "Emitted when sales channels are deleted.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/sales-channels/{id}/products": {
      "post": {
        "operationId": "AdminPostSalesChannelsIdProducts",
        "summary": "Manage Products in Sales Channel",
        "x-sidebar-summary": "Manage Products",
        "description": "Manage products in a sales channel to add or remove them from the channel.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The sales channel's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchLink"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.salesChannel.batchProducts(\"sc_123\", {\n  add: [\"prod_123\", \"prod_456\"],\n  remove: [\"prod_789\"]\n})\n.then(({ sales_channel }) => {\n  console.log(sales_channel)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/sales-channels/{id}/products' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Sales Channels"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminSalesChannelResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "linkProductsToSalesChannelWorkflow",
        "x-events": []
      }
    },
    "/admin/shipping-option-types": {
      "get": {
        "operationId": "AdminGetShippingOptionTypes",
        "summary": "List Shipping Option Types",
        "description": "Retrieve a list of shipping option types. The shipping option types can be filtered by fields such as `id`. The shipping option types can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search query to apply on the shipping option type's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search query to apply on the shipping option type's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a shipping option type's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by shipping option type IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A shipping option type's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "label",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "label",
                  "description": "Filter by a shipping option type's label."
                },
                {
                  "type": "array",
                  "description": "Filter by shipping option type labels.",
                  "items": {
                    "type": "string",
                    "title": "label",
                    "description": "A label."
                  }
                }
              ]
            }
          },
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "code",
                  "description": "Filter by a shipping option type's code."
                },
                {
                  "type": "array",
                  "description": "Filter by shipping option type codes.",
                  "items": {
                    "type": "string",
                    "title": "code",
                    "description": "A code."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a shipping option type's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a shipping option type's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a shipping option type's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a shipping option type's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a shipping option type's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a shipping option type's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.shippingOptionType.list()\n.then(({ shipping_option_types, count, limit, offset }) => {\n  console.log(shipping_option_types)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/shipping-option-types' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Shipping Option Types"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminShippingOptionTypeListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.10.0"
      },
      "post": {
        "operationId": "AdminPostShippingOptionTypes",
        "summary": "Create Shipping Option Type",
        "description": "Create a shipping option type.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateShippingOptionType"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.shippingOptionType.create({\n  label: \"Standard\",\n  code: \"standard\",\n  description: \"Ship in 2-3 days.\"\n})\n.then(({ shipping_option_type }) => {\n  console.log(shipping_option_type)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/shipping-option-types' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"label\": \"{value}\",\n  \"code\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Shipping Option Types"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminShippingOptionTypeResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createShippingOptionTypesWorkflow",
        "x-events": [
          {
            "name": "shipping-option-type.created",
            "payload": "```ts\n{\n  id, // The ID of the shipping option type\n}\n```",
            "description": "Emitted when shipping option types are created.",
            "deprecated": false,
            "since": "2.10.0"
          }
        ],
        "x-since": "2.10.0"
      }
    },
    "/admin/shipping-option-types/{id}": {
      "get": {
        "operationId": "AdminGetShippingOptionTypesId",
        "summary": "Get a Shipping Option Type",
        "description": "Retrieve a shipping option type by its ID. You can expand the shipping option type's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The shipping option type's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.shippingOptionType.retrieve(\"sotype_123\")\n.then(({ shipping_option_type }) => {\n  console.log(shipping_option_type)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/shipping-option-types/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Shipping Option Types"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminShippingOptionTypeResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.10.0"
      },
      "post": {
        "operationId": "AdminPostShippingOptionTypesId",
        "summary": "Update a Shipping Option Type",
        "description": "Update a shipping option type's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The shipping option type's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateShippingOptionType"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.shippingOptionType.update(\"sotype_123\", {\n  code: \"express\"\n})\n.then(({ shipping_option_type }) => {\n  console.log(shipping_option_type)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/shipping-option-types/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Shipping Option Types"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminShippingOptionTypeResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateShippingOptionTypesWorkflow",
        "x-events": [
          {
            "name": "shipping-option-type.updated",
            "payload": "```ts\n{\n  id, // The ID of the shipping option type\n}\n```",
            "description": "Emitted when shipping option types are updated.",
            "deprecated": false,
            "since": "2.10.0"
          }
        ],
        "x-since": "2.10.0"
      },
      "delete": {
        "operationId": "AdminDeleteShippingOptionTypesId",
        "summary": "Delete a Shipping Option Type",
        "x-sidebar-summary": "Delete Shipping Option Type",
        "description": "Delete a shipping option type.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The shipping option type's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.shippingOptionType.delete(\"sotype_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/shipping-option-types/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Shipping Option Types"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminShippingOptionTypeDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteShippingOptionTypesWorkflow",
        "x-events": [
          {
            "name": "shipping-option-type.deleted",
            "payload": "```ts\n{\n  id, // The ID of the shipping option type\n}\n```",
            "description": "Emitted when shipping option types are deleted.",
            "deprecated": false,
            "since": "2.10.0"
          }
        ],
        "x-since": "2.10.0"
      }
    },
    "/admin/shipping-options": {
      "get": {
        "operationId": "AdminGetShippingOptions",
        "summary": "List Shipping Options",
        "description": "Retrieve a list of shipping options. The shipping options can be filtered by fields such as `id`. The shipping options can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a shipping option ID."
                },
                {
                  "type": "array",
                  "description": "Filter by shipping option IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A shipping option's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the shipping option's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the shipping option's searchable properties."
            }
          },
          {
            "name": "service_zone_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "service_zone_id",
                  "description": "Filter by a service zone's ID to retrieve its associated shipping options."
                },
                {
                  "type": "array",
                  "description": "Filter by service zone IDs to retrieve their associated shipping options.",
                  "items": {
                    "type": "string",
                    "title": "service_zone_id",
                    "description": "A service zone ID."
                  }
                }
              ]
            }
          },
          {
            "name": "shipping_profile_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "shipping_profile_id",
                  "description": "Filter by a shipping profile's ID to retrieve its associated shipping options."
                },
                {
                  "type": "array",
                  "description": "Filter by shipping profile IDs to retrieve their associated shipping options.",
                  "items": {
                    "type": "string",
                    "title": "shipping_profile_id",
                    "description": "A shipping profile ID."
                  }
                }
              ]
            }
          },
          {
            "name": "provider_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "provider_id",
                  "description": "Filter by a fulfillment provider's ID to retrieve its associated shipping options."
                },
                {
                  "type": "array",
                  "description": "Filter by fulfillment provider IDs to retrieve their associated shipping options.",
                  "items": {
                    "type": "string",
                    "title": "provider_id",
                    "description": "A fulfillment provider ID."
                  }
                }
              ]
            }
          },
          {
            "name": "shipping_option_type_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "shipping_option_type_id",
                  "description": "Filter by a shipping option type's ID to retrieve its associated shipping options."
                },
                {
                  "type": "array",
                  "description": "Filter by shipping option type IDs to retrieve its associated shipping options.",
                  "items": {
                    "type": "string",
                    "title": "shipping_option_type_id",
                    "description": "A shipping option type ID."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a shipping option's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a shipping option's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a shipping option's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a shipping option's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a shipping option's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a shipping option's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "stock_location_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "stock_location_id",
                  "description": "Filter by a location ID to retrieve its associated shipping option."
                },
                {
                  "type": "array",
                  "description": "Filter by location IDs to retrieve their associated shipping option.",
                  "items": {
                    "type": "string",
                    "title": "stock_location_id",
                    "description": "A stock location's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "is_return",
            "in": "query",
            "description": "Filter by whether the shipping option is used for returns.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "is_return",
              "description": "Filter by whether the shipping option is used for returns."
            }
          },
          {
            "name": "admin_only",
            "in": "query",
            "description": "Filter by whether the shipping option is used by admin users only.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "admin_only",
              "description": "Filter by whether the shipping option is used by admin users only."
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.shippingOption.list()\n.then(({ shipping_options, count, limit, offset }) => {\n  console.log(shipping_options)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/shipping-options' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Shipping Options"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of shipping options.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of shipping options.",
                      "required": [
                        "shipping_options"
                      ],
                      "properties": {
                        "shipping_options": {
                          "type": "array",
                          "description": "The list of shipping options.",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostShippingOptions",
        "summary": "Create Shipping Option",
        "description": "Create a shipping option.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/AdminCreateFlatRateShippingOption"
                  },
                  {
                    "$ref": "#/components/schemas/AdminCreateCalculatedShippingOption"
                  }
                ],
                "description": "The shipping option's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.shippingOption.create({\n  name: \"Standard Shipping\",\n  profile_id: \"shp_123\",\n})\n.then(({ shipping_option }) => {\n  console.log(shipping_option)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/shipping-options' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"name\": \"Julie\",\n  \"service_zone_id\": \"{value}\",\n  \"shipping_profile_id\": \"{value}\",\n  \"price_type\": \"{value}\",\n  \"provider_id\": \"{value}\",\n  \"type\": {\n    \"label\": \"{value}\",\n    \"description\": \"{value}\",\n    \"code\": \"{value}\"\n  },\n  \"prices\": []\n}'"
          }
        ],
        "tags": [
          "Admin Shipping Options"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminShippingOptionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createShippingOptionsWorkflow",
        "x-events": [
          {
            "name": "shipping-option.created",
            "payload": "```ts\n{\n  id, // The ID of the shipping option\n}\n```",
            "description": "Emitted when shipping options are created.",
            "deprecated": false,
            "since": "2.12.4"
          }
        ]
      }
    },
    "/admin/shipping-options/{id}": {
      "get": {
        "operationId": "AdminGetShippingOptionsId",
        "summary": "Get a Shipping Option",
        "description": "Retrieve a shipping option by its ID. You can expand the shipping option's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The shipping option's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.shippingOption.retrieve(\"so_123\")\n.then(({ shipping_option }) => {\n  console.log(shipping_option)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/shipping-options/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Shipping Options"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminShippingOptionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostShippingOptionsId",
        "summary": "Update a Shipping Option",
        "description": "Update a shipping option's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The shipping option's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateShippingOption"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.shippingOption.update(\"so_123\", {\n  name: \"Standard Shipping\",\n})\n.then(({ shipping_option }) => {\n  console.log(shipping_option)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/shipping-options/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Shipping Options"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminShippingOptionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateShippingOptionsWorkflow",
        "x-events": [
          {
            "name": "shipping-option.updated",
            "payload": "```ts\n{\n  id, // The ID of the shipping option\n}\n```",
            "description": "Emitted when shipping options are updated.",
            "deprecated": false,
            "since": "2.12.4"
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteShippingOptionsId",
        "summary": "Delete a Shipping Option",
        "description": "Delete a shipping option.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The shipping option's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.shippingOption.delete(\"so_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/shipping-options/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Shipping Options"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminShippingOptionDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteShippingOptionsWorkflow",
        "x-events": [
          {
            "name": "shipping-option.deleted",
            "payload": "```ts\n{\n  id, // The ID of the shipping option\n}\n```",
            "description": "Emitted when shipping options are deleted.",
            "deprecated": false,
            "since": "2.12.4"
          }
        ]
      }
    },
    "/admin/shipping-options/{id}/rules/batch": {
      "post": {
        "operationId": "AdminPostShippingOptionsIdRulesBatch",
        "summary": "Manage the Rules of a Shipping Option",
        "x-sidebar-summary": "Manage Rules",
        "description": "Manage the rules of a shipping option to create, update, or delete them.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The shipping option's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "The rules to create, update, or delete.",
                "properties": {
                  "create": {
                    "type": "array",
                    "description": "The shipping option rules to create.",
                    "items": {
                      "$ref": "#/components/schemas/AdminCreateShippingOptionRule"
                    }
                  },
                  "update": {
                    "type": "array",
                    "description": "The shipping option rules to update.",
                    "items": {
                      "$ref": "#/components/schemas/AdminUpdateShippingOptionRule"
                    }
                  },
                  "delete": {
                    "type": "array",
                    "description": "The shipping option rules to delete.",
                    "items": {
                      "type": "string",
                      "title": "delete",
                      "description": "A rule's ID."
                    }
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.shippingOption.updateRules(\"so_123\", {\n  create: [{ attribute: \"enabled_in_store\", operator: \"eq\", value: \"true\" }],\n})\n.then(({ shipping_option }) => {\n  console.log(shipping_option)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/shipping-options/{id}/rules/batch' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Shipping Options"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The batch operation's result.",
                  "required": [
                    "created",
                    "updated",
                    "deleted"
                  ],
                  "properties": {
                    "created": {
                      "type": "array",
                      "description": "The created shipping option rules.",
                      "items": {
                        "$ref": "#/components/schemas/AdminShippingOptionRule"
                      }
                    },
                    "updated": {
                      "type": "array",
                      "description": "The updated shipping option rules.",
                      "items": {
                        "$ref": "#/components/schemas/AdminShippingOptionRule"
                      }
                    },
                    "deleted": {
                      "type": "object",
                      "description": "The details of the deleted shipping option rules.",
                      "required": [
                        "ids",
                        "object",
                        "deleted"
                      ],
                      "properties": {
                        "ids": {
                          "type": "array",
                          "description": "The IDs of the deleted shipping option rules.",
                          "items": {
                            "type": "string",
                            "title": "ids",
                            "description": "A shipping option rule's ID."
                          }
                        },
                        "object": {
                          "type": "string",
                          "title": "object",
                          "description": "The name of the deleted object.",
                          "default": "shipping_option_rule"
                        },
                        "deleted": {
                          "type": "boolean",
                          "title": "deleted",
                          "description": "The deleted's details."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchShippingOptionRulesWorkflow",
        "x-events": []
      }
    },
    "/admin/shipping-profiles": {
      "get": {
        "operationId": "AdminGetShippingProfiles",
        "summary": "List Shipping Profiles",
        "description": "Retrieve a list of shipping profiles. The shipping profiles can be filtered by fields such as `id`. The shipping profiles can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a shipping profile's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by shipping profile IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A shipping profile ID."
                  }
                }
              ]
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the shipping profile's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the shipping profile's searchable properties."
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Filter by a shipping profile's type.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "type",
              "description": "Filter by a shipping profile's type."
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filter by a shipping profile's name.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "name",
              "description": "Filter by a shipping profile's name."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a shipping profile's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a shipping profile's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a shipping profile's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a shipping profile's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a shipping profile's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a shipping profile's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.shippingProfile.list()\n.then(({ shipping_profiles, count, limit, offset }) => {\n  console.log(shipping_profiles)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/shipping-profiles' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Shipping Profiles"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of shipping profiles.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of shipping profiles.",
                      "required": [
                        "shipping_profiles"
                      ],
                      "properties": {
                        "shipping_profiles": {
                          "type": "array",
                          "description": "The list of shipping profiles.",
                          "items": {
                            "$ref": "#/components/schemas/AdminShippingProfile"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostShippingProfiles",
        "summary": "Create Shipping Profile",
        "description": "Create a shipping profile.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateShippingProfile"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.shippingProfile.create({\n  name: \"Default Shipping Profile\",\n})\n.then(({ shipping_profile }) => {\n  console.log(shipping_profile)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/shipping-profiles' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"name\": \"Percy\",\n  \"type\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Shipping Profiles"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminShippingProfileResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createShippingProfilesWorkflow",
        "x-events": []
      }
    },
    "/admin/shipping-profiles/{id}": {
      "get": {
        "operationId": "AdminGetShippingProfilesId",
        "summary": "Get a Shipping Profile",
        "description": "Retrieve a shipping profile by its ID. You can expand the shipping profile's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The shipping profile's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.shippingProfile.retrieve(\"sp_123\")\n.then(({ shipping_profile }) => {\n  console.log(shipping_profile)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/shipping-profiles/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Shipping Profiles"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminShippingProfileResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostShippingProfilesId",
        "summary": "Update a Shipping Profile",
        "description": "Update a shipping profile's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The shipping profile's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateShippingProfile"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.shippingProfile.update(\"sp_123\", {\n  name: \"Updated Shipping Profile\",\n})\n.then(({ shipping_profile }) => {\n  console.log(shipping_profile)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/shipping-profiles/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Shipping Profiles"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminShippingProfileResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateShippingProfilesWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteShippingProfilesId",
        "summary": "Delete a Shipping Profile",
        "description": "Delete a shipping profile.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The shipping profile's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.shippingProfile.delete(\"sp_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/shipping-profiles/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Shipping Profiles"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminShippingProfileDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteShippingProfileWorkflow",
        "x-events": []
      }
    },
    "/admin/stock-locations": {
      "get": {
        "operationId": "AdminGetStockLocations",
        "summary": "List Stock Locations",
        "description": "Retrieve a list of stock locations. The stock locations can be filtered by fields such as `id`. The stock locations can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the stock location's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the stock location's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a stock location ID."
                },
                {
                  "type": "array",
                  "description": "Filter by stock location IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A stock location ID."
                  }
                }
              ]
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "name",
                  "description": "Filter by a stock location name."
                },
                {
                  "type": "array",
                  "description": "Filter by stock location names.",
                  "items": {
                    "type": "string",
                    "title": "name",
                    "description": "A stock location name."
                  }
                }
              ]
            }
          },
          {
            "name": "address_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "address_id",
                  "description": "Filter by an address ID to retrieve its associated locations."
                },
                {
                  "type": "array",
                  "description": "Filter by address IDs to retrieve their associated locations.",
                  "items": {
                    "type": "string",
                    "title": "address_id",
                    "description": "An address ID."
                  }
                }
              ]
            }
          },
          {
            "name": "sales_channel_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "sales_channel_id",
                  "description": "Filter by a sales channel ID to retrieve its associated locations."
                },
                {
                  "type": "array",
                  "description": "Filter by sales channel IDs to retrieve their associated locations.",
                  "items": {
                    "type": "string",
                    "title": "sales_channel_id",
                    "description": "A sales channel ID"
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a stock location's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a stock location's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a stock location's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a stock location's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a stock location's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a stock location's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.stockLocation.list()\n.then(({ stock_locations, count, limit, offset }) => {\n  console.log(stock_locations)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/stock-locations' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Stock Locations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStockLocationListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostStockLocations",
        "summary": "Create Stock Location",
        "description": "Create a stock location.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateStockLocation"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.stockLocation.create({\n  name: \"Main Warehouse\",\n  address_id: \"addr_123\",\n})\n.then(({ stock_location }) => {\n  console.log(stock_location)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/stock-locations' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"name\": \"Maryam\",\n  \"address_id\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Stock Locations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStockLocationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createStockLocationsWorkflow",
        "x-events": []
      }
    },
    "/admin/stock-locations/{id}": {
      "get": {
        "operationId": "AdminGetStockLocationsId",
        "summary": "Get a Stock Location",
        "description": "Retrieve a stock location by its ID. You can expand the stock location's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The stock location's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.stockLocation.retrieve(\"sloc_123\")\n.then(({ stock_location }) => {\n  console.log(stock_location)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/stock-locations/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Stock Locations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStockLocationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostStockLocationsId",
        "summary": "Update a Stock Location",
        "description": "Update a stock location's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The stock location's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateStockLocation"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.stockLocation.update(\"sloc_123\", {\n  name: \"European Warehouse\",\n})\n.then(({ stock_location }) => {\n  console.log(stock_location)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/stock-locations/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"address_id\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Stock Locations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStockLocationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateStockLocationsWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteStockLocationsId",
        "summary": "Delete a Stock Location",
        "description": "Delete a stock location.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The stock location's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.stockLocation.delete(\"sloc_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/stock-locations/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Stock Locations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStockLocationDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteStockLocationsWorkflow",
        "x-events": []
      }
    },
    "/admin/stock-locations/{id}/fulfillment-providers": {
      "post": {
        "operationId": "AdminPostStockLocationsIdFulfillmentProviders",
        "summary": "Manage Fulfillment Providers of a Stock Location",
        "x-sidebar-summary": "Manage Fulfillment Providers",
        "description": "Manage the fulfillment providers to add or remove them from a stock location.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The stock location's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchLink"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.stockLocation.updateFulfillmentProviders(\"sloc_123\", {\n  add: [\"fp_manual_manual\"],\n  remove: [\"fp_shipstation_shipstation\"],\n})\n.then(({ stock_location }) => {\n  console.log(stock_location)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/stock-locations/{id}/fulfillment-providers' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Stock Locations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStockLocationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchLinksWorkflow",
        "x-events": []
      }
    },
    "/admin/stock-locations/{id}/fulfillment-sets": {
      "post": {
        "operationId": "AdminPostStockLocationsIdFulfillmentSets",
        "summary": "Add Fulfillment Set to Stock Location",
        "x-sidebar-summary": "Add Fulfillment Set",
        "description": "Create and add a fulfillment set to a stock location.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The stock location's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateStockLocationFulfillmentSet"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.stockLocation.createFulfillmentSet(\"sloc_123\", {\n  name: \"Shipping\",\n  type: \"shipping\",\n})\n.then(({ stock_location }) => {\n  console.log(stock_location)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/stock-locations/{id}/fulfillment-sets' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"name\": \"Helene\",\n  \"type\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Stock Locations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStockLocationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createLocationFulfillmentSetWorkflow",
        "x-events": []
      }
    },
    "/admin/stock-locations/{id}/sales-channels": {
      "post": {
        "operationId": "AdminPostStockLocationsIdSalesChannels",
        "summary": "Manage Sales Channels of a Stock Location",
        "x-sidebar-summary": "Manage Sales Channels",
        "description": "Manage the sales channels in a stock location by adding or removing them.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The stock location's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchLink"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.stockLocation.updateSalesChannels(\"sloc_123\", {\n  add: [\"sc_123\"],\n  remove: [\"sc_456\"],\n})\n.then(({ stock_location }) => {\n  console.log(stock_location)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/stock-locations/{id}/sales-channels' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Stock Locations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStockLocationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "linkSalesChannelsToStockLocationWorkflow",
        "x-events": []
      }
    },
    "/admin/store-credit-accounts": {
      "get": {
        "operationId": "AdminGetStoreCreditAccounts",
        "summary": "List Store Credit Accounts",
        "description": "Retrieve a list of store credit accounts. The store credit accounts can be filtered by fields such as `id`. The store credit accounts can also be sorted or paginated.",
        "x-authenticated": true,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.\nThe fields and relations to retrieve separated by commas.\n\nLearn more in the [API reference](https://docs.medusajs.com/api/store#select-fields-and-relations).",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "description": "Filter by the store credit account's ID.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a store credit account ID."
                },
                {
                  "type": "array",
                  "description": "Filter by store credit account IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A store credit account ID."
                  }
                }
              ]
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "description": "Filter by customer ID(s) to retrieve their store credit accounts.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "customer_id",
                  "description": "Filter by a customer ID to retrieve their store credit accounts."
                },
                {
                  "type": "array",
                  "description": "Filter by customer ID(s) to retrieve their store credit accounts.",
                  "items": {
                    "type": "string",
                    "title": "customer_id",
                    "description": "A customer ID."
                  }
                }
              ]
            }
          },
          {
            "name": "transaction_group_id",
            "in": "query",
            "description": "Filter by the associated transaction group's ID.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "transaction_group_id",
                  "description": "Filter by the associated transaction group ID."
                },
                {
                  "type": "array",
                  "description": "Filter by transaction group IDs.",
                  "items": {
                    "type": "string",
                    "title": "transaction_group_id",
                    "description": "A transaction group ID."
                  }
                }
              ]
            }
          },
          {
            "name": "currency_code",
            "in": "query",
            "description": "Filter by currency code(s) to retrieve store credit accounts in specific currencies.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "currency_code",
                  "description": "Filter by a currency code to retrieve store credit accounts in that currency.",
                  "example": "usd"
                },
                {
                  "type": "array",
                  "description": "Filter by currency codes to retrieve store credit accounts in specific currencies.",
                  "items": {
                    "type": "string",
                    "title": "currency_code",
                    "description": "Filter by a currency code to retrieve store credit accounts in that currency.",
                    "example": "usd"
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a store credit account's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a store credit account's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              }
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a store credit account's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a store credit account's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              }
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "An array of filters to apply on the entity, where each item in the array is joined with an \"and\" condition.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "An array of filters to apply on the entity, where each item in the array is joined with an \"or\" condition.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/store-credit-accounts' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Store Credit Accounts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStoreCreditAccountsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      },
      "post": {
        "operationId": "AdminPostStoreCreditAccounts",
        "summary": "Create Store Credit Account",
        "description": "Create a store credit account.",
        "x-authenticated": true,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateStoreCreditAccount"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/store-credit-accounts' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"currency_code\": \"nzd\",\n  \"customer_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Store Credit Accounts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStoreCreditAccountResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      }
    },
    "/admin/store-credit-accounts/{id}": {
      "get": {
        "operationId": "AdminGetStoreCreditAccountsId",
        "summary": "Get a Store Credit Account",
        "description": "Retrieve a store credit account by its ID. You can expand the store credit account's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The store credit account's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.\nThe fields and relations to retrieve separated by commas.\n\nLearn more in the [API reference](https://docs.medusajs.com/api/store#select-fields-and-relations).",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "description": "Filter by the store credit account's ID.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a store credit account ID."
                },
                {
                  "type": "array",
                  "description": "Filter by store credit account IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A store credit account ID."
                  }
                }
              ]
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "description": "Filter by customer ID(s) to retrieve their store credit accounts.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "customer_id",
                  "description": "Filter by a customer ID to retrieve their store credit accounts."
                },
                {
                  "type": "array",
                  "description": "Filter by customer ID(s) to retrieve their store credit accounts.",
                  "items": {
                    "type": "string",
                    "title": "customer_id",
                    "description": "A customer ID."
                  }
                }
              ]
            }
          },
          {
            "name": "transaction_group_id",
            "in": "query",
            "description": "Filter by the associated transaction group's ID.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "transaction_group_id",
                  "description": "Filter by the associated transaction group ID."
                },
                {
                  "type": "array",
                  "description": "Filter by transaction group IDs.",
                  "items": {
                    "type": "string",
                    "title": "transaction_group_id",
                    "description": "A transaction group ID."
                  }
                }
              ]
            }
          },
          {
            "name": "currency_code",
            "in": "query",
            "description": "Filter by currency code(s) to retrieve store credit accounts in specific currencies.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "currency_code",
                  "description": "Filter by a currency code to retrieve store credit accounts in that currency.",
                  "example": "usd"
                },
                {
                  "type": "array",
                  "description": "Filter by currency codes to retrieve store credit accounts in specific currencies.",
                  "items": {
                    "type": "string",
                    "title": "currency_code",
                    "description": "Filter by a currency code to retrieve store credit accounts in that currency.",
                    "example": "usd"
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a store credit account's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a store credit account's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              }
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a store credit account's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a store credit account's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              }
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "An array of filters to apply on the entity, where each item in the array is joined with an \"and\" condition.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "An array of filters to apply on the entity, where each item in the array is joined with an \"or\" condition.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/store-credit-accounts/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Store Credit Accounts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStoreCreditAccountResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      }
    },
    "/admin/store-credit-accounts/{id}/transactions": {
      "get": {
        "operationId": "AdminGetStoreCreditAccountsIdTransactions",
        "summary": "List Transactions",
        "description": "Retrieve a list of transactions in a store credit account. The transactions can be filtered by fields like FILTER FIELDS. The transactions can also be paginated.",
        "x-authenticated": true,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The store credit account's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a transaction ID."
                },
                {
                  "type": "array",
                  "description": "Filter by transaction IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A transaction ID."
                  }
                }
              ]
            }
          },
          {
            "name": "transaction_group_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "transaction_group_id",
                  "description": "Filter by a transaction group ID."
                },
                {
                  "type": "array",
                  "description": "Filter by transaction group IDs.",
                  "items": {
                    "type": "string",
                    "title": "transaction_group_id",
                    "description": "A transaction group ID."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a transaction's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a transaction's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              }
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a transaction's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a transaction's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search query to filter the transactions by their searchable fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search query to filter the transactions by their searchable fields."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/store-credit-accounts/{id}/transactions' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Store Credit Accounts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminTransactionsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      }
    },
    "/admin/stores": {
      "get": {
        "operationId": "AdminGetStores",
        "summary": "List Stores",
        "description": "Retrieve a list of stores. The stores can be filtered by fields such as `id`. The stores can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the store's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the store's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a store ID."
                },
                {
                  "type": "array",
                  "description": "Filter by store IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A store ID."
                  }
                }
              ]
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "name",
                  "description": "Filter by a store name."
                },
                {
                  "type": "array",
                  "description": "Filter by store names.",
                  "items": {
                    "type": "string",
                    "title": "name",
                    "description": "A store name."
                  }
                }
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.store.list()\n.then(({ stores, count, limit, offset }) => {\n  console.log(stores)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/stores' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Stores"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStoreListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/stores/{id}": {
      "get": {
        "operationId": "AdminGetStoresId",
        "summary": "Get a Store",
        "description": "Retrieve a store by its ID. You can expand the store's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The store's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.store.retrieve(\"store_123\")\n.then(({ store }) => {\n  console.log(store)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/stores/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Stores"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStoreResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostStoresId",
        "summary": "Update a Store",
        "description": "Update a store's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The store's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateStore"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.store.update(\"store_123\", {\n  name: \"My Store\",\n})\n.then(({ store }) => {\n  console.log(store)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/stores/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"name\": \"Melvina\",\n  \"default_sales_channel_id\": \"{value}\",\n  \"default_region_id\": \"{value}\",\n  \"default_location_id\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Stores"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminStoreResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateStoresWorkflow",
        "x-events": []
      }
    },
    "/admin/tax-providers": {
      "get": {
        "operationId": "AdminGetTaxProviders",
        "summary": "List Tax Providers",
        "description": "Retrieve a list of tax providers installed in the Medusa application through Tax Module Providers. The tax providers can be filtered by fields such as `id`. The tax providers can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a tax provider's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by tax provider IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A tax provider's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "is_enabled",
            "in": "query",
            "description": "Filter by whether the tax provider is enabled.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "is_enabled",
              "description": "Filter by whether the tax provider is enabled."
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.taxProvider.list()\n.then(({ tax_providers, count, limit, offset }) => {\n  console.log(tax_providers)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/tax-providers' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Tax Providers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The pagination details.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items retrieved."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items available."
                        },
                        "estimate_count": {
                          "type": "number",
                          "title": "estimate_count",
                          "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
                          "x-featureFlag": "index_engine"
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The list of tax providers.",
                      "required": [
                        "tax_providers"
                      ],
                      "properties": {
                        "tax_providers": {
                          "type": "array",
                          "description": "The list of tax providers.",
                          "items": {
                            "$ref": "#/components/schemas/AdminTaxProvider"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.8.0"
      }
    },
    "/admin/tax-rates": {
      "get": {
        "operationId": "AdminGetTaxRates",
        "summary": "List Tax Rates",
        "description": "Retrieve a list of tax rates. The tax rates can be filtered by fields such as `id`. The tax rates can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search terms to filter the tax rate's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search terms to filter the tax rate's searchable properties."
            }
          },
          {
            "name": "tax_region_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "tax_region_id",
                  "description": "Filter by a tax region ID to retrieve its associated rates."
                },
                {
                  "type": "array",
                  "description": "Filter by tax region IDs to retrieve their associated rates.",
                  "items": {
                    "type": "string",
                    "title": "tax_region_id",
                    "description": "A tax region ID."
                  }
                },
                {
                  "type": "object",
                  "description": "Apply filters on the tax region ID to retrieve the rates associated with the matching tax regions.",
                  "properties": {
                    "$eq": {
                      "type": "string",
                      "description": "Filter by an exact match."
                    },
                    "$ne": {
                      "type": "string",
                      "description": "Filter by values not matching this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array's items.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array's items.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "$like": {
                      "type": "string",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "$gt": {
                      "type": "string",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "is_default",
            "in": "query",
            "required": false,
            "description": "Filter by whether the tax rate is a default in its tax region.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a tax rate's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a tax rate's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a tax rate's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a tax rate's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a tax rate's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a tax rate's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "service_zone_id",
            "in": "query",
            "description": "Filter by a service zone's ID to retrieve its associated tax rates.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "service_zone_id",
              "description": "Filter by a service zone's ID to retrieve its associated tax rates."
            }
          },
          {
            "name": "shipping_profile_id",
            "in": "query",
            "description": "Filter by a shipping profile's ID to retrieve its associated tax rates.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "shipping_profile_id",
              "description": "Filter by a shipping profile's ID to retrieve its associated tax rates."
            }
          },
          {
            "name": "provider_id",
            "in": "query",
            "description": "Filter by a fulfillment provider's ID to retrieve its associated tax rates.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "provider_id",
              "description": "Filter by a fulfillment provider's ID to retrieve its associated tax rates."
            }
          },
          {
            "name": "shipping_option_type_id",
            "in": "query",
            "description": "Filter by a shipping option type's ID to retrieve its associated tax rates.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "shipping_option_type_id",
              "description": "Filter by a shipping option type's ID to retrieve its associated tax rates."
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.taxRate.list()\n.then(({ tax_rates, count, limit, offset }) => {\n  console.log(tax_rates)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/tax-rates' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Tax Rates"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of tax rates.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of tax rates.",
                      "required": [
                        "tax_rates"
                      ],
                      "properties": {
                        "tax_rates": {
                          "type": "array",
                          "description": "The tax rate's tax rates.",
                          "items": {
                            "$ref": "#/components/schemas/AdminTaxRate"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostTaxRates",
        "summary": "Create Tax Rate",
        "description": "Create a tax rate.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateTaxRate"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.taxRate.create({\n  name: \"VAT\",\n  tax_region_id: \"txreg_123\",\n  code: \"VAT\",\n  rate: 2, // 2%\n})\n.then(({ tax_rate }) => {\n  console.log(tax_rate)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/tax-rates' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"name\": \"Kaylin\",\n  \"tax_region_id\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Tax Rates"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminTaxRateResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createTaxRatesWorkflow",
        "x-events": []
      }
    },
    "/admin/tax-rates/{id}": {
      "get": {
        "operationId": "AdminGetTaxRatesId",
        "summary": "Get a Tax Rate",
        "description": "Retrieve a tax rate by its ID. You can expand the tax rate's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The tax rate's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.taxRate.retrieve(\"txrat_123\")\n.then(({ tax_rate }) => {\n  console.log(tax_rate)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/tax-rates/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Tax Rates"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminTaxRateResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostTaxRatesId",
        "summary": "Update a Tax Rate",
        "description": "Update a tax rate's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The tax rate's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateTaxRate"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.taxRate.update(\"txrat_123\", {\n  name: \"VAT\",\n  code: \"VAT\",\n})\n.then(({ tax_rate }) => {\n  console.log(tax_rate)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/tax-rates/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Tax Rates"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminTaxRateResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateTaxRatesWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteTaxRatesId",
        "summary": "Delete a Tax Rate",
        "description": "Delete a tax rate.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The tax rate's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.taxRate.delete(\"txrat_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/tax-rates/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Tax Rates"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminTaxRateDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteTaxRatesWorkflow",
        "x-events": []
      }
    },
    "/admin/tax-rates/{id}/rules": {
      "post": {
        "operationId": "AdminPostTaxRatesIdRules",
        "summary": "Create Tax Rule for a Rate",
        "x-sidebar-summary": "Create Tax Rule",
        "description": "Create a tax rule for a rate.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The tax rate's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateTaxRateRule"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/tax-rates/{id}/rules' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"reference\": \"{value}\",\n  \"reference_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Tax Rates"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminTaxRateResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createTaxRateRulesWorkflow",
        "x-events": []
      }
    },
    "/admin/tax-rates/{id}/rules/{rule_id}": {
      "delete": {
        "operationId": "AdminDeleteTaxRatesIdRulesRule_id",
        "summary": "Remove Rule of Tax Rate",
        "x-sidebar-summary": "Remove Rule",
        "description": "Remove a tax rate's rule.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The tax rate's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rule_id",
            "in": "path",
            "description": "The tax rate rule's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/tax-rates/{id}/rules/{rule_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Tax Rates"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The deletion's details.",
                      "required": [
                        "id",
                        "object",
                        "deleted"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "title": "id",
                          "description": "The tax rate's ID."
                        },
                        "object": {
                          "type": "string",
                          "title": "object",
                          "description": "The name of the deleted object."
                        },
                        "deleted": {
                          "type": "boolean",
                          "title": "deleted",
                          "description": "Whether the Tax Rate was deleted."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The deletion's details.",
                      "properties": {
                        "parent": {
                          "$ref": "#/components/schemas/AdminTaxRate"
                        }
                      }
                    }
                  ],
                  "description": "The deletion's details."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteTaxRateRulesWorkflow",
        "x-events": []
      }
    },
    "/admin/tax-regions": {
      "get": {
        "operationId": "AdminGetTaxRegions",
        "summary": "List Tax Regions",
        "description": "Retrieve a list of tax regions. The tax regions can be filtered by fields such as `id`. The tax regions can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter a tax region's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter a tax region's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a tax region ID."
                },
                {
                  "type": "array",
                  "description": "Filter by tax region IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A tax region ID."
                  }
                }
              ]
            }
          },
          {
            "name": "country_code",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "country_code",
                  "description": "Filter by a country code."
                },
                {
                  "type": "array",
                  "description": "Filter by country codes.",
                  "items": {
                    "type": "string",
                    "title": "country_code",
                    "description": "A country code."
                  }
                },
                {
                  "type": "object",
                  "description": "Apply filters on the currency code.",
                  "properties": {
                    "$eq": {
                      "type": "string",
                      "description": "Filter by an exact match."
                    },
                    "$ne": {
                      "type": "string",
                      "description": "Filter by values not matching this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array's items.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array's items.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "$like": {
                      "type": "string",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "$gt": {
                      "type": "string",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "province_code",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "province_code",
                  "description": "Filter by a ISO 3166-2 province code. Must be lower-case.",
                  "example": "us-ca",
                  "externalDocs": {
                    "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                    "description": "Learn more about ISO 3166-2"
                  }
                },
                {
                  "type": "array",
                  "description": "Filter by ISO 3166-2 province codes.",
                  "items": {
                    "type": "string",
                    "title": "province_code",
                    "description": "A ISO 3166-2 province code.",
                    "example": "us-ca",
                    "externalDocs": {
                      "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                      "description": "Learn more about ISO 3166-2"
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "Apply filters on the province code.",
                  "properties": {
                    "$eq": {
                      "type": "string",
                      "description": "Filter by an exact match."
                    },
                    "$ne": {
                      "type": "string",
                      "description": "Filter by values not matching this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array's items.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array's items.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "$like": {
                      "type": "string",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "$gt": {
                      "type": "string",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "parent_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "parent_id",
                  "description": "Filter by the ID of a parent tax region to retrieve its child tax regions."
                },
                {
                  "type": "array",
                  "description": "Filter by the IDs of parent tax regions to retrieve their child tax regions.",
                  "items": {
                    "type": "string",
                    "title": "parent_id",
                    "description": "A tax region's ID."
                  }
                },
                {
                  "type": "object",
                  "description": "Apply filters on the parent tax region's ID to retrieve its child tax regions.",
                  "properties": {
                    "$eq": {
                      "type": "string",
                      "description": "Filter by an exact match."
                    },
                    "$ne": {
                      "type": "string",
                      "description": "Filter by values not matching this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array's items.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array's items.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "$like": {
                      "type": "string",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "$gt": {
                      "type": "string",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "created_by",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "created_by",
                  "description": "Filter by the ID of the user to retrieve the tax regions they created."
                },
                {
                  "type": "array",
                  "description": "Filter by user IDs to retrieve their tax regions they created.",
                  "items": {
                    "type": "string",
                    "title": "created_by",
                    "description": "A user ID."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a tax region's creation date.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "created_at",
                  "description": "Filter by a tax region's creation date."
                },
                {
                  "type": "object",
                  "description": "Apply filters on the tax region's creation date.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by an exact match.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "type": "string",
                      "title": "$ne",
                      "description": "Filter by values not equal to this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "type": "string",
                        "title": "$in",
                        "description": "Filter by values in this array."
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "type": "string",
                        "title": "$nin",
                        "description": "Filter by values not in this array."
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "properties": {
                            "$and": {
                              "type": "array",
                              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$and"
                            },
                            "$or": {
                              "type": "array",
                              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$or"
                            },
                            "$eq": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by an exact match.",
                                  "items": {
                                    "type": "string",
                                    "title": "$eq",
                                    "description": "Filter by an exact match."
                                  }
                                }
                              ]
                            },
                            "$ne": {
                              "type": "string",
                              "title": "$ne",
                              "description": "Filter by values not equal to this parameter."
                            },
                            "$in": {
                              "type": "array",
                              "description": "Filter by values in this array.",
                              "items": {
                                "type": "string",
                                "title": "$in",
                                "description": "Filter by values in this array."
                              }
                            },
                            "$nin": {
                              "type": "array",
                              "description": "Filter by values not in this array.",
                              "items": {
                                "type": "string",
                                "title": "$nin",
                                "description": "Filter by values not in this array."
                              }
                            },
                            "$not": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$not",
                                  "description": "Filter by values not matching the conditions in this parameter."
                                },
                                {
                                  "type": "object",
                                  "description": "Filter by values not matching the conditions in this parameter."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by values not matching the conditions in this parameter.",
                                  "items": {
                                    "type": "string",
                                    "title": "$not",
                                    "description": "Filter by values not matching the conditions in this parameter."
                                  }
                                }
                              ]
                            },
                            "$gt": {
                              "type": "string",
                              "title": "$gt",
                              "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                            },
                            "$gte": {
                              "type": "string",
                              "title": "$gte",
                              "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$lt": {
                              "type": "string",
                              "title": "$lt",
                              "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                            },
                            "$lte": {
                              "type": "string",
                              "title": "$lte",
                              "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$like": {
                              "type": "string",
                              "title": "$like",
                              "description": "Apply a `like` filter. Useful for strings only."
                            },
                            "$re": {
                              "type": "string",
                              "title": "$re",
                              "description": "Apply a regex filter. Useful for strings only."
                            },
                            "$ilike": {
                              "type": "string",
                              "title": "$ilike",
                              "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                            },
                            "$fulltext": {
                              "type": "string",
                              "title": "$fulltext",
                              "description": "Filter to apply on full-text properties."
                            },
                            "$overlap": {
                              "type": "array",
                              "description": "Filter arrays that have overlapping values with this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$overlap",
                                "description": "Filter arrays that have overlapping values with this parameter."
                              }
                            },
                            "$contains": {
                              "type": "array",
                              "description": "Filter arrays that contain some of the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contains",
                                "description": "Filter arrays that contain some of the values of this parameter."
                              }
                            },
                            "$contained": {
                              "type": "array",
                              "description": "Filter arrays that contain all values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contained",
                                "description": "Filter arrays that contain all values of this parameter."
                              }
                            },
                            "$exists": {
                              "type": "boolean",
                              "title": "$exists",
                              "description": "Filter by whether a value for this parameter exists (not `null`)."
                            }
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching the conditions in this parameter."
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "type": "string",
                      "title": "$gt",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "title": "$gte",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "title": "$lt",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "title": "$lte",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a tax region's update date.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "updated_at",
                  "description": "Filter by a tax region's update date."
                },
                {
                  "type": "object",
                  "description": "Apply filters on the tax region's update date.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by an exact match.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "type": "string",
                      "title": "$ne",
                      "description": "Filter by values not equal to this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "type": "string",
                        "title": "$in",
                        "description": "Filter by values in this array."
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "type": "string",
                        "title": "$nin",
                        "description": "Filter by values not in this array."
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "properties": {
                            "$and": {
                              "type": "array",
                              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$and"
                            },
                            "$or": {
                              "type": "array",
                              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$or"
                            },
                            "$eq": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by an exact match.",
                                  "items": {
                                    "type": "string",
                                    "title": "$eq",
                                    "description": "Filter by an exact match."
                                  }
                                }
                              ]
                            },
                            "$ne": {
                              "type": "string",
                              "title": "$ne",
                              "description": "Filter by values not equal to this parameter."
                            },
                            "$in": {
                              "type": "array",
                              "description": "Filter by values in this array.",
                              "items": {
                                "type": "string",
                                "title": "$in",
                                "description": "Filter by values in this array."
                              }
                            },
                            "$nin": {
                              "type": "array",
                              "description": "Filter by values not in this array.",
                              "items": {
                                "type": "string",
                                "title": "$nin",
                                "description": "Filter by values not in this array."
                              }
                            },
                            "$not": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$not",
                                  "description": "Filter by values not matching the conditions in this parameter."
                                },
                                {
                                  "type": "object",
                                  "description": "Filter by values not matching the conditions in this parameter."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by values not matching the conditions in this parameter.",
                                  "items": {
                                    "type": "string",
                                    "title": "$not",
                                    "description": "Filter by values not matching the conditions in this parameter."
                                  }
                                }
                              ]
                            },
                            "$gt": {
                              "type": "string",
                              "title": "$gt",
                              "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                            },
                            "$gte": {
                              "type": "string",
                              "title": "$gte",
                              "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$lt": {
                              "type": "string",
                              "title": "$lt",
                              "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                            },
                            "$lte": {
                              "type": "string",
                              "title": "$lte",
                              "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$like": {
                              "type": "string",
                              "title": "$like",
                              "description": "Apply a `like` filter. Useful for strings only."
                            },
                            "$re": {
                              "type": "string",
                              "title": "$re",
                              "description": "Apply a regex filter. Useful for strings only."
                            },
                            "$ilike": {
                              "type": "string",
                              "title": "$ilike",
                              "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                            },
                            "$fulltext": {
                              "type": "string",
                              "title": "$fulltext",
                              "description": "Filter to apply on full-text properties."
                            },
                            "$overlap": {
                              "type": "array",
                              "description": "Filter arrays that have overlapping values with this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$overlap",
                                "description": "Filter arrays that have overlapping values with this parameter."
                              }
                            },
                            "$contains": {
                              "type": "array",
                              "description": "Filter arrays that contain some of the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contains",
                                "description": "Filter arrays that contain some of the values of this parameter."
                              }
                            },
                            "$contained": {
                              "type": "array",
                              "description": "Filter arrays that contain all values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contained",
                                "description": "Filter arrays that contain all values of this parameter."
                              }
                            },
                            "$exists": {
                              "type": "boolean",
                              "title": "$exists",
                              "description": "Filter by whether a value for this parameter exists (not `null`)."
                            }
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching the conditions in this parameter."
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "type": "string",
                      "title": "$gt",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "title": "$gte",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "title": "$lt",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "title": "$lte",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a tax region's deletion date.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "deleted_at",
                  "description": "Filter by a tax region's deletion date."
                },
                {
                  "type": "object",
                  "description": "Apply filters on the tax region's deletion date.",
                  "properties": {
                    "$and": {
                      "type": "array",
                      "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$and"
                    },
                    "$or": {
                      "type": "array",
                      "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                      "items": {
                        "type": "object"
                      },
                      "title": "$or"
                    },
                    "$eq": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        },
                        {
                          "type": "array",
                          "description": "Filter by an exact match.",
                          "items": {
                            "type": "string",
                            "title": "$eq",
                            "description": "Filter by an exact match."
                          }
                        }
                      ]
                    },
                    "$ne": {
                      "type": "string",
                      "title": "$ne",
                      "description": "Filter by values not equal to this parameter."
                    },
                    "$in": {
                      "type": "array",
                      "description": "Filter by values in this array.",
                      "items": {
                        "type": "string",
                        "title": "$in",
                        "description": "Filter by values in this array."
                      }
                    },
                    "$nin": {
                      "type": "array",
                      "description": "Filter by values not in this array.",
                      "items": {
                        "type": "string",
                        "title": "$nin",
                        "description": "Filter by values not in this array."
                      }
                    },
                    "$not": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching the conditions in this parameter."
                        },
                        {
                          "type": "object",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "properties": {
                            "$and": {
                              "type": "array",
                              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$and"
                            },
                            "$or": {
                              "type": "array",
                              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                              "items": {
                                "type": "object"
                              },
                              "title": "$or"
                            },
                            "$eq": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$eq",
                                  "description": "Filter by an exact match."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by an exact match.",
                                  "items": {
                                    "type": "string",
                                    "title": "$eq",
                                    "description": "Filter by an exact match."
                                  }
                                }
                              ]
                            },
                            "$ne": {
                              "type": "string",
                              "title": "$ne",
                              "description": "Filter by values not equal to this parameter."
                            },
                            "$in": {
                              "type": "array",
                              "description": "Filter by values in this array.",
                              "items": {
                                "type": "string",
                                "title": "$in",
                                "description": "Filter by values in this array."
                              }
                            },
                            "$nin": {
                              "type": "array",
                              "description": "Filter by values not in this array.",
                              "items": {
                                "type": "string",
                                "title": "$nin",
                                "description": "Filter by values not in this array."
                              }
                            },
                            "$not": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "title": "$not",
                                  "description": "Filter by values not matching the conditions in this parameter."
                                },
                                {
                                  "type": "object",
                                  "description": "Filter by values not matching the conditions in this parameter."
                                },
                                {
                                  "type": "array",
                                  "description": "Filter by values not matching the conditions in this parameter.",
                                  "items": {
                                    "type": "string",
                                    "title": "$not",
                                    "description": "Filter by values not matching the conditions in this parameter."
                                  }
                                }
                              ]
                            },
                            "$gt": {
                              "type": "string",
                              "title": "$gt",
                              "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                            },
                            "$gte": {
                              "type": "string",
                              "title": "$gte",
                              "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$lt": {
                              "type": "string",
                              "title": "$lt",
                              "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                            },
                            "$lte": {
                              "type": "string",
                              "title": "$lte",
                              "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                            },
                            "$like": {
                              "type": "string",
                              "title": "$like",
                              "description": "Apply a `like` filter. Useful for strings only."
                            },
                            "$re": {
                              "type": "string",
                              "title": "$re",
                              "description": "Apply a regex filter. Useful for strings only."
                            },
                            "$ilike": {
                              "type": "string",
                              "title": "$ilike",
                              "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                            },
                            "$fulltext": {
                              "type": "string",
                              "title": "$fulltext",
                              "description": "Filter to apply on full-text properties."
                            },
                            "$overlap": {
                              "type": "array",
                              "description": "Filter arrays that have overlapping values with this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$overlap",
                                "description": "Filter arrays that have overlapping values with this parameter."
                              }
                            },
                            "$contains": {
                              "type": "array",
                              "description": "Filter arrays that contain some of the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contains",
                                "description": "Filter arrays that contain some of the values of this parameter."
                              }
                            },
                            "$contained": {
                              "type": "array",
                              "description": "Filter arrays that contain all values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$contained",
                                "description": "Filter arrays that contain all values of this parameter."
                              }
                            },
                            "$exists": {
                              "type": "boolean",
                              "title": "$exists",
                              "description": "Filter by whether a value for this parameter exists (not `null`)."
                            }
                          }
                        },
                        {
                          "type": "array",
                          "description": "Filter by values not matching the conditions in this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$not",
                            "description": "Filter by values not matching the conditions in this parameter."
                          }
                        }
                      ]
                    },
                    "$gt": {
                      "type": "string",
                      "title": "$gt",
                      "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                    },
                    "$gte": {
                      "type": "string",
                      "title": "$gte",
                      "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$lt": {
                      "type": "string",
                      "title": "$lt",
                      "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                    },
                    "$lte": {
                      "type": "string",
                      "title": "$lte",
                      "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                    },
                    "$like": {
                      "type": "string",
                      "title": "$like",
                      "description": "Apply a `like` filter. Useful for strings only."
                    },
                    "$re": {
                      "type": "string",
                      "title": "$re",
                      "description": "Apply a regex filter. Useful for strings only."
                    },
                    "$ilike": {
                      "type": "string",
                      "title": "$ilike",
                      "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                    },
                    "$fulltext": {
                      "type": "string",
                      "title": "$fulltext",
                      "description": "Filter to apply on full-text properties."
                    },
                    "$overlap": {
                      "type": "array",
                      "description": "Filter arrays that have overlapping values with this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$overlap",
                        "description": "Filter arrays that have overlapping values with this parameter."
                      }
                    },
                    "$contains": {
                      "type": "array",
                      "description": "Filter arrays that contain some of the values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contains",
                        "description": "Filter arrays that contain some of the values of this parameter."
                      }
                    },
                    "$contained": {
                      "type": "array",
                      "description": "Filter arrays that contain all values of this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$contained",
                        "description": "Filter arrays that contain all values of this parameter."
                      }
                    },
                    "$exists": {
                      "type": "boolean",
                      "title": "$exists",
                      "description": "Filter by whether a value for this parameter exists (not `null`)."
                    }
                  }
                }
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.taxRegion.list()\n.then(({ tax_regions, count, limit, offset }) => {\n  console.log(tax_regions)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/tax-regions' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Tax Regions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of tax regions.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of tax regions.",
                      "required": [
                        "tax_regions"
                      ],
                      "properties": {
                        "tax_regions": {
                          "type": "array",
                          "description": "The list of tax regions.",
                          "items": {
                            "type": "object"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostTaxRegions",
        "summary": "Create Tax Region",
        "description": "Create a tax region.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateTaxRegion"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.taxRegion.create({\n  country_code: \"us\",\n  province_code: \"ca\",\n  default_tax_rate: {\n    code: \"VAT\",\n    name: \"VAT\",\n    rate: 20, // 20%\n    is_combinable: true,\n  },\n})\n.then(({ tax_region }) => {\n  console.log(tax_region)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/tax-regions' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"country_code\": \"{value}\",\n  \"province_code\": \"us-ca\",\n  \"parent_id\": \"{value}\",\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Admin Tax Regions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminTaxRegionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createTaxRegionsWorkflow",
        "x-events": []
      }
    },
    "/admin/tax-regions/{id}": {
      "get": {
        "operationId": "AdminGetTaxRegionsId",
        "summary": "Get a Tax Region",
        "description": "Retrieve a tax region by its ID. You can expand the tax region's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The tax region's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.taxRegion.retrieve(\"txreg_123\")\n.then(({ tax_region }) => {\n  console.log(tax_region)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/tax-regions/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Tax Regions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminTaxRegionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "AdminPostTaxRegionsId",
        "summary": "Update a Tax Region",
        "description": "Update a tax region's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The tax region's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateTaxRegion"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.taxRegion.update(\"txreg_123\", {\n  province_code: \"ca\",\n})\n.then(({ tax_region }) => {\n  console.log(tax_region)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/tax-regions/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Tax Regions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminTaxRegionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateTaxRegionsWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "AdminDeleteTaxRegionsId",
        "summary": "Delete a Tax Region",
        "description": "Delete a tax region.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The tax region's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.taxRegion.delete(\"txreg_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/tax-regions/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Tax Regions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminTaxRegionDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteTaxRegionsWorkflow",
        "x-events": []
      }
    },
    "/admin/transaction-groups": {
      "get": {
        "operationId": "AdminGetTransactionGroups",
        "summary": "List Transaction Groups",
        "description": "Retrieve a list of transaction groups. The transaction groups can be filtered by fields such as `id`. The transaction groups can also be sorted or paginated.",
        "x-authenticated": true,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by the transaction group's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by the transaction group IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A transaction group's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "code",
                  "description": "Filter by the transaction group's code."
                },
                {
                  "type": "array",
                  "description": "Filter by the transaction group codes.",
                  "items": {
                    "type": "string",
                    "title": "code",
                    "description": "A transaction group's code."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a transaction group's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a transaction group's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              }
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a transaction group's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a transaction group's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/transaction-groups' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Transaction Groups"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminTransactionGroupsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      }
    },
    "/admin/translations": {
      "get": {
        "operationId": "AdminGetTranslations",
        "summary": "List Translations",
        "description": "Retrieve a list of translations. The translations can be filtered by fields such as `reference_id` (For example, the ID of a product). The translations can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "Search query to filter translations by their fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search query to filter translations by their fields."
            }
          },
          {
            "name": "reference_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "reference_id",
                  "description": "Filter translations by a reference ID. For example, the ID of a product.",
                  "example": "prod_123"
                },
                {
                  "type": "array",
                  "description": "Filter translations by multiple reference IDs. For example, the IDs of products.",
                  "items": {
                    "type": "string",
                    "title": "reference_id",
                    "description": "The reference ID's details. For example, the ID of a product.",
                    "example": "prod_123"
                  }
                }
              ]
            }
          },
          {
            "name": "reference",
            "in": "query",
            "description": "Filter translations by the resource they belong to. For example, `product` or `product_variant`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "reference",
              "description": "Filter translations by the resource they belong to. For example, `product` or `product_variant`."
            }
          },
          {
            "name": "locale_code",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "locale_code",
                  "description": "Filter translations by a locale code in BCP 47 format.",
                  "example": "fr-FR"
                },
                {
                  "type": "array",
                  "description": "Filter translations by multiple locale codes in BCP 47 format.",
                  "items": {
                    "type": "string",
                    "title": "locale_code",
                    "description": "A locale code in BCP 47 format.",
                    "example": "fr-FR"
                  }
                }
              ]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "The translation's with deleted.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "The translation's with deleted."
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.translation.list()\n.then(({ translations, count, limit, offset }) => {\n  console.log(translations)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/translations' \\\n-H 'Authorization: Bearer {access_token}'"
          }
        ],
        "tags": [
          "Admin Translations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The list of translations with pagination.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of translations returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of translations skipped before retrieving the returned translations."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of translations matching the query."
                        },
                        "estimate_count": {
                          "type": "number",
                          "title": "estimate_count",
                          "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
                          "x-featureFlag": "index_engine"
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "SUMMARY",
                      "required": [
                        "translations"
                      ],
                      "properties": {
                        "translations": {
                          "type": "array",
                          "description": "The list of translations.",
                          "items": {
                            "$ref": "#/components/schemas/AdminTranslation"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.12.3",
        "x-featureFlag": "translation"
      }
    },
    "/admin/translations/batch": {
      "post": {
        "operationId": "AdminPostTranslationsBatch",
        "summary": "Manage Translations",
        "description": "Manage translations in bulk by creating, updating, or deleting multiple translations in a single request. You can manage translations for various resources such as products, product variants, categories, and more.",
        "x-authenticated": true,
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "The translations to be created, updated, or deleted in bulk.",
                "properties": {
                  "create": {
                    "type": "array",
                    "description": "The translations to create.",
                    "items": {
                      "type": "object",
                      "description": "The translation's details.",
                      "required": [
                        "reference",
                        "reference_id",
                        "locale_code",
                        "translations"
                      ],
                      "properties": {
                        "reference": {
                          "type": "string",
                          "title": "reference",
                          "description": "The resource that the translation belongs to.",
                          "example": "product"
                        },
                        "reference_id": {
                          "type": "string",
                          "title": "reference_id",
                          "description": "The ID of the resource that the translation belongs to. For example, the ID of a product.",
                          "example": "prod_123"
                        },
                        "locale_code": {
                          "type": "string",
                          "title": "locale_code",
                          "description": "The translation's locale code in BCP 47 format.",
                          "example": "fr-FR"
                        },
                        "translations": {
                          "type": "object",
                          "description": "The translation key-value pairs. Each key is a field in the resource, and the value is the translated text.",
                          "example": {
                            "title": "Chaussures",
                            "description": "Des chaussures élégantes."
                          }
                        }
                      }
                    }
                  },
                  "update": {
                    "type": "array",
                    "description": "The translations to update.",
                    "items": {
                      "type": "object",
                      "description": "The data for updating a translation.",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "title": "id",
                          "description": "The ID of the translation to update."
                        },
                        "reference": {
                          "type": "string",
                          "title": "reference",
                          "description": "The resource that the translation belongs to.",
                          "example": "product"
                        },
                        "reference_id": {
                          "type": "string",
                          "title": "reference_id",
                          "description": "The ID of the resource that the translation belongs to. For example, the ID of a product.",
                          "example": "prod_123"
                        },
                        "locale_code": {
                          "type": "string",
                          "title": "locale_code",
                          "description": "The translation's locale code in BCP 47 format.",
                          "example": "fr-FR"
                        },
                        "translations": {
                          "type": "object",
                          "description": "The translation key-value pairs. Each key is a field in the resource, and the value is the translated text.",
                          "example": {
                            "title": "Chaussures Modifiées",
                            "description": "Des chaussures élégantes et modifiées."
                          }
                        }
                      }
                    }
                  },
                  "delete": {
                    "type": "array",
                    "description": "The translations to delete.",
                    "items": {
                      "type": "string",
                      "title": "delete",
                      "description": "The ID of a translation to delete."
                    }
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.translation.batch({\n  create: [\n    {\n      reference_id: \"prod_123\",\n      reference: \"product\",\n      locale_code: \"en-US\",\n      translations: { title: \"Shirt\" }\n    }\n  ],\n  update: [\n    {\n      id: \"trans_123\",\n      translations: { title: \"Pants\" }\n    }\n  ],\n  delete: [\"trans_321\"]\n})\n.then(({ created, updated, deleted }) => {\n  console.log(created, updated, deleted)\n})\n```"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/translations/batch' \\\n-H 'Authorization: Bearer {access_token}' \\\n-H 'Content-Type: application/json' \\\n-d '{\n  \"create\": [\n    {\n      \"reference\": \"product\",\n      \"reference_id\": \"prod_123\",\n      \"locale_code\": \"fr-FR\",\n      \"translations\": {\n        \"title\": \"Chaussures\",\n        \"description\": \"Des chaussures élégantes.\"\n      }\n    }\n  ]\n}'"
          }
        ],
        "tags": [
          "Admin Translations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminTranslationsBatchResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchTranslationsWorkflow",
        "x-events": [
          {
            "name": "translation.created",
            "payload": "```ts\n{\n  id, // The ID of the translation\n}\n```",
            "description": "Emitted when translations are created.",
            "deprecated": false,
            "since": "2.12.3"
          },
          {
            "name": "translation.updated",
            "payload": "```ts\n{\n  id, // The ID of the translation\n}\n```",
            "description": "Emitted when translations are updated.",
            "deprecated": false,
            "since": "2.12.3"
          },
          {
            "name": "translation.deleted",
            "payload": "```ts\n{\n  id, // The ID of the translation\n}\n```",
            "description": "Emitted when translations are deleted.",
            "deprecated": false,
            "since": "2.12.3"
          }
        ],
        "x-since": "2.12.3",
        "x-featureFlag": "translation"
      }
    },
    "/admin/translations/entities": {
      "get": {
        "operationId": "AdminGetTranslationsEntities",
        "summary": "List Translatable Entities",
        "description": "Retrieve a list of translatable entities. The entities can be filtered by fields such as `id`. The entities can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "description": "Filter by a translatable entity type.",
            "required": true,
            "schema": {
              "type": "string",
              "title": "type",
              "description": "Filter by a translatable entity type.",
              "example": "product"
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by an entity's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by entity IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "An entity's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "The translation's with deleted.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "The translation's with deleted."
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.translation.entities({\n  type: \"product\"\n})\n.then(({ data, count, offset, limit }) => {\n  console.log(data)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/translations/entities' \\\n-H 'Authorization: Bearer {access_token}'"
          }
        ],
        "tags": [
          "Admin Translations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminTranslationEntitiesResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.12.4",
        "x-featureFlag": "translation"
      }
    },
    "/admin/translations/settings": {
      "get": {
        "operationId": "AdminGetTranslationsSettings",
        "summary": "List Translation Settings",
        "x-sidebar-summary": "List Settings",
        "description": "Retrieve the list of translatable fields for all entities, such as products and collections. You can also filter the results by entity type or active entities.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "entity_type",
            "in": "query",
            "description": "The entity to retrieve translation settings for.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "entity_type",
              "description": "The entity to retrieve translation settings for.",
              "example": "product"
            }
          },
          {
            "name": "is_active",
            "in": "query",
            "description": "Filter resources by whether translations is activated for them or not. If not provided, all resources are returned.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "is_active",
              "description": "Filter resources by whether translations is activated for them or not. If not provided, all resources are returned."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.translation.settings({\n  entity_type: \"product\"\n})\n.then(({ translation_settings }) => {\n  console.log(translation_settings)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/translations/settings' \\\n-H 'Authorization: Bearer {access_token}'"
          }
        ],
        "tags": [
          "Admin Translations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminTranslationSettingsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.12.3",
        "x-featureFlag": "translation"
      }
    },
    "/admin/translations/settings/batch": {
      "post": {
        "operationId": "AdminPostTranslationsSettingsBatch",
        "summary": "Manage Translation Settings",
        "description": "Create, update, or delete multiple translation settings.",
        "x-authenticated": true,
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBatchTranslationSettings"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.translation.batchSettings({\n  create: [\n    {\n      entity_type: \"product\",\n      fields: [\"title\", \"description\"],\n      is_active: true\n    }\n  ],\n  update: [\n    {\n      id: \"trset_123\",\n      fields: [\"title\", \"description\", \"subtitle\"],\n      is_active: true\n    }\n  ],\n  delete: [\"trset_456\"]\n})\n.then(({ created, updated, deleted }) => {\n  console.log(created, updated, deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/translations/settings/batch' \\\n-H 'Authorization: Bearer {access_token}'"
          }
        ],
        "tags": [
          "Admin Translations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminBatchTranslationSettingsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "batchTranslationSettingsWorkflow",
        "x-events": [],
        "x-since": "2.13.0",
        "x-featureFlag": "translation"
      }
    },
    "/admin/translations/statistics": {
      "get": {
        "operationId": "AdminGetTranslationsStatistics",
        "summary": "Retrieve Translation Statistics",
        "x-sidebar-summary": "Get Statistics",
        "description": "Get statistics on translations for specified locales and entity types. This includes overall translation progress for each entity type, and statistics for each locale within those entity types.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "locales",
            "in": "query",
            "description": "The locale codes to retrieve translation statistics for. Locale codes are in [BCP 47](https://gist.github.com/typpo/b2b828a35e683b9bf8db91b5404f1bd1) format.",
            "required": true,
            "schema": {
              "type": "array",
              "description": "The locale codes to retrieve translation statistics for.",
              "items": {
                "type": "string",
                "title": "locales",
                "description": "A locale code in [BCP 47](https://gist.github.com/typpo/b2b828a35e683b9bf8db91b5404f1bd1) format.",
                "example": "fr-FR"
              }
            }
          },
          {
            "name": "entity_types",
            "in": "query",
            "description": "The table names of entities to retrieve translation statistics for.",
            "required": true,
            "schema": {
              "type": "array",
              "description": "The table names of entities to retrieve translation statistics for.",
              "items": {
                "type": "string",
                "title": "entity_types",
                "description": "The table name of an entity.",
                "example": "products"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.translation.statistics({\n  entity_type: \"product\"\n})\n.then(({ statistics }) => {\n  console.log(statistics)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/translations/statistics' \\\n-H 'Authorization: Bearer {access_token}'"
          }
        ],
        "tags": [
          "Admin Translations"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminTranslationStatisticsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.12.3",
        "x-featureFlag": "translation"
      }
    },
    "/admin/uploads": {
      "post": {
        "operationId": "AdminPostUploads",
        "summary": "Upload Files",
        "description": "Upload files to the configured File Module Provider.",
        "x-authenticated": true,
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "object",
                    "description": "The files to upload",
                    "required": [
                      "files"
                    ],
                    "properties": {
                      "files": {
                        "type": "array",
                        "description": "The upload's files.",
                        "items": {
                          "oneOf": [
                            {
                              "type": "object",
                              "description": "The file's files.",
                              "required": [
                                "name",
                                "content"
                              ],
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "title": "name",
                                  "description": "The file's name."
                                },
                                "content": {
                                  "type": "string",
                                  "title": "content",
                                  "description": "The file's content."
                                }
                              }
                            },
                            {
                              "type": "object",
                              "description": "A File to upload.",
                              "externalDocs": {
                                "url": "https://developer.mozilla.org/en-US/docs/Web/API/File",
                                "description": "Learn more about the File API"
                              },
                              "title": "files"
                            }
                          ]
                        }
                      }
                    }
                  },
                  {
                    "type": "array",
                    "description": "list of files to upload.",
                    "items": {
                      "type": "object",
                      "description": "A File to upload.",
                      "externalDocs": {
                        "url": "https://developer.mozilla.org/en-US/docs/Web/API/File",
                        "description": "Learn more about the File API"
                      }
                    },
                    "title": "FileList"
                  }
                ],
                "description": "The files to upload."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.upload.create(\n  {\n    files: [\n       // file uploaded as a binary string\n      {\n        name: \"test.txt\",\n        content: \"test\", // Should be the binary string of the file\n      },\n      // file uploaded as a File object\n      new File([\"test\"], \"test.txt\", { type: \"text/plain\" })\n    ],\n  }\n)\n.then(({ files }) => {\n  console.log(files)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/uploads' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Uploads"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminFileListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "uploadFilesWorkflow",
        "x-events": []
      }
    },
    "/admin/uploads/presigned-urls": {
      "post": {
        "operationId": "AdminPostUploadsPresignedUrls",
        "summary": "Get Presigned Upload URL",
        "description": "Get a presigned URL for uploading a file to the configured File Module Provider. The presigned URL can be used to upload files directly to the third-party provider. This only works if your configured provider supports presigned URLs, such as the S3 provider.",
        "x-authenticated": true,
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUploadPreSignedUrl"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.upload.presignedUrl({\n  name: \"test.txt\",\n  size: 1000,\n  type: \"text/plain\",\n}))"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/uploads/presigned-urls' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"originalname\": \"{value}\",\n  \"size\": 43,\n  \"mime_type\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Uploads"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminUploadPreSignedUrlResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/uploads/{id}": {
      "get": {
        "operationId": "AdminGetUploadsId",
        "summary": "Get a File",
        "description": "Retrieve an uploaded file by its ID. You can expand the file's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The upload's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.upload.retrieve(\"test.txt\")\n.then(({ file }) => {\n  console.log(file)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/uploads/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Uploads"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminFileResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "delete": {
        "operationId": "AdminDeleteUploadsId",
        "summary": "Delete a File",
        "description": "Delete a file. Uses the installed file module provider to delete the file.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The file's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.upload.delete(\"test.txt\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/uploads/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Uploads"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The deletion's details.",
                  "required": [
                    "id",
                    "object",
                    "deleted"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The file's ID."
                    },
                    "object": {
                      "type": "string",
                      "title": "object",
                      "description": "The name of the deleted object.",
                      "default": "file"
                    },
                    "deleted": {
                      "type": "boolean",
                      "title": "deleted",
                      "description": "Whether the file was deleted."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteFilesWorkflow",
        "x-events": []
      }
    },
    "/admin/users": {
      "get": {
        "operationId": "AdminGetUsers",
        "summary": "List Users",
        "description": "Retrieve a list of users. The users can be filtered by fields such as `id`. The users can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "The search term to filter the user's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "The search term to filter the user's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a user's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by user IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A user's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "email",
            "in": "query",
            "description": "Filter by an email.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "email",
              "description": "Filter by an email.",
              "format": "email"
            }
          },
          {
            "name": "first_name",
            "in": "query",
            "description": "Filter by a first name.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "first_name",
              "description": "Filter by a first name."
            }
          },
          {
            "name": "last_name",
            "in": "query",
            "description": "Filter by a last name.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "last_name",
              "description": "Filter by a last name."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a user's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a user's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a user's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a user's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "deleted_at",
            "in": "query",
            "description": "Filter by a user's deletion date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a user's deletion date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "deleted_at"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.user.list()\n.then(({ users, count, limit, offset }) => {\n  console.log(users)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/users'"
          }
        ],
        "tags": [
          "Admin Users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminUserListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ]
      }
    },
    "/admin/users/me": {
      "get": {
        "operationId": "AdminGetUsersMe",
        "summary": "Get Logged-In User",
        "description": "Retrieve the logged-in user's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.user.me()\n.then(({ user }) => {\n  console.log(user)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/users/me'"
          }
        ],
        "tags": [
          "Admin Users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminUserResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ]
      }
    },
    "/admin/users/{id}": {
      "get": {
        "operationId": "AdminGetUsersId",
        "summary": "Get a User",
        "description": "Retrieve a user by its ID. You can expand the user's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The user's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.user.retrieve(\"user_123\")\n.then(({ user }) => {\n  console.log(user)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/users/{id}'"
          }
        ],
        "tags": [
          "Admin Users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminUserResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ]
      },
      "post": {
        "operationId": "AdminPostUsersId",
        "summary": "Update a User",
        "description": "Update a user's details.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The user's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateUser"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.user.update(\"user_123\", {\n  first_name: \"John\",\n  last_name: \"Doe\",\n})\n.then(({ user }) => {\n  console.log(user)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/users/{id}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"first_name\": \"{value}\",\n  \"last_name\": \"{value}\",\n  \"avatar_url\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminUserResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateUsersWorkflow",
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-events": [
          {
            "name": "user.updated",
            "payload": "```ts\n{\n  id, // The ID of the user\n}\n```",
            "description": "Emitted when users are updated.",
            "deprecated": false
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteUsersId",
        "summary": "Delete a User",
        "description": "Delete a user.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The user's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.user.delete(\"user_123\")\n.then(({ deleted }) => {\n  console.log(deleted)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/users/{id}'"
          }
        ],
        "tags": [
          "Admin Users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminUserDeleteResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "removeUserAccountWorkflow",
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-events": [
          {
            "name": "user.deleted",
            "payload": "```ts\n{\n  id, // The ID of the user\n}\n```",
            "description": "Emitted when users are deleted.",
            "deprecated": false
          }
        ]
      }
    },
    "/admin/views/{entity}/columns": {
      "get": {
        "operationId": "AdminGetViewsEntityColumns",
        "summary": "List Columns in View",
        "x-sidebar-summary": "List Columns",
        "description": "Retrieve a list of columns in a view for an entity. The columns are retrieved for the authenticated admin user.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "entity",
            "in": "path",
            "description": "The entity to retrieve its columns (for example, `orders`)",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/views/{entity}/columns' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Views"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminViewsEntityColumnsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.10.3",
        "x-featureFlag": "view_configurations"
      }
    },
    "/admin/views/{entity}/configurations": {
      "get": {
        "operationId": "AdminGetViewsEntityConfigurations",
        "summary": "List View Configurations",
        "description": "Retrieve a list of view configurations of an entity. The configurations can be filtered by fields like `id`. The configurations can also be paginated. An admin user can only retrieve their own configurations.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "entity",
            "in": "path",
            "description": "The entity to retrieve its view configurations (for example, `orders`)",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a view configuration ID."
                },
                {
                  "type": "array",
                  "description": "Filter by view configuration IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "The view configuration ID."
                  }
                }
              ]
            }
          },
          {
            "name": "entity",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "entity",
                  "description": "Filter by an entity."
                },
                {
                  "type": "array",
                  "description": "Filter by entities.",
                  "items": {
                    "type": "string",
                    "title": "entity",
                    "description": "An entity."
                  }
                }
              ]
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "name",
                  "description": "Filter by a view's name."
                },
                {
                  "type": "array",
                  "description": "Filter by view names.",
                  "items": {
                    "type": "string",
                    "title": "name",
                    "description": "The view's name."
                  }
                }
              ]
            }
          },
          {
            "name": "user_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "user_id",
                  "description": "Filter by the ID of the user who owns the view."
                },
                {
                  "type": "array",
                  "description": "Filter by the IDs of users who own the view.",
                  "items": {
                    "type": "string",
                    "title": "user_id",
                    "description": "The user ID."
                  }
                }
              ]
            }
          },
          {
            "name": "is_system_default",
            "in": "query",
            "description": "Filter by whether the view is a system default.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "is_system_default",
              "description": "Whether the view is a system default."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a view configuration's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a view configuration's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a view configuration's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a view configuration's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/views/{entity}/configurations' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Views"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The list of view configurations.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of returned items."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        },
                        "estimate_count": {
                          "type": "number",
                          "title": "estimate_count",
                          "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
                          "x-featureFlag": "index_engine"
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The list of view configurations.",
                      "required": [
                        "view_configurations"
                      ],
                      "properties": {
                        "view_configurations": {
                          "type": "array",
                          "description": "The list of view configurations.",
                          "items": {
                            "$ref": "#/components/schemas/AdminViewConfiguration"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.10.3",
        "x-featureFlag": "view_configurations"
      },
      "post": {
        "operationId": "AdminPostViewsEntityConfigurations",
        "summary": "Create View Configuration",
        "description": "Create a new view configuration for an entity. If `is_system_default` is set to true, the created configuration will be set as the system default for the specified entity. Otherwise, it will be a custom configuration for the admin user.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "entity",
            "in": "path",
            "description": "The entity to create its view configuration (for example, `orders`).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateViewConfiguration"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/views/{entity}/configurations' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n-d '{\n  \"is_system_default\": true,\n  \"name\": \"Custom View\"\n}'"
          }
        ],
        "tags": [
          "Admin Views"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminViewConfigurationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createViewConfigurationWorkflow",
        "x-events": [],
        "x-since": "2.10.3",
        "x-featureFlag": "view_configurations"
      }
    },
    "/admin/views/{entity}/configurations/active": {
      "get": {
        "operationId": "AdminGetViewsEntityConfigurationsActive",
        "summary": "Get Active View Configuration",
        "description": "Get the active view configurations for an entity. If no active view is set, `null` is returned. An admin user can only retrieve their own active configuration.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "entity",
            "in": "path",
            "description": "The entity to retrieve its active view configurations (for example, `orders`).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/views/{entity}/configurations/active' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Views"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/AdminViewConfigurationResponse"
                    },
                    {
                      "type": "object",
                      "description": "Additional properties related to the active view configuration.",
                      "properties": {
                        "is_default_active": {
                          "type": "boolean",
                          "title": "is_default_active",
                          "description": "Whether the active view configuration is the system default."
                        },
                        "default_type": {
                          "type": "string",
                          "description": "The type of the default view configuration if the active view is the system default. It will be `system` if the active view is the system default, `code` if no active view is set, or `undefined` if the active view isn't the system default.",
                          "enum": [
                            "code",
                            "system"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.10.3",
        "x-featureFlag": "view_configurations"
      },
      "post": {
        "operationId": "AdminPostViewsEntityConfigurationsActive",
        "summary": "Make View Configuration Active",
        "description": "Make a view configuration active. This will set the given view configuration as the active one for the specified entity for the admin user. An admin user can only set their own configurations as active. If the view configuration ID is `null`, the active view configuration will be cleared, and the `code` or system default view configuration type will be used as the active view.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "entity",
            "in": "path",
            "description": "The entity to update its view configuration (for example, `orders`).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminSetActiveViewConfiguration"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/views/{entity}/configurations/active' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"view_configuration_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Views"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The details of the operation.",
                  "required": [
                    "success"
                  ],
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "title": "success",
                      "description": "Whether the operation was successful."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.10.3",
        "x-featureFlag": "view_configurations"
      }
    },
    "/admin/views/{entity}/configurations/{id}": {
      "get": {
        "operationId": "AdminGetViewsEntityConfigurationsId",
        "summary": "Get View Configuration",
        "description": "Retrieve a view configuration for an entity. An admin user can only retrieve their own configurations.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "entity",
            "in": "path",
            "description": "The entity to retrieve its view configurations (for example, `orders`)",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the view configuration to retrieve.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/views/{entity}/configurations/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Views"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminViewConfigurationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.10.3",
        "x-featureFlag": "view_configurations"
      },
      "post": {
        "operationId": "AdminPostViewsEntityConfigurationsId",
        "summary": "Update View Configuration",
        "description": "Update the view configuration of an entity. An admin user can only update their own configurations.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "entity",
            "in": "path",
            "description": "The entity to update its view configuration (for example, `orders`).",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The view configuration's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateViewConfiguration"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/views/{entity}/configurations/{id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n-d '{\n  \"is_system_default\": true\n}'"
          }
        ],
        "tags": [
          "Admin Views"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminViewConfigurationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateViewConfigurationWorkflow",
        "x-events": [],
        "x-since": "2.10.3",
        "x-featureFlag": "view_configurations"
      },
      "delete": {
        "operationId": "AdminDeleteViewsEntityConfigurationsId",
        "summary": "Remove View Configurations",
        "description": "Remove view configurations of an entity. An admin user can only delete their own configurations.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "entity",
            "in": "path",
            "description": "The entity to delete its view configuration (for example, `orders`)",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the view configuration to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/admin/views/{entity}/configurations/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Views"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The details of the deletion operation.",
                  "required": [
                    "id",
                    "object",
                    "deleted"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The ID of the deleted View Configuration."
                    },
                    "object": {
                      "type": "string",
                      "title": "object",
                      "description": "The name of the deleted object.",
                      "example": "view_configuration"
                    },
                    "deleted": {
                      "type": "boolean",
                      "title": "deleted",
                      "description": "Whether the view was deleted."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.10.3",
        "x-featureFlag": "view_configurations"
      }
    },
    "/admin/workflows-executions": {
      "get": {
        "operationId": "AdminGetWorkflowsExecutions",
        "summary": "List Workflows Executions",
        "description": "Retrieve a list of workflows executions. The workflows executions can be filtered by fields such as `id`. The workflows executions can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "transaction_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "transaction_id",
                  "description": "Filter by a transaction ID."
                },
                {
                  "type": "array",
                  "description": "Filter by transaction IDs.",
                  "items": {
                    "type": "string",
                    "title": "transaction_id",
                    "description": "A transaction ID."
                  }
                }
              ]
            }
          },
          {
            "name": "workflow_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "workflow_id",
                  "description": "Filter by a workflow ID."
                },
                {
                  "type": "array",
                  "description": "Filter by workflow IDs.",
                  "items": {
                    "type": "string",
                    "title": "workflow_id",
                    "description": "A workflow ID."
                  }
                }
              ]
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search query to filter by a workflow execution's searchable fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search query to filter by a workflow execution's searchable fields."
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.workflowExecution.list()\n.then(({ workflow_executions, count, limit, offset }) => {\n  console.log(workflow_executions)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/workflows-executions' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Workflows Executions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of workflow executions.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of workflow executions.",
                      "required": [
                        "workflow_executions"
                      ],
                      "properties": {
                        "workflow_executions": {
                          "type": "array",
                          "description": "The workflows execution's workflow executions.",
                          "items": {
                            "$ref": "#/components/schemas/AdminWorkflowExecution"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/workflows-executions/{id}": {
      "get": {
        "operationId": "AdminGetWorkflowsExecutionsId",
        "summary": "Get a Workflows Execution",
        "description": "Retrieve a workflows execution by its ID. You can expand the workflows execution's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The workflows execution's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.admin.workflowExecution.retrieve(\"wrk_123\")\n.then(({ workflow_execution }) => {\n  console.log(workflow_execution)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/workflows-executions/{id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Workflows Executions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminWorkflowExecutionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/workflows-executions/{workflow_id}/run": {
      "post": {
        "operationId": "AdminPostWorkflowsExecutionsWorkflow_idRun",
        "summary": "Execute a Workflow",
        "description": "Execute a workflow by its ID.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "workflow_id",
            "in": "path",
            "description": "The workflow's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateWorkflowsRun"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/workflows-executions/{workflow_id}/run' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Workflows Executions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The execution's details.",
                  "required": [
                    "acknowledgement"
                  ],
                  "properties": {
                    "acknowledgement": {
                      "type": "object",
                      "description": "The workflow's details",
                      "required": [
                        "workflowId",
                        "transactionId",
                        "hasFinished",
                        "hasFailed"
                      ],
                      "properties": {
                        "workflowId": {
                          "type": "string",
                          "description": "The ID of the executed workflow.",
                          "title": "workflowId"
                        },
                        "transactionId": {
                          "type": "string",
                          "description": "The ID of the workflow exection's transaction. Use this later to track the workflow execution's progress or succeed / fail its steps.",
                          "title": "transactionId"
                        },
                        "parentStepIdempotencyKey": {
                          "type": "string",
                          "title": "parentStepIdempotencyKey",
                          "description": "The idempotency key of the workflow execution."
                        },
                        "hasFinished": {
                          "type": "boolean",
                          "title": "hasFinished",
                          "description": "Whether the workflow execution has finished."
                        },
                        "hasFailed": {
                          "type": "boolean",
                          "title": "hasFailed",
                          "description": "Whether the workflow execution has failed."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/workflows-executions/{workflow_id}/steps/failure": {
      "post": {
        "operationId": "AdminPostWorkflowsExecutionsWorkflow_idStepsFailure",
        "summary": "Fail a Step in a Workflow's Execution",
        "x-sidebar-summary": "Fail a Step",
        "description": "Set the status of a step in a workflow's execution as failed. This is useful for long-running workflows.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "workflow_id",
            "in": "path",
            "description": "The workflows execution's workflow id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateWorkflowsAsyncResponse"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/workflows-executions/{workflow_id}/steps/failure' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"transaction_id\": \"{value}\",\n  \"step_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Workflows Executions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The details of failing the workflow step.",
                  "required": [
                    "success"
                  ],
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "title": "success",
                      "description": "Whether the workflow step has failed successfully."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/workflows-executions/{workflow_id}/steps/success": {
      "post": {
        "operationId": "AdminPostWorkflowsExecutionsWorkflow_idStepsSuccess",
        "summary": "Succeed a Step in a Workflow's Execution",
        "x-sidebar-summary": "Succed a Step",
        "description": "Set the status of a step in a workflow's execution as successful. This is useful for long-running workflows.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "workflow_id",
            "in": "path",
            "description": "The workflows execution's workflow id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateWorkflowsAsyncResponse"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/admin/workflows-executions/{workflow_id}/steps/success' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"transaction_id\": \"{value}\",\n  \"step_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Admin Workflows Executions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The details of succeeding the workflow step.",
                  "required": [
                    "success"
                  ],
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "title": "success",
                      "description": "Whether the workflow step was succeeded."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/workflows-executions/{workflow_id}/subscribe": {
      "get": {
        "operationId": "AdminGetWorkflowsExecutionsWorkflow_idSubscribe",
        "summary": "Subscribe to a Workflow's Execution",
        "x-sidebar-summary": "Subscribe to Workflow",
        "description": "Subscribe to a workflow's execution to receive real-time information about its steps, status, and data.\nThis route returns an event stream that you can consume using the [EventSource API](https://developer.mozilla.org/en-US/docs/Web/API/EventSource).\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "workflow_id",
            "in": "path",
            "description": "The workflows execution's workflow id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/workflows-executions/{workflow_id}/subscribe' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Workflows Executions"
        ],
        "responses": {
          "200": {
            "description": "Stream of the step's status.",
            "content": {
              "text/event-stream": {
                "schema": {
                  "type": "string",
                  "description": "The step's status update and data changes.",
                  "example": "event: success\n data: {}"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/workflows-executions/{workflow_id}/{transaction_id}": {
      "get": {
        "operationId": "AdminGetWorkflowsExecutionsWorkflow_idTransaction_id",
        "summary": "Get Workflow Execution's Details",
        "x-sidebar-summary": "Get Exection",
        "description": "Get the details of the workflow's execution.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "workflow_id",
            "in": "path",
            "description": "The workflows execution's workflow id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "transaction_id",
            "in": "path",
            "description": "The workflows execution's transaction id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/workflows-executions/{workflow_id}/{transaction_id}' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Workflows Executions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminWorkflowExecutionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/admin/workflows-executions/{workflow_id}/{transaction_id}/{step_id}/subscribe": {
      "get": {
        "operationId": "AdminGetWorkflowsExecutionsWorkflow_idTransaction_idStep_idSubscribe",
        "summary": "Subscribe to Step of a Workflow's Execution",
        "x-sidebar-summary": "Subscribe to Step",
        "description": "Subscribe to a step in a workflow's execution to receive real-time information about its status and data.\nThis route returns an event stream that you can consume using the [EventSource API](https://developer.mozilla.org/en-US/docs/Web/API/EventSource).\n",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "workflow_id",
            "in": "path",
            "description": "The workflows execution's workflow id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "transaction_id",
            "in": "path",
            "description": "The workflows execution's transaction id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "step_id",
            "in": "path",
            "description": "The workflows execution's step id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/admin/workflows-executions/{workflow_id}/{transaction_id}/{step_id}/subscribe' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Admin Workflows Executions"
        ],
        "responses": {
          "200": {
            "description": "Stream of the step's status.",
            "content": {
              "text/event-stream": {
                "schema": {
                  "type": "string",
                  "description": "The step's status update and data changes.",
                  "example": "event: success\n data: {}"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/auth/session": {
      "post": {
        "operationId": "StorePostSession",
        "summary": "Set Authentication Session",
        "description": "Set the cookie session ID of a customer. The customer must be previously authenticated with the `/auth/customer/{provider}` API route first, as the JWT token is required in the header of the request.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/customers/login#2-using-a-cookie-session",
          "description": "Storefront development: How to login as a customer"
        },
        "x-authenticated": true,
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/auth/session' \\\n-H 'Authorization: Bearer {jwt_token}'"
          }
        ],
        "tags": [
          "Store Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthStoreSessionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "delete": {
        "operationId": "StoreDeleteSession",
        "summary": "Delete Authentication Session",
        "description": "Deletes the cookie session ID previously set for authentication.",
        "x-authenticated": true,
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nawait sdk.auth.logout()\n\n// customer is now logged out\n// you can't send any requests that require authentication"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/auth/session' \\\n-H 'Cookie: connect.sid={sid}'"
          }
        ],
        "tags": [
          "Store Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The deletion's details.",
                  "required": [
                    "success"
                  ],
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "title": "success",
                      "description": "Whether the session was deleted successfully."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/auth/token/refresh": {
      "post": {
        "operationId": "StorePostAdminAuthTokenRefresh",
        "summary": "Refresh Authentication Token",
        "description": "Refresh the authentication token of a customer. This is useful after authenticating a customer with a third-party service to ensure the token holds the new user's details, or when you don't want customers to re-login every day.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/customers/third-party-login",
          "description": "Storefront development: Implement third-party (social) login."
        },
        "x-authenticated": true,
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nconst token = await sdk.auth.refresh()\n\n// all subsequent requests will use the token in the header\nconst { customer } = await sdk.store.customer.retrieve()"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/auth/token/refresh' \\\n-H 'Authorization: Bearer {token}'"
          }
        ],
        "tags": [
          "Store Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/auth/user/{auth_provider}": {
      "post": {
        "operationId": "AdminPostActor_typeAuth_provider",
        "summary": "Authenticate User",
        "description": "Authenticate a user and receive the JWT token to be used in the header of subsequent requests.\n\nWhen used with a third-party provider, such as Google, the request returns a `location` property. You redirect to the specified URL in your frontend to continue authentication with the third-party service.\n",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/commerce-modules/auth/authentication-route#types-of-authentication-flows",
          "description": "Learn about different authentication flows."
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "auth_provider",
            "in": "path",
            "description": "The provider used for authentication.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "emailpass"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "title": "input",
                "description": "The input data necessary for authentication. \nFor example, for email-pass authentication, pass `email` and `password` properties. \nFor the Google and GitHub authentication providers, you can pass `callback_url` to indicate the URL in the frontend that the user should be redirected to after completing their authentication. This will override the provider's `callbackUrl` configurations in `medusa-config.ts`.\n"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nconst result = await sdk.auth.login(\n  \"user\",\n  \"emailpass\",\n  {\n    email: \"user@gmail.com\",\n    password: \"supersecret\"\n  }\n)\n\nif (typeof result !== \"string\") {\n  alert(\"Authentication requires additional steps\")\n  // replace with the redirect logic of your application\n  window.location.href = result.location\n  return\n}\n\n// user is now authenticated\n// all subsequent requests will use the token in the header\nconst { user } = await sdk.admin.user.me()"
          },
          {
            "lang": "Bash",
            "label": "Google Provider",
            "source": "curl -X POST '{backend_url}/auth/user/google'"
          }
        ],
        "tags": [
          "Admin Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/AuthResponse"
                    },
                    {
                      "$ref": "#/components/schemas/AuthCallbackResponse"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/auth/user/{auth_provider}/callback": {
      "post": {
        "operationId": "AdminPostActor_typeAuth_providerCallback",
        "summary": "Validate Authentication Callback",
        "description": "This API route is used by your dashboard or frontend application when a third-party provider redirects to it after authentication. It validates the authentication with the third-party provider and, if successful, returns an authentication token. All query parameters received from the third-party provider, such as `code`, `state`, and `error`, must be passed as query parameters to this route.\n\nYou can decode the JWT token using libraries like [react-jwt](https://www.npmjs.com/package/react-jwt) in the frontend. If the decoded data doesn't  have an `actor_id` property, then you must create a user, typically using the Accept Invite route passing the token in the request's Authorization header.\n",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/commerce-modules/auth/authentication-route#2-third-party-service-authenticate-flow",
          "description": "Learn about third-party authentication flow."
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "auth_provider",
            "in": "path",
            "description": "The provider used for authentication.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "google"
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "Google Provider",
            "source": "import Medusa from \"@medusajs/js-sdk\"\nimport { decodeToken } from \"react-jwt\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nconst token = await sdk.auth.callback(\n  \"user\",\n  \"google\",\n  {\n    code: \"123\",\n    state: \"456\"\n  }\n)\n// all subsequent requests will use the token in the header\n\nconst decodedToken = decodeToken(token) as { actor_id: string, user_metadata: Record<string, unknown> }\n\nconst shouldCreateUser = decodedToken.actor_id === \"\"\n\nif (shouldCreateUser) {\n  const user = await sdk.admin.invite.accept(\n    {\n      email: decodedToken.user_metadata.email as string,\n      first_name: \"John\",\n      last_name: \"Smith\",\n      invite_token: \"12345...\"\n    },\n  )\n\n  // refresh auth token\n  await sdk.auth.refresh()\n  // all subsequent requests will use the new token in the header\n} else {\n  // User already exists and is authenticated\n}"
          },
          {
            "lang": "TypeScript",
            "label": "GitHub Provider",
            "source": "import Medusa from \"@medusajs/js-sdk\"\nimport { decodeToken } from \"react-jwt\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nconst token = await sdk.auth.callback(\n  \"user\",\n  \"github\",\n  {\n    code: \"123\",\n    state: \"456\"\n  }\n)\n// all subsequent requests will use the token in the header\n\nconst decodedToken = decodeToken(token) as { actor_id: string, user_metadata: Record<string, unknown> }\n\nconst shouldCreateUser = decodedToken.actor_id === \"\"\n\nif (shouldCreateUser) {\n  const user = await sdk.admin.invite.accept(\n    {\n      email: decodedToken.user_metadata.email as string,\n      first_name: \"John\",\n      last_name: \"Smith\",\n      invite_token: \"12345...\"\n    },\n  )\n\n  // refresh auth token\n  await sdk.auth.refresh()\n  // all subsequent requests will use the new token in the header\n} else {\n  // User already exists and is authenticated\n}"
          }
        ],
        "tags": [
          "Admin Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/auth/user/{auth_provider}/register": {
      "post": {
        "operationId": "AdminPostActor_typeAuth_provider_register",
        "summary": "Retrieve Registration JWT Token",
        "description": "This API route retrieves a registration JWT token of a user that hasn't been registered yet. The token is used in the header of requests that create a user, such as the Accept Invite API route.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/commerce-modules/auth/authentication-route#1-basic-authentication-flow",
          "description": "Learn about the basic authentication flow."
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "auth_provider",
            "in": "path",
            "description": "The provider used for authentication.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "emailpass"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "title": "input",
                "description": "The input data necessary for authentication. For example, for email-pass authentication, pass `email` and `password` properties.",
                "example": {
                  "email": "admin@medusa-test.com",
                  "password": "supersecret"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nconst token = await sdk.auth.register(\"user\", \"emailpass\", {\n  email: \"user@gmail.com\",\n  password: \"supersecret\"\n})\n\n// all subsequent requests will use the token in the header\nconst { user } = await sdk.admin.invite.accept(\n  {\n    email: \"user@gmail.com\",\n    first_name: \"John\",\n    last_name: \"Smith\",\n    invite_token: \"12345...\"\n  },\n)"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/auth/user/emailpass/register' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"email\": \"admin@medusa-test.com\",\n  \"password\": \"supersecret\"\n}'"
          }
        ],
        "tags": [
          "Admin Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/auth/user/{auth_provider}/reset-password": {
      "post": {
        "operationId": "AdminPostActor_typeAuth_providerResetPassword",
        "summary": "Generate Reset Password Token for Admin User",
        "x-sidebar-summary": "Generate Reset Password Token",
        "description": "Generate a reset password token for an admin user. This API route doesn't reset the admin's password or send them the reset instructions in a notification.\n\nInstead, This API route emits the `auth.password_reset` event, passing it the token as a payload. You can listen to that event in a subscriber as explained in [this guide](https://docs.medusajs.com/resources/commerce-modules/auth/reset-password), then send the user a notification. The notification is sent using a [Notification Module Provider](https://docs.medusajs.com/resources/infrastructure-modules/notification), and it should have the URL to reset the password in the Medusa Admin dashboard, such as `http://localhost:9000/app/reset-password?token=123`.\n\n\n Use the generated token to update the user's password using the [Reset Password API route](https://docs.medusajs.com/api/admin#auth_postactor_typeauth_providerupdate).\n",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/commerce-modules/auth/authentication-route#generate-reset-password-token-route",
          "description": "Learn more about this API route."
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "auth_provider",
            "in": "path",
            "description": "The provider used for authentication.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "emailpass"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "The input data necessary to generate a reset password token.",
                "required": [
                  "identifier"
                ],
                "properties": {
                  "identifier": {
                    "type": "string",
                    "description": "The identifier of the admin user. For example, their email address.",
                    "example": "admin@medusa-test.com"
                  },
                  "metadata": {
                    "type": "object",
                    "description": "Optional metadata to include with the reset password token generation request."
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.auth.resetPassword(\n  \"user\",\n  \"emailpass\",\n  {\n    identifier: \"user@gmail.com\"\n  }\n)\n.then(() => {\n  // user receives token\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/auth/user/emailpass/reset-password' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"identifier\": \"admin@medusa-test.com\"\n}'"
          }
        ],
        "tags": [
          "Admin Auth"
        ],
        "responses": {
          "201": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "generateResetPasswordTokenWorkflow",
        "x-events": [
          {
            "name": "auth.password_reset",
            "payload": "```ts\n{\n  entity_id, // The identifier of the user or customer. For example, an email address.\n  actor_type, // The type of actor. For example, \"customer\", \"user\", or custom.\n  token, // The generated token.\n  metadata, // Optional custom metadata passed from the request.\n}\n```",
            "description": "Emitted when a reset password token is generated. You can listen to this event\nto send a reset password email to the user or customer, for example.",
            "deprecated": false
          }
        ]
      }
    },
    "/auth/user/{auth_provider}/update": {
      "post": {
        "operationId": "AdminPostActor_typeAuth_providerUpdate",
        "summary": "Reset an Admin User's Password",
        "x-sidebar-summary": "Reset Password",
        "description": "Reset an admin user's password using a reset-password token generated with the [Generate Reset Password Token API route](https://docs.medusajs.com/api/admin#auth_postactor_typeauth_providerresetpassword). You pass the token as a bearer token in the request's Authorization header.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/commerce-modules/auth/authentication-route#reset-password-route",
          "description": "Learn more about this API route."
        },
        "x-authenticated": true,
        "parameters": [
          {
            "name": "auth_provider",
            "in": "path",
            "description": "The provider used for authentication.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "emailpass"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "title": "input",
                "description": "The input data necessary for authentication. For example, for email-pass authentication, pass `email` and `password` properties.",
                "example": {
                  "email": "admin@medusa-test.com",
                  "password": "supersecret"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nexport const sdk = new Medusa({\n  baseUrl: import.meta.env.VITE_BACKEND_URL || \"/\",\n  debug: import.meta.env.DEV,\n  auth: {\n    type: \"session\",\n  },\n})\n\nsdk.auth.updateProvider(\n  \"user\",\n  \"emailpass\",\n  {\n    password: \"supersecret\"\n  },\n  token\n)\n.then(() => {\n  // password updated\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/auth/user/emailpass/update' \\\n-H 'Content-Type: application/json' \\\n-H 'Authorization: Bearer {token}' \\\n--data-raw '{\n  \"email\": \"admin@medusa-test.com\",\n  \"password\": \"supersecret\"\n}'"
          }
        ],
        "security": [
          {
            "reset_password": []
          }
        ],
        "tags": [
          "Admin Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success"
                  ],
                  "description": "Details on the reset password's status.",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "title": "success",
                      "description": "Whether the password was reset successfully."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/auth/customer/{auth_provider}": {
      "post": {
        "operationId": "StorePostActor_typeAuth_provider",
        "summary": "Authenticate Customer",
        "description": "Authenticate a customer and receive the JWT token to be used in the header of subsequent requests.\n\nWhen used with a third-party provider, such as Google, the request returns a `location` property. You redirect to the specified URL in your storefront to continue authentication with the third-party service.\n",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/customers/login#1-using-a-jwt-token",
          "description": "Storefront development: How to login as a customer"
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "auth_provider",
            "in": "path",
            "description": "The provider used for authentication.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "emailpass"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "title": "input",
                "description": "The input data necessary for authentication. \nFor example, for email-pass authentication, pass `email` and `password` properties. \nFor the Google and GitHub authentication providers, you can pass `callback_url` to indicate the URL in the frontend that the customer should be redirected to after completing their authentication. This will override the provider's `callbackUrl` configurations in `medusa-config.ts`.\n"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nconst result = await sdk.auth.login(\n  \"customer\",\n  \"emailpass\",\n  {\n    email: \"customer@gmail.com\",\n    password: \"supersecret\"\n  }\n)\n\nif (typeof result !== \"string\") {\n  alert(\"Authentication requires additional steps\")\n  // replace with the redirect logic of your application\n  window.location.href = result.location\n  return\n}\n\n// customer is now authenticated\n// all subsequent requests will use the token in the header\nconst { customer } = await sdk.store.customer.retrieve()"
          },
          {
            "lang": "Bash",
            "label": "Google Provider",
            "source": "curl -X POST '{backend_url}/auth/customer/google'"
          }
        ],
        "tags": [
          "Store Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/AuthResponse"
                    },
                    {
                      "$ref": "#/components/schemas/AuthCallbackResponse"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/auth/customer/{auth_provider}/callback": {
      "post": {
        "operationId": "StorePostActor_typeAuth_providerCallback",
        "summary": "Validate Authentication Callback",
        "description": "This API route is used by your storefront or frontend application when a third-party provider redirects to it after authentication. It validates the authentication with the third-party provider and, if successful, returns an authentication token. All query parameters received from the third-party provider, such as `code`, `state`, and `error`, must be passed as query parameters to this route.\nYou can decode the JWT token using libraries like [react-jwt](https://www.npmjs.com/package/react-jwt) in the storefront. If the decoded data doesn't  have an `actor_id` property, then you must register the customer using the Create Customer API route passing the token in the request's Authorization header.\n",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/customers/third-party-login",
          "description": "Storefront development: Implement third-party (social) login."
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "auth_provider",
            "in": "path",
            "description": "The provider used for authentication.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "google"
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "Google Provider",
            "source": "import Medusa from \"@medusajs/js-sdk\"\nimport { decodeToken } from \"react-jwt\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nconst token = await sdk.auth.callback(\n  \"customer\",\n  \"google\",\n  {\n    code: \"123\",\n    state: \"456\"\n  }\n)\n// all subsequent requests will use the token in the header\n\nconst decodedToken = decodeToken(token) as { actor_id: string, user_metadata: Record<string, unknown> }\n\nconst shouldCreateCustomer = decodedToken.actor_id === \"\"\n\nif (shouldCreateCustomer) {\n  const { customer } = await sdk.store.customer.create({\n    email: decodedToken.user_metadata.email as string,\n  })\n\n  // refresh auth token\n  await sdk.auth.refresh()\n  // all subsequent requests will use the new token in the header\n} else {\n  // Customer already exists and is authenticated\n}"
          },
          {
            "lang": "TypeScript",
            "label": "GitHub Provider",
            "source": "import Medusa from \"@medusajs/js-sdk\"\nimport { decodeToken } from \"react-jwt\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nconst token = await sdk.auth.callback(\n  \"customer\",\n  \"github\",\n  {\n    code: \"123\",\n    state: \"456\"\n  }\n)\n// all subsequent requests will use the token in the header\n\nconst decodedToken = decodeToken(token) as { actor_id: string, user_metadata: Record<string, unknown> }\n\nconst shouldCreateCustomer = decodedToken.actor_id === \"\"\n\nif (shouldCreateCustomer) {\n  const { customer } = await sdk.store.customer.create({\n    email: decodedToken.user_metadata.email as string,\n  })\n\n  // refresh auth token\n  await sdk.auth.refresh()\n  // all subsequent requests will use the new token in the header\n} else {\n  // Customer already exists and is authenticated\n}"
          }
        ],
        "tags": [
          "Store Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/auth/customer/{auth_provider}/register": {
      "post": {
        "operationId": "StorePostActor_typeAuth_provider_register",
        "summary": "Retrieve Registration JWT Token",
        "description": "This API route retrieves a registration JWT token of a customer that hasn't been registered yet. The token is used in the header of requests that create a customer.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/customers/register",
          "description": "Storefront development: How to register a customer"
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "auth_provider",
            "in": "path",
            "description": "The provider used for authentication.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "emailpass"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "title": "input",
                "description": "The input data necessary for authentication. For example, for email-pass authentication, pass `email` and `password` properties.",
                "example": {
                  "email": "customer@gmail.com",
                  "password": "supersecret"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nawait sdk.auth.register(\n  \"customer\",\n  \"emailpass\",\n  {\n    email: \"customer@gmail.com\",\n    password: \"supersecret\"\n  }\n)\n\n// all subsequent requests will use the token in the header\nconst { customer } = await sdk.store.customer.create({\n  email: \"customer@gmail.com\",\n  password: \"supersecret\"\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/auth/customer/emailpass/register' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"email\": \"customer@gmail.com\",\n  \"password\": \"supersecret\"\n}'"
          }
        ],
        "tags": [
          "Store Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/auth/customer/{auth_provider}/reset-password": {
      "post": {
        "operationId": "StorePostActor_typeAuth_providerResetPassword",
        "summary": "Generate Reset Password Token for Customer",
        "x-sidebar-summary": "Generate Reset Password Token",
        "description": "Generate a reset password token for a customer. This API route doesn't reset the customer password or send them the reset instructions in a notification.\n\nInstead, This API route emits the `auth.password_reset` event, passing it the token as a payload. You can listen to that event in a subscriber as explained in [this guide](https://docs.medusajs.com/resources/commerce-modules/auth/reset-password), then send the customer a notification. The notification is sent using a [Notification Module Provider](https://docs.medusajs.com/resources/infrastructure-modules/notification), and it should have a URL that accepts a `token` query parameter, allowing the customer to reset their password from the storefront.\n\n\n Use the generated token to update the customer's password using the [Reset Password API route](https://docs.medusajs.com/api/store#auth_postactor_typeauth_providerupdate).\n",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/customers/reset-password#1-request-reset-password-page",
          "description": "Storefront development: How to create the request reset password page."
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "auth_provider",
            "in": "path",
            "description": "The provider used for authentication.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "emailpass"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "The input data necessary to generate a reset password token.",
                "required": [
                  "identifier"
                ],
                "properties": {
                  "identifier": {
                    "type": "string",
                    "description": "The customer's identifier for the selected auth provider. For example, for the `emailpass` auth provider, the value is the customer's email.",
                    "example": "customer@gmail.com"
                  },
                  "metadata": {
                    "type": "object",
                    "description": "Optional metadata to include with the reset password token generation request."
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.auth.resetPassword(\n  \"customer\",\n  \"emailpass\",\n  {\n    identifier: \"customer@gmail.com\"\n  }\n)\n.then(() => {\n  // user receives token\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/auth/customer/emailpass/reset-password' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"identifier\": \"customer@gmail.com\"\n}'"
          }
        ],
        "tags": [
          "Store Auth"
        ],
        "responses": {
          "201": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "generateResetPasswordTokenWorkflow",
        "x-events": [
          {
            "name": "auth.password_reset",
            "payload": "```ts\n{\n  entity_id, // The identifier of the user or customer. For example, an email address.\n  actor_type, // The type of actor. For example, \"customer\", \"user\", or custom.\n  token, // The generated token.\n  metadata, // Optional custom metadata passed from the request.\n}\n```",
            "description": "Emitted when a reset password token is generated. You can listen to this event\nto send a reset password email to the user or customer, for example.",
            "deprecated": false
          }
        ]
      }
    },
    "/auth/customer/{auth_provider}/update": {
      "post": {
        "operationId": "StorePostActor_typeAuth_providerUpdate",
        "summary": "Reset a Customer's Password",
        "x-sidebar-summary": "Reset Password",
        "description": "Reset a customer's password using a reset-password token generated with the [Generate Reset Password Token API route](https://docs.medusajs.com/api/store#auth_postactor_typeauth_providerresetpassword). You pass the token as a bearer token in the request's Authorization header.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/customers/reset-password#2-reset-password-page",
          "description": "Storefront development: How to create the reset password page."
        },
        "x-authenticated": true,
        "parameters": [
          {
            "name": "auth_provider",
            "in": "path",
            "description": "The provider used for authentication.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "emailpass"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "title": "input",
                "description": "The input data necessary for authentication with the specified auth provider. For example, for email-pass authentication, pass `email` and `password` properties.",
                "example": {
                  "email": "customer@gmail.com",
                  "password": "supersecret"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.auth.updateProvider(\n  \"customer\",\n  \"emailpass\",\n  {\n    password: \"supersecret\"\n  },\n  token\n)\n.then(() => {\n  // password updated\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/auth/customer/emailpass/update' \\\n-H 'Content-Type: application/json' \\\n-H 'Authorization: Bearer {token}' \\\n--data-raw '{\n  \"email\": \"customer@gmail.com\",\n  \"password\": \"supersecret\"\n}'"
          }
        ],
        "security": [
          {
            "reset_password": []
          }
        ],
        "tags": [
          "Store Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success"
                  ],
                  "description": "Details on the reset password's status.",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "title": "success",
                      "description": "Whether the password was reset successfully."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/carts": {
      "post": {
        "operationId": "StorePostCarts",
        "summary": "Create Cart",
        "description": "Create a cart.",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/StoreCreateCart"
                  },
                  {
                    "type": "object",
                    "description": "The cart's details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The cart's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.cart.create({\n  region_id: \"reg_123\"\n})\n.then(({ cart }) => {\n  console.log(cart)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/carts' \\\n-H 'Content-Type: application/json' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n--data-raw '{\n  \"region_id\": \"reg_123\"\n}'"
          }
        ],
        "tags": [
          "Store Carts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCartResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createCartWorkflow",
        "x-events": [
          {
            "name": "cart.created",
            "payload": "```ts\n{\n  id, // The ID of the cart\n}\n```",
            "description": "Emitted when a cart is created.",
            "deprecated": false
          }
        ]
      }
    },
    "/store/carts/{id}": {
      "get": {
        "operationId": "StoreGetCartsId",
        "summary": "Get a Cart",
        "description": "Retrieve a cart by its ID. You can expand the cart's relations or select the fields that should be returned.",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The cart's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.cart.retrieve(\"cart_123\")\n.then(({ cart }) => {\n  console.log(cart)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/carts/{id}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Carts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCartResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "StorePostCartsId",
        "summary": "Update a Cart",
        "description": "Update a cart's details. This unsets the payment methods chosen before, and the customer would have to choose them again. Also, if the customer has chosen a shipping method whose option isn't valid for the cart's shipping address anymore, the shipping method will be unset. For example, if the shipping option is valid only in the US geo zone, and the shipping address's country code is `DE`, the shipping method will be unset.",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The cart's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UpdateCartData"
                  },
                  {
                    "type": "object",
                    "description": "The properties to update in the cart item.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The properties to update in the cart item."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.cart.update(\"cart_123\", {\n  region_id: \"reg_123\"\n})\n.then(({ cart }) => {\n  console.log(cart)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/carts/{id}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Carts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The updated cart's details.",
                  "required": [
                    "cart"
                  ],
                  "properties": {
                    "cart": {
                      "$ref": "#/components/schemas/StoreCart"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateCartWorkflow",
        "x-events": [
          {
            "name": "cart.updated",
            "payload": "```ts\n{\n  id, // The ID of the cart\n}\n```",
            "description": "Emitted when a cart's details are updated.",
            "deprecated": false
          },
          {
            "name": "cart.region_updated",
            "payload": "```ts\n{\n  id, // The ID of the cart\n}\n```",
            "description": "Emitted when the cart's region is updated. This\nevent is emitted alongside the `cart.updated` event.",
            "deprecated": false
          }
        ]
      }
    },
    "/store/carts/{id}/complete": {
      "post": {
        "operationId": "StorePostCartsIdComplete",
        "summary": "Complete Cart",
        "description": "Complete a cart and place an order.",
        "x-authenticated": false,
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/checkout/complete-cart",
          "description": "Storefront guide: How to implement cart completion during checkout."
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The cart's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.cart.complete(\"cart_123\")\n.then((data) => {\n  if(data.type === \"cart\") {\n    // an error occurred\n    console.log(data.error, data.cart)\n  } else {\n    // order placed successfully\n    console.log(data.order)\n  }\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/carts/{id}/complete' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Carts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "The created order's details.",
                      "required": [
                        "type",
                        "order"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "title": "type",
                          "description": "The type of the returned object. In this case, the order is returned because the cart was completed successfully.",
                          "default": "order"
                        },
                        "order": {
                          "$ref": "#/components/schemas/StoreOrder"
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The details of why the cart completion failed.",
                      "required": [
                        "type",
                        "cart",
                        "error"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "title": "type",
                          "description": "The type of the returned object. In this case, the cart is returned because an error has occurred.",
                          "default": "cart"
                        },
                        "cart": {
                          "$ref": "#/components/schemas/StoreCart"
                        },
                        "error": {
                          "type": "object",
                          "description": "The error's details.",
                          "required": [
                            "message",
                            "name",
                            "type"
                          ],
                          "properties": {
                            "message": {
                              "type": "string",
                              "title": "message",
                              "description": "The error's message."
                            },
                            "name": {
                              "type": "string",
                              "title": "name",
                              "description": "The error's name."
                            },
                            "type": {
                              "type": "string",
                              "title": "type",
                              "description": "The error's type. Can be a [MedusaError type](https://docs.medusajs.com/learn/fundamentals/api-routes/errors#medusaerror-types) or `payment_authorization_error` or `payment_requires_more_error` for payment-related errors.\n"
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "completeCartWorkflow",
        "x-events": [
          {
            "name": "order.placed",
            "payload": "```ts\n{\n  id, // The ID of the order\n}\n```",
            "description": "Emitted when an order is placed, or when a draft order is converted to an\norder.",
            "deprecated": false
          }
        ]
      }
    },
    "/store/carts/{id}/customer": {
      "post": {
        "operationId": "StorePostCartsIdCustomer",
        "summary": "Change Cart's Customer to Logged-in Customer",
        "x-sidebar-summary": "Change Customer",
        "description": "Change the cart's customer to the currently logged-in customer. This is useful when you create the cart for a guest customer, then they log in with their account.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/cart/update#set-carts-customer",
          "description": "Storefront guide: How to set the cart's customer."
        },
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The cart's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Optional additional data to pass to the underlying workflow.",
                "properties": {
                  "additional_data": {
                    "type": "object",
                    "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\n// TODO must be authenticated as the customer to set the cart's customer\nsdk.store.cart.transferCart(\"cart_123\")\n.then(({ cart }) => {\n  console.log(cart)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/carts/{id}/customer' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Carts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCartResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "transferCartCustomerWorkflow",
        "x-events": [
          {
            "name": "cart.customer_transferred",
            "payload": "```ts\n{\n  id, // The ID of the cart\n  customer_id, // The ID of the customer\n}\n```",
            "description": "Emitted when the customer in the cart is transferred.",
            "deprecated": false,
            "since": "2.8.0"
          }
        ]
      }
    },
    "/store/carts/{id}/gift-cards": {
      "post": {
        "operationId": "StorePostCartsIdGiftCards",
        "summary": "Add Gift Card to Cart",
        "x-sidebar-summary": "Add Gift Card",
        "description": "Add a Gift Card to a cart",
        "x-authenticated": false,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The cart's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreAddGiftCardToCart"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/carts/{id}/gift-cards' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"code\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Store Carts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCartResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      },
      "delete": {
        "operationId": "StoreDeleteCartsIdGiftCards",
        "summary": "Remove Gift Card from Cart",
        "x-sidebar-summary": "Remove Gift Card",
        "description": "Remove a Gift Card from a cart.",
        "x-authenticated": false,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The cart's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreRemoveGiftCardFromCart"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/store/carts/{id}/gift-cards' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"code\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Store Carts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCartResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      }
    },
    "/store/carts/{id}/line-items": {
      "post": {
        "operationId": "StorePostCartsIdLineItems",
        "summary": "Add Line Item to Cart",
        "x-sidebar-summary": "Add Line Item",
        "description": "Add a product variant as a line item in the cart.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/cart/manage-items#add-product-variant-to-cart",
          "description": "Storefront guide: How to add a product variant to the cart."
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The cart's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The details of the line item to add.",
                    "required": [
                      "variant_id",
                      "quantity"
                    ],
                    "properties": {
                      "variant_id": {
                        "type": "string",
                        "title": "variant_id",
                        "description": "The ID of the product variant to add as a line item."
                      },
                      "quantity": {
                        "type": "number",
                        "title": "quantity",
                        "description": "The item's quantity."
                      },
                      "metadata": {
                        "type": "object",
                        "description": "The item's metadata, can hold custom key-value pairs."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The details of the line item to add.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The details of the line item to add."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.cart.createLineItem(\"cart_123\", {\n  variant_id: \"variant_123\",\n  quantity: 1\n})\n.then(({ cart }) => {\n  console.log(cart)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/carts/{id}/line-items' \\\n-H 'Content-Type: application/json' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n--data-raw '{\n  \"variant_id\": \"{value}\",\n  \"quantity\": 3360689747918848,\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Store Carts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCartResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "addToCartWorkflow",
        "x-events": [
          {
            "name": "cart.updated",
            "payload": "```ts\n{\n  id, // The ID of the cart\n}\n```",
            "description": "Emitted when a cart's details are updated.",
            "deprecated": false
          }
        ]
      }
    },
    "/store/carts/{id}/line-items/{line_id}": {
      "post": {
        "operationId": "StorePostCartsIdLineItemsLine_id",
        "summary": "Update a Line Item in a Cart",
        "x-sidebar-summary": "Update Line Item",
        "description": "Update a line item's details in the cart.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/cart/manage-items#update-line-item-in-cart",
          "description": "Storefront guide: How to update a cart's line item."
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The cart's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "line_id",
            "in": "path",
            "description": "The line item's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The details to update in the line item.",
                    "required": [
                      "quantity"
                    ],
                    "properties": {
                      "quantity": {
                        "type": "number",
                        "title": "quantity",
                        "description": "The item's quantity."
                      },
                      "metadata": {
                        "type": "object",
                        "description": "The item's metadata, can hold custom key-value pairs."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The details to update in the line item.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The details to update in the line item."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.cart.updateLineItem(\n  \"cart_123\",\n  \"li_123\",\n  {\n    quantity: 1\n  }\n)\n.then(({ cart }) => {\n  console.log(cart)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/carts/{id}/line-items/{line_id}' \\\n-H 'Content-Type: application/json' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n--data-raw '{\n  \"quantity\": 8980402259623936,\n  \"metadata\": {}\n}'"
          }
        ],
        "tags": [
          "Store Carts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCartResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateLineItemInCartWorkflow",
        "x-events": [
          {
            "name": "cart.updated",
            "payload": "```ts\n{\n  id, // The ID of the cart\n}\n```",
            "description": "Emitted when a cart's details are updated.",
            "deprecated": false
          }
        ]
      },
      "delete": {
        "operationId": "StoreDeleteCartsIdLineItemsLine_id",
        "summary": "Remove Line Item from Cart",
        "x-sidebar-summary": "Remove Line Item",
        "description": "Remove a line item from a cart.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/cart/manage-items#remove-line-item-from-cart",
          "description": "Storefront guide: How to remove line item from cart."
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The cart's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "line_id",
            "in": "path",
            "description": "The line item's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.cart.deleteLineItem(\n  \"cart_123\",\n  \"li_123\"\n)\n.then(({ deleted, parent: cart }) => {\n  console.log(deleted, cart)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/store/carts/{id}/line-items/{line_id}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Carts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The deletion's details.",
                      "required": [
                        "id",
                        "object",
                        "deleted"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "title": "id",
                          "description": "The ID of the deleted line item."
                        },
                        "object": {
                          "type": "string",
                          "title": "object",
                          "description": "The name of the deleted object.",
                          "default": "line-item"
                        },
                        "deleted": {
                          "type": "boolean",
                          "title": "deleted",
                          "description": "Whether the item was deleted."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The deletion's details.",
                      "properties": {
                        "parent": {
                          "$ref": "#/components/schemas/StoreCart",
                          "description": "The cart that the item belonged to."
                        }
                      }
                    }
                  ],
                  "description": "The deletion's details."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteLineItemsWorkflow",
        "x-events": [
          {
            "name": "cart.updated",
            "payload": "```ts\n{\n  id, // The ID of the cart\n}\n```",
            "description": "Emitted when a cart's details are updated.",
            "deprecated": false
          }
        ]
      }
    },
    "/store/carts/{id}/promotions": {
      "post": {
        "operationId": "StorePostCartsIdPromotions",
        "summary": "Add Promotions to Cart",
        "x-sidebar-summary": "Add Promotions",
        "description": "Add a list of promotions to a cart.",
        "x-authenticated": false,
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/cart/manage-promotions#add-promotion-to-cart",
          "description": "Storefront guide: How to add a promotion to cart."
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The cart's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreCartAddPromotion"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/carts/{id}/promotions' \\\n-H 'Content-Type: application/json' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n--data-raw '{\n  \"promo_codes\": [\n    \"{value}\"\n  ]\n}'"
          }
        ],
        "tags": [
          "Store Carts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCartResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateCartPromotionsWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "StoreDeleteCartsIdPromotions",
        "summary": "Remove Promotions from Cart",
        "description": "Remove a list of promotions from a cart.",
        "x-authenticated": false,
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/cart/manage-promotions#remove-promotion-from-cart",
          "description": "Storefront guide: How to remove a promotion from cart."
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The cart's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/store/carts/{id}/promotions' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"promo_codes\": [\"{value}\"]\n}'"
          }
        ],
        "tags": [
          "Store Carts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The cart's details.",
                  "required": [
                    "cart"
                  ],
                  "properties": {
                    "cart": {
                      "$ref": "#/components/schemas/StoreCart"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateCartPromotionsWorkflow",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreCartRemovePromotion"
              }
            }
          }
        },
        "x-events": []
      }
    },
    "/store/carts/{id}/shipping-methods": {
      "post": {
        "operationId": "StorePostCartsIdShippingMethods",
        "summary": "Add Shipping Method to Cart",
        "x-sidebar-summary": "Add Shipping Method",
        "description": "Add a shipping method to a cart. Use this API route when the customer chooses their preferred shipping option.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/checkout/shipping",
          "description": "Storefront guide: How to implement shipping during checkout."
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The cart's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "type": "object",
                    "description": "The shipping method's details.",
                    "required": [
                      "option_id"
                    ],
                    "properties": {
                      "option_id": {
                        "type": "string",
                        "title": "option_id",
                        "description": "The ID of the shipping option to create the shipping method from."
                      },
                      "data": {
                        "type": "object",
                        "description": "Any additional data relevant for the third-party fulfillment provider to process the shipment.",
                        "externalDocs": {
                          "url": "https://docs.medusajs.com/resources/storefront-development/checkout/shipping#data-request-body-parameter",
                          "description": "Learn more about the data parameter."
                        }
                      }
                    }
                  },
                  {
                    "type": "object",
                    "description": "The shipping method's details.",
                    "properties": {
                      "additional_data": {
                        "type": "object",
                        "description": "Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter."
                      }
                    }
                  }
                ],
                "description": "The shipping method's details."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.cart.addShippingMethod(\"cart_123\", {\n  option_id: \"so_123\",\n  data: {\n    // custom data for fulfillment provider.\n  }\n})\n.then(({ cart }) => {\n  console.log(cart)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/carts/{id}/shipping-methods' \\\n-H 'Content-Type: application/json' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n--data-raw '{\n  \"option_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Store Carts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCartResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "addShippingMethodToCartWorkflow",
        "x-events": [
          {
            "name": "cart.updated",
            "payload": "```ts\n{\n  id, // The ID of the cart\n}\n```",
            "description": "Emitted when a cart's details are updated.",
            "deprecated": false
          }
        ]
      }
    },
    "/store/carts/{id}/store-credits": {
      "post": {
        "operationId": "StorePostCartsIdStoreCredits",
        "summary": "Add Store Credit to Cart",
        "x-sidebar-summary": "Add Store Credit",
        "description": "Add a Store Credit to a cart",
        "x-authenticated": false,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The cart's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreAddStoreCreditsToCart"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/carts/{id}/store-credits' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"amount\": 48\n}'"
          }
        ],
        "tags": [
          "Store Carts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCartResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      }
    },
    "/store/carts/{id}/taxes": {
      "post": {
        "operationId": "StorePostCartsIdTaxes",
        "summary": "Calculate Cart Taxes",
        "x-sidebar-summary": "Calculate Taxes",
        "description": "Calculate the cart's tax lines and amounts.",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The cart's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/carts/{id}/taxes' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Carts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCartResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateTaxLinesWorkflow",
        "x-events": []
      }
    },
    "/store/collections": {
      "get": {
        "operationId": "StoreGetCollections",
        "summary": "List Collections",
        "description": "Retrieve a list of collections. The collections can be filtered by fields such as `handle`. The collections can also be sorted or paginated.",
        "x-authenticated": false,
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/products/collections/list",
          "description": "Storefront guide: How to retrieve a list of collections."
        },
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "title",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "title",
                  "description": "Filter by a collection's title."
                },
                {
                  "type": "array",
                  "description": "Filter by collection titles.",
                  "items": {
                    "type": "string",
                    "title": "title",
                    "description": "A title."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the collection's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the collection's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the collection's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the collection's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "handle",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "handle",
                  "description": "Filter by a collection's handle."
                },
                {
                  "type": "array",
                  "description": "Filter by collection handles.",
                  "items": {
                    "type": "string",
                    "title": "handle",
                    "description": "A handle."
                  }
                }
              ]
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the collection's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the collection's searchable properties."
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a collection's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by collection IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "The collection's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.collection.list()\n.then(({ collections, count, limit, offset }) => {\n  console.log(collections)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/collections' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Collections"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of collections.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of collections.",
                      "required": [
                        "collections"
                      ],
                      "properties": {
                        "collections": {
                          "type": "array",
                          "description": "The collection's collections.",
                          "items": {
                            "$ref": "#/components/schemas/StoreCollection"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/collections/{id}": {
      "get": {
        "operationId": "StoreGetCollectionsId",
        "summary": "Get a Collection",
        "description": "Retrieve a collection by its ID. You can expand the collection's relations or select the fields that should be returned.",
        "x-authenticated": false,
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/products/collections/retrieve",
          "description": "Storefront guide: How to retrieve a collection."
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The collection's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.collection.retrieve(\"pcol_123\")\n.then(({ collection }) => {\n  console.log(collection)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/collections/{id}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Collections"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCollectionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/currencies": {
      "get": {
        "operationId": "StoreGetCurrencies",
        "summary": "List Currencies",
        "description": "Retrieve a list of currencies. The currencies can be filtered by fields such as `code`. The currencies can also be sorted or paginated.",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the currency's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the currency's searchable properties."
            }
          },
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "code",
                  "description": "Filter by a currency code."
                },
                {
                  "type": "array",
                  "description": "Filter by currency codes.",
                  "items": {
                    "type": "string",
                    "title": "code",
                    "description": "A currency code."
                  }
                }
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/currencies' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Currencies"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCurrencyListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/currencies/{code}": {
      "get": {
        "operationId": "StoreGetCurrenciesCode",
        "summary": "Get a Currency",
        "description": "Retrieve a currency by its code. You can expand the currency's relations or select the fields that should be returned.",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "The currency's code.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/currencies/{code}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Currencies"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCurrencyResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/customers": {
      "post": {
        "operationId": "StorePostCustomers",
        "summary": "Register Customer",
        "description": "Register a customer. Use the `/auth/customer/emailpass/register` API route first to retrieve the registration token and pass it in the header of the request.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/customers/register",
          "description": "Storefront guide: How to register a customer."
        },
        "x-authenticated": true,
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreCreateCustomer"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nconst token = await sdk.auth.register(\"customer\", \"emailpass\", {\n  \"email\": \"customer@gmail.com\",\n  \"password\": \"supersecret\"\n})\n\nsdk.store.customer.create(\n  {\n    \"email\": \"customer@gmail.com\"\n  },\n  {},\n  {\n    Authorization: `Bearer ${token}`\n  }\n)\n.then(({ customer }) => {\n  console.log(customer)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/customers' \\\n-H 'Authorization: Bearer {token}' \\\n-H 'Content-Type: application/json' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n--data-raw '{\n  \"email\": \"Monserrate.Leannon88@yahoo.com\",\n  \"company_name\": \"{value}\",\n  \"first_name\": \"{value}\",\n  \"last_name\": \"{value}\",\n  \"phone\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Store Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCustomerResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createCustomerAccountWorkflow",
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-events": [
          {
            "name": "customer.created",
            "payload": "```ts\n{\n  id, // The ID of the customer\n}\n```",
            "description": "Emitted when a customer is created.",
            "deprecated": false
          }
        ]
      }
    },
    "/store/customers/me": {
      "get": {
        "operationId": "StoreGetCustomersMe",
        "summary": "Get Logged-in Customer",
        "x-sidebar-summary": "Get Customer",
        "description": "Retrieve the logged-in customer. You can expand the customer's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/customers/retrieve",
          "description": "Storefront guide: How to retrieve the logged-in customer."
        },
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\n// TODO must be authenticated as the customer to retrieve their details\nsdk.store.customer.retrieve()\n.then(({ customer }) => {\n  console.log(customer)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/customers/me' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCustomerResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "StorePostCustomersMe",
        "summary": "Update Customer",
        "description": "Update the logged-in customer's details.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/customers/profile",
          "description": "Storefront guide: How to edit a customer's profile."
        },
        "x-authenticated": true,
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreUpdateCustomer"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\n// TODO must be authenticated as the customer to update their details\nsdk.store.customer.update({\n  first_name: \"John\"\n})\n.then(({ customer }) => {\n  console.log(customer)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/customers/me' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n--data-raw '{\n  \"company_name\": \"{value}\",\n  \"first_name\": \"{value}\",\n  \"last_name\": \"{value}\",\n  \"phone\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Store Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCustomerResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateCustomersWorkflow",
        "x-events": [
          {
            "name": "customer.updated",
            "payload": "```ts\n{\n  id, // The ID of the customer\n}\n```",
            "description": "Emitted when a customer is updated.",
            "deprecated": false
          }
        ]
      }
    },
    "/store/customers/me/addresses": {
      "get": {
        "operationId": "StoreGetCustomersMeAddresses",
        "summary": "List Customer's Addresses",
        "x-sidebary-summary": "List Addresses",
        "description": "Retrieve the addresses of the logged-in customer. The addresses can be filtered by fields such as `country_code`. The addresses can also be sorted or paginated.",
        "x-authenticated": true,
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/customers/addresses#list-customer-addresses",
          "description": "Storefront guide: How to retrieve the logged-in customer's addresses."
        },
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "city",
            "in": "query",
            "description": "Filter by the address's city.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "city",
                  "description": "Filter by a city."
                },
                {
                  "type": "array",
                  "description": "Filter by cities.",
                  "items": {
                    "type": "string",
                    "title": "city",
                    "description": "A city."
                  }
                }
              ]
            }
          },
          {
            "name": "postal_code",
            "in": "query",
            "description": "Filter by the address's postal code.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "postal_code",
                  "description": "Filter by a postal code."
                },
                {
                  "type": "array",
                  "description": "Filter by postal codes.",
                  "items": {
                    "type": "string",
                    "title": "postal_code",
                    "description": "A postal code."
                  }
                }
              ]
            }
          },
          {
            "name": "country_code",
            "in": "query",
            "description": "Filter by the address's country code.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "country_code",
                  "description": "Filter by a country code."
                },
                {
                  "type": "array",
                  "description": "Filter by country codes.",
                  "items": {
                    "type": "string",
                    "title": "country_code",
                    "description": "A country code."
                  }
                }
              ]
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the address's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the address's searchable properties."
            }
          },
          {
            "name": "company",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "company",
                  "description": "Filter addresses by company."
                },
                {
                  "type": "array",
                  "description": "Filter addresses by companies.",
                  "items": {
                    "type": "string",
                    "title": "company",
                    "description": "A company."
                  }
                }
              ]
            }
          },
          {
            "name": "province",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "province",
                  "description": "Filter addresses by province."
                },
                {
                  "type": "array",
                  "description": "Filter addresses by provinces.",
                  "items": {
                    "type": "string",
                    "title": "province",
                    "description": "A province."
                  }
                }
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\n// TODO must be authenticated as the customer to list their addresses\nsdk.store.customer.listAddress()\n.then(({ addresses, count, offset, limit }) => {\n  console.log(addresses)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/customers/me/addresses' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCustomerAddressListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "StorePostCustomersMeAddresses",
        "summary": "Create Address for Logged-In Customer",
        "x-sidebar-summary": "Create Address",
        "description": "Create an address for the logged-in customer.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/customers/addresses#add-customer-address",
          "description": "Storefront guide: How to create an address for the logged-in customer."
        },
        "x-authenticated": true,
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreCreateCustomerAddress"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\n// TODO must be authenticated as the customer to create an address\nsdk.store.customer.createAddress({\n  country_code: \"us\"\n})\n.then(({ customer }) => {\n  console.log(customer)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/customers/me/addresses' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n--data-raw '{\n  \"metadata\": {},\n  \"first_name\": \"{value}\",\n  \"last_name\": \"{value}\",\n  \"phone\": \"{value}\",\n  \"company\": \"{value}\",\n  \"address_1\": \"{value}\",\n  \"address_2\": \"{value}\",\n  \"city\": \"{value}\",\n  \"country_code\": \"{value}\",\n  \"province\": \"us-ca\",\n  \"postal_code\": \"{value}\",\n  \"address_name\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Store Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCustomerResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createCustomerAddressesWorkflow",
        "x-events": []
      }
    },
    "/store/customers/me/addresses/{address_id}": {
      "get": {
        "operationId": "StoreGetCustomersMeAddressesAddress_id",
        "summary": "Get Customer's Address",
        "x-sidebar-summary": "Get Address",
        "description": "Retrieve an address of the logged-in customer. You can expand the address's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "address_id",
            "in": "path",
            "description": "The address's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\n// TODO must be authenticated as the customer to retrieve their address\nsdk.store.customer.retrieveAddress(\n  \"caddr_123\"\n)\n.then(({ address }) => {\n  console.log(address)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/customers/me/addresses/{address_id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCustomerAddressResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "StorePostCustomersMeAddressesAddress_id",
        "summary": "Update Customer's Address",
        "x-sidebar-summary": "Update Address",
        "description": "Update the logged-in customer's address.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/customers/addresses#edit-an-address",
          "description": "Storefront guide: How to update an address of the logged-in customer."
        },
        "x-authenticated": true,
        "parameters": [
          {
            "name": "address_id",
            "in": "path",
            "description": "The address's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreUpdateCustomerAddress"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\n// TODO must be authenticated as the customer to update their address\nsdk.store.customer.updateAddress(\n  \"caddr_123\",\n  {\n    country_code: \"us\"\n  }\n)\n.then(({ customer }) => {\n  console.log(customer)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/customers/me/addresses/{address_id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'Content-Type: application/json' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n--data-raw '{\n  \"first_name\": \"{value}\",\n}'"
          }
        ],
        "tags": [
          "Store Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreCustomerResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "updateCustomerAddressesWorkflow",
        "x-events": []
      },
      "delete": {
        "operationId": "StoreDeleteCustomersMeAddressesAddress_id",
        "summary": "Remove Customer's Address",
        "x-sidebar-summary": "Remove Address",
        "description": "Remove an address of the logged-in customer.",
        "x-authenticated": true,
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/customers/addresses#delete-customer-address",
          "description": "Storefront guide: How to delete a customer's address."
        },
        "parameters": [
          {
            "name": "address_id",
            "in": "path",
            "description": "The address's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\n// TODO must be authenticated as the customer to delete their address\nsdk.store.customer.deleteAddress(\"caddr_123\")\n.then(({ deleted, parent: customer }) => {\n  console.log(customer)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X DELETE '{backend_url}/store/customers/me/addresses/{address_id}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The deletion's details.",
                      "required": [
                        "id",
                        "object",
                        "deleted"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "title": "id",
                          "description": "The address's ID."
                        },
                        "object": {
                          "type": "string",
                          "title": "object",
                          "description": "The name of the deleted object.",
                          "default": "address"
                        },
                        "deleted": {
                          "type": "boolean",
                          "title": "deleted",
                          "description": "Whether the address was deleted."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The deletion's details.",
                      "properties": {
                        "parent": {
                          "$ref": "#/components/schemas/StoreCustomer",
                          "description": "The details of the customer the address belongs to."
                        }
                      }
                    }
                  ],
                  "description": "The deletion's details."
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "deleteCustomerAddressesWorkflow",
        "x-events": []
      }
    },
    "/store/gift-cards/{idOrCode}": {
      "get": {
        "operationId": "StoreGetGiftCardsIdorcode",
        "summary": "Get a Gift Card",
        "x-sidebar-summary": "Get Gift Card",
        "description": "Retrieve a gift card by its ID or code. You can expand the gift card's relations or select the fields that should be returned.",
        "x-authenticated": false,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "idOrCode",
            "in": "path",
            "description": "The gift card's ID or code.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\n if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\n without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/gift-cards/{idOrCode}' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Gift Cards"
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      }
    },
    "/store/gift-cards/{idOrCode}/redeem": {
      "post": {
        "operationId": "StorePostGiftCardsIdorcodeRedeem",
        "summary": "Redeem a Gift Card",
        "x-sidebar-summary": "Redeem Gift Card",
        "description": "Redeem a gift card by its ID or code. The gift card will be added to the logged-in customer's store credit account.",
        "x-authenticated": true,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "idOrCode",
            "in": "path",
            "description": "The gift card's ID or code.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\n if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\n without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/gift-cards/{idOrCode}/redeem' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Gift Cards"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreGiftCardResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      }
    },
    "/store/locales": {
      "get": {
        "operationId": "StoreGetLocales",
        "summary": "List Locales",
        "description": "Retrieve the list of supported locales. You can use this list to allow customers to select their preferred locale in your storefront.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/localization",
          "description": "Learn how to serve localized content in your storefront."
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.locale.list()\n.then(({ locales }) => {\n  console.log(locales)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/locales' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Locales"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreLocaleListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-since": "2.12.3",
        "x-featureFlag": "translation"
      }
    },
    "/store/orders": {
      "get": {
        "operationId": "StoreGetOrders",
        "summary": "List Logged-in Customer's Orders",
        "x-sidebar-summary": "List Orders",
        "description": "Retrieve the orders of the logged-in customer. The orders can be filtered by fields such as `id`. The orders can also be sorted or paginated.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by an order ID."
                },
                {
                  "type": "array",
                  "description": "Filter by order IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "An order ID."
                  }
                }
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "The order's $and.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "The order's $or.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "status",
                  "description": "The order's status."
                },
                {
                  "type": "string",
                  "title": "status",
                  "description": "The order's status."
                },
                {
                  "type": "string",
                  "title": "status",
                  "description": "The order's status."
                },
                {
                  "type": "string",
                  "title": "status",
                  "description": "The order's status."
                },
                {
                  "type": "string",
                  "title": "status",
                  "description": "The order's status."
                },
                {
                  "type": "string",
                  "title": "status",
                  "description": "The order's status."
                },
                {
                  "type": "array",
                  "description": "The order's status.",
                  "items": {
                    "type": "string",
                    "description": "The status's details.",
                    "enum": [
                      "canceled",
                      "requires_action",
                      "pending",
                      "completed",
                      "draft",
                      "archived"
                    ]
                  }
                }
              ]
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\n// TODO must be authenticated as the customer to list their orders\nsdk.store.order.list()\n.then(({ orders, count, offset, limit }) => {\n  console.log(orders)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/orders' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of orders.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of orders.",
                      "required": [
                        "orders"
                      ],
                      "properties": {
                        "orders": {
                          "type": "array",
                          "description": "The order's orders.",
                          "items": {
                            "$ref": "#/components/schemas/StoreOrder"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-workflow": "getOrdersListWorkflow",
        "x-events": []
      }
    },
    "/store/orders/{id}": {
      "get": {
        "operationId": "StoreGetOrdersId",
        "summary": "Get an Order",
        "description": "Retrieve an order by its ID. You can expand the order's relations or select the fields that should be returned.",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.order.retrieve(\"order_123\")\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/orders/{id}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "getOrderDetailWorkflow",
        "x-events": []
      }
    },
    "/store/orders/{id}/transfer/accept": {
      "post": {
        "operationId": "StorePostOrdersIdTransferAccept",
        "summary": "Accept Order Transfer",
        "x-sidebar-summary": "Accept Transfer",
        "description": "Accept an order to be transfered to a customer's account, which was specified when the transfer request was created. The transfer is requested previously either by the customer using the [Request Order Transfer Store API route](https://docs.medusajs.com/api/store#orders_postordersidtransferrequest), or by the admin using the [Request Order Transfer Admin API route](https://docs.medusajs.com/api/admin#orders_postordersidtransferrequest).",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreAcceptOrderTransfer"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.order.acceptTransfer(\n  \"order_123\",\n  {\n    token: \"transfer_token\"\n  },\n  {\n    Authorization: `Bearer ${token}`\n  }\n)\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/orders/{id}/transfer/accept' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"token\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Store Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "acceptOrderTransferWorkflow",
        "x-events": []
      }
    },
    "/store/orders/{id}/transfer/cancel": {
      "post": {
        "operationId": "StorePostOrdersIdTransferCancel",
        "summary": "Cancel Order Transfer",
        "x-sidebar-summary": "Cancel Transfer",
        "description": "Cancel an order transfer that the logged-in customer previously requested using the [Request Order Transfer](https://docs.medusajs.com/api/store#orders_postordersidtransferrequest) API route.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\n// TODO must be authenticated as the customer to cancel the order transfer\nsdk.store.order.cancelTransfer(\n  \"order_123\",\n  {},\n  {\n    Authorization: `Bearer ${token}`\n  }\n)\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/orders/{id}/transfer/cancel' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "cancelOrderTransferRequestWorkflow",
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-events": []
      }
    },
    "/store/orders/{id}/transfer/decline": {
      "post": {
        "operationId": "StorePostOrdersIdTransferDecline",
        "summary": "Decline Order Transfer",
        "x-sidebar-summary": "Decline Transfer",
        "description": "Decline an order transfer previously requested, typically by the admin user using the [Request Order Transfer Admin API route](https://docs.medusajs.com/api/admin#orders_postordersidtransferrequest).",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreDeclineOrderTransfer"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.order.declineTransfer(\n  \"order_123\",\n  {\n    token: \"transfer_token\"\n  },\n  {\n    Authorization: `Bearer ${token}`\n  }\n)\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/orders/{id}/transfer/decline' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"token\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Store Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "declineOrderTransferRequestWorkflow",
        "x-events": []
      }
    },
    "/store/orders/{id}/transfer/request": {
      "post": {
        "operationId": "StorePostOrdersIdTransferRequest",
        "summary": "Request Order Transfer",
        "x-sidebar-summery": "Request Transfer",
        "description": "Request an order to be transfered to the logged-in customer's account. The transfer is confirmed using the [Accept Order Transfer](https://docs.medusajs.com/api/store#orders_postordersidtransferaccept) API route.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The order's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreRequestOrderTransfer"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\n// TODO must be authenticated as the customer to request the order transfer\nsdk.store.order.requestTransfer(\n  \"order_123\",\n  {\n    description: \"I want to transfer this order to my friend.\"\n  },\n  {},\n  {\n    Authorization: `Bearer ${token}`\n  }\n)\n.then(({ order }) => {\n  console.log(order)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/orders/{id}/transfer/request' \\\n-H 'Authorization: Bearer {jwt_token}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreOrderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "getOrderDetailWorkflow",
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-events": []
      }
    },
    "/store/payment-collections": {
      "post": {
        "operationId": "StorePostPaymentCollections",
        "summary": "Create Payment Collection",
        "description": "Create a payment collection for a cart. This is used during checkout, where the payment collection holds the cart's payment sessions.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/checkout/payment",
          "description": "Storefront guide: How to implement payment during checkout."
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreCreatePaymentCollection"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.payment.initiatePaymentSession(\n  cart, // assuming you already have the cart object.\n  {\n    provider_id: \"pp_stripe_stripe\",\n    data: {\n      // any data relevant for the provider.\n    }\n  }\n)\n.then(({ payment_collection }) => {\n  console.log(payment_collection)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/payment-collections' \\\n-H 'Content-Type: application/json' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n--data-raw '{\n  \"cart_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Store Payment Collections"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorePaymentCollectionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createPaymentCollectionForCartWorkflow",
        "x-events": []
      }
    },
    "/store/payment-collections/{id}/payment-sessions": {
      "post": {
        "operationId": "StorePostPaymentCollectionsIdPaymentSessions",
        "summary": "Initialize Payment Session of a Payment Collection",
        "x-sidebar-summary": "Initialize Payment Session",
        "description": "Initialize and add a payment session to a payment collection. This is used during checkout, where you create a payment collection for the cart, then initialize a payment session for the payment provider that the customer chooses.\nIt's highly recommended to have an amount greater than `0` in the payment collection, as some payment providers, such as Stripe, require a non-zero amount to create a payment session. Otherwise, an error will be thrown on the payment provider's side.\nIn cases where you want to create a payment session for a payment collection with an amount of `0`, you can use the Manual System Payment Provider instead of third-party payment providers. The Manual System Payment Provider is built into Medusa and allows you to create payment sessions without interacting with an external payment provider.\nMake sure to configure the Manual System Payment Provider in your store's region. Learn more in the [Manage Region](https://docs.medusajs.com/user-guide/settings/regions#edit-region-details) user guide.\n",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/checkout/payment",
          "description": "Storefront guide: How to implement payment during checkout."
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment collection's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreInitializePaymentSession"
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/payment-collections/{id}/payment-sessions' \\\n-H 'Content-Type: application/json' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n--data-raw '{\n  \"provider_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Store Payment Collections"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorePaymentCollectionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "createPaymentSessionsWorkflow",
        "x-events": []
      }
    },
    "/store/payment-providers": {
      "get": {
        "operationId": "StoreGetPaymentProviders",
        "summary": "List Payment Providers",
        "description": "Retrieve a list of payment providers. You must provide the `region_id` query parameter to retrieve the payment providers enabled in that region.",
        "x-authenticated": false,
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/checkout/payment",
          "description": "Storefront guide: How to implement payment during checkout."
        },
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "region_id",
            "in": "query",
            "description": "Filter by a region ID to get the payment providers enabled in that region.",
            "required": true,
            "schema": {
              "type": "string",
              "title": "region_id",
              "description": "Filter by a region ID."
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.payment.listPaymentProviders({\n  region_id: \"reg_123\"\n})\n.then(({ payment_providers, count, offset, limit }) => {\n  console.log(payment_providers)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/payment-providers' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Payment Providers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The list of payment providers.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The list of payment providers.",
                      "required": [
                        "payment_providers"
                      ],
                      "properties": {
                        "payment_providers": {
                          "type": "array",
                          "description": "The list of payment providers.",
                          "items": {
                            "$ref": "#/components/schemas/StorePaymentProvider"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/product-categories": {
      "get": {
        "operationId": "StoreGetProductCategories",
        "summary": "List Product Categories",
        "description": "Retrieve a list of product categories. The product categories can be filtered by fields such as `id`. The product categories can also be sorted or paginated.",
        "x-authenticated": false,
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/products/categories/list",
          "description": "Storefront guide: How to retrieve a list of product categories."
        },
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the product category's properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the product category's properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a product category's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by product category IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A product category ID."
                  }
                }
              ]
            }
          },
          {
            "name": "description",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "description",
                  "description": "Filter by a description. This only matches categories with the exact description. To search by a term or keyword, use the `q` query parameter instead."
                },
                {
                  "type": "array",
                  "description": "Filter by descriptions. This only matches categories that have one of the provided descriptions. To search by a term or keyword, use the `q` query parameter instead.",
                  "items": {
                    "type": "string",
                    "title": "description",
                    "description": "A description."
                  }
                }
              ]
            }
          },
          {
            "name": "handle",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "handle",
                  "description": "Filter by a category's handle."
                },
                {
                  "type": "array",
                  "description": "Filter by category handles.",
                  "items": {
                    "type": "string",
                    "title": "handle",
                    "description": "A handle."
                  }
                }
              ]
            }
          },
          {
            "name": "parent_category_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "parent_category_id",
                  "description": "The ID of a category to retrieve its child categories."
                },
                {
                  "type": "array",
                  "description": "The ID of categories to retrieve their child categories.",
                  "items": {
                    "type": "string",
                    "title": "parent_category_id",
                    "description": "A product category's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "include_ancestors_tree",
            "in": "query",
            "description": "Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "include_ancestors_tree",
              "description": "Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`."
            }
          },
          {
            "name": "include_descendants_tree",
            "in": "query",
            "description": "Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the child of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "include_descendants_tree",
              "description": "Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the child of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`."
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the category's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the category's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the category's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the category's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "$and",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "description": "The product category's $or.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "name",
                  "description": "Filter by a product category name."
                },
                {
                  "type": "array",
                  "description": "Filter by product category names.",
                  "items": {
                    "type": "string",
                    "title": "name",
                    "description": "A product category name."
                  }
                }
              ]
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.category.list()\n.then(({ product_categories, count, offset, limit }) => {\n  console.log(product_categories)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/product-categories' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Product Categories"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreProductCategoryListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/product-categories/{id}": {
      "get": {
        "operationId": "StoreGetProductCategoriesId",
        "summary": "Get a Product Category",
        "description": "Retrieve a product category by its ID. You can expand the product category's relations or select the fields that should be returned.",
        "x-authenticated": false,
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/products/categories/retrieve",
          "description": "Storefront guide: How to retrieve a product category."
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product category's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "include_ancestors_tree",
            "in": "query",
            "description": "Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "include_ancestors_tree",
              "description": "Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`."
            }
          },
          {
            "name": "include_descendants_tree",
            "in": "query",
            "description": "Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the children of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "include_descendants_tree",
              "description": "Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the children of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`."
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.category.retrieve(\"pcat_123\")\n.then(({ product_category }) => {\n  console.log(product_category)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/product-categories/{id}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Product Categories"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreProductCategoryResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/product-tags": {
      "get": {
        "operationId": "StoreGetProductTags",
        "summary": "List Product Tags",
        "description": "Retrieve a list of product tags. The product tags can be filtered by fields such as `id`. The product tags can also be sorted or paginated.",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Query to search product tag's searchable fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Query to search product tag's searchable fields."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a product tag's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by product tag IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A product tag's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "value",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "value",
                  "description": "Filter by a product tag's value."
                },
                {
                  "type": "array",
                  "description": "Filter by product tag values.",
                  "items": {
                    "type": "string",
                    "title": "value",
                    "description": "A product tag's value."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the tag's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the tag's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the tag's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the tag's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/product-tags' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Product Tags"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreProductTagListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/product-tags/{id}": {
      "get": {
        "operationId": "StoreGetProductTagsId",
        "summary": "Get a Product Tag",
        "description": "Retrieve a product tag by its ID. You can expand the product tag's relations or select the fields that should be returned.",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product tag's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/product-tags/{id}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Product Tags"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreProductTagResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/product-types": {
      "get": {
        "operationId": "StoreGetProductTypes",
        "summary": "List Product Types",
        "description": "Retrieve a list of product types. The product types can be filtered by fields such as `id`. The product types can also be sorted or paginated.",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\n if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\n without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Query to search the product type's searchable fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Query to search the product type's searchable fields."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a product type's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by product type IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A product type's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "value",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "value",
                  "description": "Filter by a product type's value."
                },
                {
                  "type": "array",
                  "description": "Filter by product type values.",
                  "items": {
                    "type": "string",
                    "title": "value",
                    "description": "A product type's value."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the type's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the type's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the type's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the type's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/product-types' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Product Types"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreProductTypeListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/product-types/{id}": {
      "get": {
        "operationId": "StoreGetProductTypesId",
        "summary": "Get a Product Type",
        "description": "Retrieve a product type by its ID. You can expand the product type's relations or select the fields that should be returned.",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product type's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\n if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\n without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/product-types/{id}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Product Types"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreProductTypeResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/products": {
      "get": {
        "operationId": "StoreGetProducts",
        "summary": "List Products",
        "description": "Retrieve a list of products. The products can be filtered by fields such as `id`. The products can also be sorted or paginated.\n\nYou can retrieve the content of the products translated to a specific locale either by passing the `locale` query parameter or by setting the `x-medusa-locale` header to the desired locale code in BCP 47 format. If you don't pass a locale, and your store has a default locale, the default locale will be used.\n\nWith localization, the products' content like title and description will be in the specified locale if a translation is available,  and fallback to the original content otherwise. Learn more in the [Localization](#localization) section.\n",
        "x-authenticated": false,
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/products/price",
          "description": "Storefront guide: How to retrieve a product variants' prices."
        },
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the product's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the product's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a product ID."
                },
                {
                  "type": "array",
                  "description": "Filter by product IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A product ID."
                  }
                }
              ]
            }
          },
          {
            "name": "title",
            "in": "query",
            "description": "Filter by product titles.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "title",
                  "description": "Filter by a title."
                },
                {
                  "type": "array",
                  "description": "Filter by titles.",
                  "items": {
                    "type": "string",
                    "title": "title",
                    "description": "A title."
                  }
                }
              ]
            }
          },
          {
            "name": "handle",
            "in": "query",
            "description": "Filter by product handles.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "handle",
                  "description": "Filter by a product handle."
                },
                {
                  "type": "array",
                  "description": "Filter by product handles.",
                  "items": {
                    "type": "string",
                    "title": "handle",
                    "description": "A product handle."
                  }
                }
              ]
            }
          },
          {
            "name": "is_giftcard",
            "in": "query",
            "description": "Whether the product is a gift card.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "is_giftcard",
              "description": "Whether the product is a gift card."
            }
          },
          {
            "name": "collection_id",
            "in": "query",
            "description": "Filter by a collection's ID to retrieve the products in it.",
            "required": false,
            "schema": {
              "description": "Filter by a collection's ID to retrieve the products in it.",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/storefront-development/products/collections/products",
                "description": "Storefront guide: Retrieve a collection's products."
              },
              "items": {
                "type": "string",
                "title": "collection_id",
                "description": "A collection's ID."
              }
            }
          },
          {
            "name": "tag_id",
            "in": "query",
            "description": "Filter by a tag's ID to retrieve the products in it.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "tag_id",
                  "description": "Filter by a product tag's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by product tag IDs.",
                  "items": {
                    "type": "string",
                    "title": "tag_id",
                    "description": "A product tag ID."
                  }
                }
              ]
            }
          },
          {
            "name": "type_id",
            "in": "query",
            "description": "Filter by a type's ID to retrieve the products in it.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "type_id",
                  "description": "Filter by a product type's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by product type IDs.",
                  "items": {
                    "type": "string",
                    "title": "type_id",
                    "description": "A product type ID."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the product's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the product's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "created_at"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the product's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the product's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              },
              "title": "updated_at"
            }
          },
          {
            "name": "region_id",
            "in": "query",
            "description": "The ID of the region the products are being viewed from. This is required if you're retrieving product variant prices with taxes.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "region_id",
              "description": "The ID of the region the products are being viewed from. This is required if you're retrieving product variant prices with taxes.",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/storefront-development/products/price/examples/tax-price",
                "description": "Storefront guide: How to show product variants' prices with taxes."
              }
            }
          },
          {
            "name": "province",
            "in": "query",
            "description": "The lower-case ISO 3166-2 province code the products are being viewed from. This is useful to narrow down the tax context when calculating product variant prices with taxes.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "province",
              "description": "The lower-case ISO 3166-2 province code the products are being viewed from. This is useful to narrow down the tax context when calculating product variant prices with taxes.",
              "example": "us-ca",
              "externalDocs": {
                "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                "description": "Learn more about ISO 3166-2"
              }
            }
          },
          {
            "name": "sales_channel_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "sales_channel_id",
                  "description": "The ID of a sales channel to retrieve products in it."
                },
                {
                  "type": "array",
                  "description": "The IDs of sales channels to retrieve products in them.",
                  "items": {
                    "type": "string",
                    "title": "sales_channel_id",
                    "description": "A sales channel's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "category_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "category_id",
                  "description": "The ID of a product category to retrieve products in it."
                },
                {
                  "type": "array",
                  "description": "The ID of product categories to retrieve products in them.",
                  "items": {
                    "type": "string",
                    "title": "category_id",
                    "description": "A product category's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "variants",
            "in": "query",
            "description": "Filter the products' variants.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter the products' variants.",
              "x-schemaName": "StoreProductVariantParams",
              "properties": {
                "options": {
                  "type": "object",
                  "description": "Filter by the variants' options.",
                  "required": [
                    "value",
                    "option_id"
                  ],
                  "properties": {
                    "option_id": {
                      "type": "string",
                      "title": "option_id",
                      "description": "The ID of the option to filter by."
                    },
                    "value": {
                      "type": "string",
                      "title": "value",
                      "description": "Filter by a value of the option."
                    }
                  }
                }
              }
            }
          },
          {
            "name": "country_code",
            "in": "query",
            "description": "The product's country code.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "country_code",
              "description": "The product's country code."
            }
          },
          {
            "name": "cart_id",
            "in": "query",
            "description": "The product's cart id.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "cart_id",
              "description": "The product's cart id."
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.product.list()\n.then(({ products, count, offset, limit }) => {\n  console.log(products)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/products' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreProductListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/products/{id}": {
      "get": {
        "operationId": "StoreGetProductsId",
        "summary": "Get a Product",
        "description": "Retrieve a product by its ID. You can expand the product's relations or select the fields that should be returned.\n\nYou can retrieve the content of the product translated to a specific locale either by passing the `locale` query parameter or by setting the `x-medusa-locale` header to the desired locale code in BCP 47 format. If you don't pass a locale, and your store has a default locale, the default locale will be used.\n\nWith localization, the product's content like title and description will be in the specified locale if a translation is available,  and fallback to the original content otherwise. Learn more in the [Localization](#localization) section.\n",
        "x-authenticated": false,
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/products/price",
          "description": "Storefront guide: How to retrieve a product variants' prices."
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "region_id",
            "in": "query",
            "description": "The ID of the region the product is being viewed from. This is required if you're retrieving product variant prices with taxes.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "region_id",
              "description": "The ID of the region the product is being viewed from. This is required if you're retrieving product variant prices with taxes.",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/storefront-development/products/price/examples/tax-price",
                "description": "Storefront guide: How to show product variants' prices with taxes."
              }
            }
          },
          {
            "name": "country_code",
            "in": "query",
            "description": "The country code the product is being viewed from. This is required if you're retrieving product variant prices with taxes.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "country_code",
              "description": "The country code the product is being viewed from. This is required if you're retrieving product variant prices with taxes."
            }
          },
          {
            "name": "province",
            "in": "query",
            "description": "The lower-case ISO 3166-2 province code the product is being viewed from. This is useful to narrow down the tax context when calculating product variant prices with taxes.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "province",
              "description": "The lower-case ISO 3166-2 province code the product is being viewed from. This is useful to narrow down the tax context when calculating product variant prices with taxes.",
              "example": "us-ca",
              "externalDocs": {
                "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                "description": "Learn more about ISO 3166-2"
              }
            }
          },
          {
            "name": "cart_id",
            "in": "query",
            "description": "The ID of the customer's cart. If set, the cart's region and shipping address's country code and province are used instead of the `region_id`, `country_code`, and `province` properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "cart_id",
              "description": "The ID of the customer's cart. If set, the cart's region and shipping address's country code and province are used instead of the `region_id`, `country_code`, and `province` properties."
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.product.retrieve(\"prod_123\")\n.then(({ product }) => {\n  console.log(product)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/products/{id}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreProductResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/regions": {
      "get": {
        "operationId": "StoreGetRegions",
        "summary": "List Regions",
        "description": "Retrieve a list of regions. The regions can be filtered by fields such as `id`. The regions can also be sorted or paginated.",
        "x-authenticated": false,
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/regions/list",
          "description": "Storefront guide: How to retrieve a list of regions."
        },
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the region's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the region's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a region's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by region IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A region's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "name",
                  "description": "Filter by a region name."
                },
                {
                  "type": "array",
                  "description": "Filter by region names.",
                  "items": {
                    "type": "string",
                    "title": "name",
                    "description": "A region's name."
                  }
                }
              ]
            }
          },
          {
            "name": "currency_code",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "currency_code",
                  "description": "Filter by a currency code to retrieve regions that use that code."
                },
                {
                  "type": "array",
                  "description": "Filter by currency codes to retrieve regions that use one of these codes.",
                  "items": {
                    "type": "string",
                    "title": "currency_code",
                    "description": "A currency code."
                  }
                }
              ]
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.region.list()\n.then(({ regions, count, limit, offset }) => {\n  console.log(regions)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/regions' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Regions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of regions.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of regions.",
                      "required": [
                        "regions"
                      ],
                      "properties": {
                        "regions": {
                          "type": "array",
                          "description": "The list of regions.",
                          "items": {
                            "$ref": "#/components/schemas/StoreRegion"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/regions/{id}": {
      "get": {
        "operationId": "StoreGetRegionsId",
        "summary": "Get a Region",
        "description": "Retrieve a region by its ID. You can expand the region's relations or select the fields that should be returned.",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The region's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.region.retrieve(\"reg_123\")\n.then(({ region }) => {\n  console.log(region)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/regions/{id}'"
          }
        ],
        "tags": [
          "Store Regions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The region's details.",
                  "required": [
                    "region"
                  ],
                  "properties": {
                    "region": {
                      "$ref": "#/components/schemas/StoreRegion"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/return-reasons": {
      "get": {
        "operationId": "StoreGetReturnReasons",
        "summary": "List Return Reasons",
        "description": "Retrieve a list of return reasons. The return reasons can be sorted or paginated.",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "with_deleted",
            "in": "query",
            "description": "Whether to include deleted records in the result.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "with_deleted",
              "description": "Whether to include deleted records in the result."
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/return-reasons' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Return Reasons"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of return reasons.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of return reasons.",
                      "required": [
                        "return_reasons"
                      ],
                      "properties": {
                        "return_reasons": {
                          "type": "array",
                          "description": "The list of return reasons.",
                          "items": {
                            "$ref": "#/components/schemas/StoreReturnReason"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/return-reasons/{id}": {
      "get": {
        "operationId": "StoreGetReturnReasonsId",
        "summary": "Get a Return Reason",
        "description": "Retrieve a return reason by its ID. You can expand the return reason's relations or select the fields that should be returned.",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return reason's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/return-reasons/{id}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Return Reasons"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreReturnReasonResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/returns": {
      "get": {
        "operationId": "StoreListReturns",
        "summary": "List Returns",
        "description": "Retrieves a list of returns for the authenticated customer.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 0
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 50
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "returns": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/StoreReturn"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of returns available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Unauthorized"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Forbidden"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Store"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/store/shipping-options": {
      "get": {
        "operationId": "StoreGetShippingOptions",
        "summary": "List Shipping Options for Cart",
        "description": "Retrieve a list of shipping options for a cart. The cart's ID is set in the required `cart_id` query parameter.\n\nThe shipping options also be sorted or paginated.\n",
        "externalDocs": {
          "url": "https://docs.medusajs.com/resources/storefront-development/checkout/shipping",
          "description": "Storefront guide: How to implement shipping during checkout."
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "cart_id",
            "in": "query",
            "description": "The ID of the cart to retrieve its shipping options.",
            "required": true,
            "schema": {
              "type": "string",
              "title": "cart_id",
              "description": "The ID of the cart to retrieve its shipping options."
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "is_return",
            "in": "query",
            "description": "Whether the shipping option can be used for returns.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "is_return",
              "description": "Whether the shipping option can be used for returns."
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.fulfillment.listCartOptions({\n  cart_id: \"cart_123\"\n})\n.then(({ shipping_options }) => {\n  console.log(shipping_options)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/shipping-options' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Shipping Options"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreShippingOptionListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "listShippingOptionsForCartWorkflow",
        "x-events": []
      }
    },
    "/store/shipping-options/{id}/calculate": {
      "post": {
        "operationId": "StorePostShippingOptionsIdCalculate",
        "summary": "Calculate Shipping Option Price",
        "description": "Calculate the price of a shipping option in a cart.",
        "x-authenticated": false,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The shipping option's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "x-medusa-locale",
            "in": "header",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "The locale in BCP 47 format to retrieve localized content.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "en-US",
              "externalDocs": {
                "url": "https://docs.medusajs.com/resources/commerce-modules/translation/storefront",
                "description": "Learn more in the Serve Translations in Storefront guide."
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "The calculation's details.",
                "required": [
                  "cart_id"
                ],
                "properties": {
                  "cart_id": {
                    "type": "string",
                    "title": "cart_id",
                    "description": "The ID of the cart the shipping option is used in."
                  },
                  "data": {
                    "type": "object",
                    "description": "Custom data that's useful for the fulfillment provider to calculate the price.",
                    "externalDocs": {
                      "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property"
                    }
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.fulfillment.calculate(\"so_123\", {\n  cart_id: \"cart_123\"\n})\n.then(({ shipping_option }) => {\n  console.log(shipping_option)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/store/shipping-options/{id}/calculate' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"cart_id\": \"{value}\"\n}'"
          }
        ],
        "tags": [
          "Store Shipping Options"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreShippingOptionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "x-workflow": "calculateShippingOptionsPricesWorkflow",
        "x-events": []
      }
    },
    "/store/store-credit-accounts": {
      "get": {
        "operationId": "StoreGetStoreCreditAccounts",
        "summary": "List Customer's Store Credit Accounts",
        "x-sidebar-summary": "List Store Credit Accounts",
        "description": "Retrieve the logged-in customer's store credit accounts. The store credit accounts can be filtered by fields such as `id`. The store credit accounts can also be sorted or paginated.",
        "x-authenticated": true,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "currency_code",
            "in": "query",
            "description": "Filter by the store credit account's currency code.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "currency_code",
              "description": "Filter by the store credit account's currency code.",
              "example": "usd"
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by a store credit account's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a store credit account's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              }
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by a store credit account's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by a store credit account's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by an exact match.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "Filter by values in this array."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "Filter by values not in this array."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter."
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "Filter arrays that have overlapping values with this parameter."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "Filter arrays that contain some of the values of this parameter."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "Filter arrays that contain all values of this parameter."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/store-credit-accounts' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Store Credit Accounts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreStoreCreditAccountsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      }
    },
    "/store/store-credit-accounts/{id}": {
      "get": {
        "operationId": "StoreGetStoreCreditAccountsId",
        "summary": "Get Customer's Store Credit Account",
        "x-sidebar-summary": "Get Store Credit Account",
        "description": "Retrieve logged-in customer's store credit account by its ID. You can expand the store credit account's relations or select the fields that should be returned.",
        "x-authenticated": true,
        "x-ignoreCleanup": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The store credit account's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data.\nif a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.\nwithout prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/store-credit-accounts/{id}' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Store Credit Accounts"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreStoreCreditAccountResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        },
        "security": [
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "x-badges": [
          {
            "text": "Cloud",
            "description": "This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).\n"
          }
        ]
      }
    },
    "/admin/algolia": {
      "get": {
        "operationId": "AdminGetAlgoliaStatus",
        "summary": "Get Algolia Status",
        "description": "Retrieves the current status of Algolia configuration and product index.",
        "x-authenticated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "appId": {
                      "type": "string",
                      "description": "The Algolia application ID",
                      "example": "YOUR_ALGOLIA_APP_ID"
                    },
                    "productIndex": {
                      "type": "object",
                      "description": "The status of the product index",
                      "properties": {
                        "exists": {
                          "type": "boolean",
                          "description": "Whether the product index exists"
                        },
                        "name": {
                          "type": "string",
                          "description": "The name of the product index"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Algolia"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "AdminSyncAlgolia",
        "summary": "Sync Algolia",
        "description": "Initiates a synchronization process for Algolia indices.",
        "x-authenticated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Confirmation message that sync is in progress",
                      "example": "Sync in progress"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Algolia"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/attributes": {
      "get": {
        "operationId": "AdminListAttributes",
        "summary": "List Attributes",
        "description": "Retrieves a list of attributes with optional filtering.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          },
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Filter by attribute ID."
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Filter by attribute name."
          },
          {
            "name": "handle",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Filter by attribute handle."
          },
          {
            "name": "is_global",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "required": false,
            "description": "Filter for global attributes (not assigned to any category)."
          },
          {
            "name": "ui_component",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "select",
                "multivalue",
                "unit",
                "toggle",
                "text_area",
                "color_picker"
              ]
            },
            "required": false,
            "description": "Filter by UI component type."
          },
          {
            "name": "created_at",
            "in": "query",
            "schema": {
              "type": "object"
            },
            "required": false,
            "description": "Filter by creation date using operators."
          },
          {
            "name": "updated_at",
            "in": "query",
            "schema": {
              "type": "object"
            },
            "required": false,
            "description": "Filter by update date using operators."
          },
          {
            "name": "deleted_at",
            "in": "query",
            "schema": {
              "type": "object"
            },
            "required": false,
            "description": "Filter by deletion date using operators."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "attributes": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Attribute"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Attributes"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "AdminCreateAttribute",
        "summary": "Create Attribute",
        "description": "Creates a new attribute with the specified properties.",
        "x-authenticated": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The name of the attribute."
                  },
                  "description": {
                    "type": "string",
                    "description": "A description of the attribute."
                  },
                  "handle": {
                    "type": "string",
                    "description": "A unique handle for the attribute."
                  },
                  "is_filterable": {
                    "type": "boolean",
                    "description": "Whether the attribute can be used for filtering products."
                  },
                  "is_required": {
                    "type": "boolean",
                    "description": "Whether the attribute is required for products."
                  },
                  "ui_component": {
                    "type": "string",
                    "enum": [
                      "select",
                      "multivalue",
                      "unit",
                      "toggle",
                      "text_area",
                      "color_picker"
                    ],
                    "default": "select",
                    "description": "The UI component type for this attribute."
                  },
                  "metadata": {
                    "type": "object",
                    "description": "Additional metadata for the attribute."
                  },
                  "possible_values": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "value",
                        "rank"
                      ],
                      "properties": {
                        "value": {
                          "type": "string",
                          "minLength": 1,
                          "description": "The value of the possible value."
                        },
                        "rank": {
                          "type": "number",
                          "description": "The rank/order of the possible value."
                        },
                        "metadata": {
                          "type": "object",
                          "description": "Additional metadata for the possible value."
                        }
                      }
                    },
                    "description": "Array of possible values for the attribute (required when ui_component is 'select')."
                  },
                  "product_category_ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Array of product category IDs to associate with this attribute."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "attribute": {
                      "$ref": "#/components/schemas/Attribute"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Possible values are required when ui_component is SELECT"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Attributes"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/attributes/{id}": {
      "get": {
        "operationId": "AdminGetAttribute",
        "summary": "Get Attribute",
        "description": "Retrieves a specific attribute by its ID.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the attribute to retrieve."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "attribute": {
                      "$ref": "#/components/schemas/Attribute"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Attribute with id 'attr_123' not found"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Attributes"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "AdminUpdateAttribute",
        "summary": "Update Attribute",
        "description": "Updates an existing attribute with the specified properties.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the attribute to update."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The name of the attribute."
                  },
                  "description": {
                    "type": "string",
                    "description": "A description of the attribute."
                  },
                  "handle": {
                    "type": "string",
                    "description": "A unique handle for the attribute."
                  },
                  "is_filterable": {
                    "type": "boolean",
                    "description": "Whether the attribute can be used for filtering products."
                  },
                  "is_required": {
                    "type": "boolean",
                    "description": "Whether the attribute is required for products."
                  },
                  "ui_component": {
                    "type": "string",
                    "enum": [
                      "select",
                      "multivalue",
                      "unit",
                      "toggle",
                      "text_area",
                      "color_picker"
                    ],
                    "description": "The UI component type for this attribute."
                  },
                  "metadata": {
                    "type": "object",
                    "description": "Additional metadata for the attribute."
                  },
                  "product_category_ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Array of product category IDs to associate with this attribute."
                  },
                  "possible_values": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "The ID of the possible value (for updates)."
                        },
                        "value": {
                          "type": "string",
                          "description": "The value of the possible value."
                        },
                        "rank": {
                          "type": "number",
                          "description": "The rank/order of the possible value."
                        },
                        "metadata": {
                          "type": "object",
                          "description": "Additional metadata for the possible value."
                        }
                      }
                    },
                    "description": "Array of possible values for the attribute."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "attribute": {
                      "$ref": "#/components/schemas/Attribute"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Attribute with id 'attr_123' not found"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Attributes"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteAttribute",
        "summary": "Delete Attribute",
        "description": "Deletes an attribute and all its associated possible values.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the attribute to delete."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted attribute."
                    },
                    "object": {
                      "type": "string",
                      "example": "attribute"
                    },
                    "deleted": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Attributes"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/attributes/{id}/values": {
      "get": {
        "operationId": "AdminListAttributeValues",
        "summary": "List Attribute Values",
        "description": "Retrieves a list of possible values for a specific attribute.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the attribute."
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "attribute_possible_values": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AttributePossibleValue"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Attributes"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "AdminCreateAttributeValue",
        "summary": "Create Attribute Value",
        "description": "Creates a new possible value for a specific attribute.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the attribute."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "value",
                  "rank"
                ],
                "properties": {
                  "value": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The value of the possible value."
                  },
                  "rank": {
                    "type": "number",
                    "description": "The rank/order of the possible value."
                  },
                  "metadata": {
                    "type": "object",
                    "description": "Additional metadata for the possible value."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "attribute_possible_value": {
                      "$ref": "#/components/schemas/AttributePossibleValue"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Attributes"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/attributes/{id}/values/{value_id}": {
      "get": {
        "operationId": "AdminGetAttributeValue",
        "summary": "Get Attribute Value",
        "description": "Retrieves a specific attribute possible value by its ID.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the attribute."
          },
          {
            "name": "value_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the attribute possible value."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "attribute_possible_value": {
                      "$ref": "#/components/schemas/AttributePossibleValue"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Attribute possible value not found"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Attributes"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "AdminUpdateAttributeValue",
        "summary": "Update Attribute Value",
        "description": "Updates an existing attribute possible value with the specified properties.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the attribute."
          },
          {
            "name": "value_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the attribute possible value to update."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "The value of the possible value."
                  },
                  "rank": {
                    "type": "number",
                    "description": "The rank/order of the possible value."
                  },
                  "metadata": {
                    "type": "object",
                    "description": "Additional metadata for the possible value."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "attribute_possible_value": {
                      "$ref": "#/components/schemas/AttributePossibleValue"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Attribute possible value not found"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Attributes"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/commission/commission-lines": {
      "get": {
        "operationId": "AdminListCommissionLines",
        "summary": "List Commission Lines",
        "description": "Retrieves a list of commission lines with optional filtering and expansion.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          },
          {
            "name": "start_date",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false,
            "description": "Filter commission lines created after this date."
          },
          {
            "name": "end_date",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false,
            "description": "Filter commission lines created before this date."
          },
          {
            "name": "seller_id",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Filter commission lines by seller ID."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "commission_lines": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AdminCommissionLine"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Commission"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/commission/default": {
      "get": {
        "operationId": "AdminGetDefaultCommissionRule",
        "summary": "Get default commission rule",
        "description": "Retrieves a commission rule with 'site' reference type.",
        "x-authenticated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "commission_rule": {
                      "$ref": "#/components/schemas/AdminCommissionAggregate"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Commission"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "AdminUpsertDefaultCommissionRule",
        "summary": "Upsert default CommissionRule",
        "description": "Creates or updates default commission rule.",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpsertDefaultCommissionRule"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "commission_rule": {
                      "$ref": "#/components/schemas/AdminCommissionRule"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Commission"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/commission/rules": {
      "get": {
        "operationId": "AdminListCommissionRules",
        "summary": "List Commission rules",
        "description": "Retrieves a list of commission rules.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "commission_rules": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AdminCommissionAggregate"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Commission"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "AdminCreateCommissionRule",
        "summary": "Create a CommissionRule",
        "description": "Creates a new commission rule.",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateCommissionRule"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "commission_rule": {
                      "$ref": "#/components/schemas/AdminCommissionRule"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Commission"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/commission/rules/{id}": {
      "get": {
        "operationId": "AdminGetCommissionRuleById",
        "summary": "Get commission rule by id",
        "description": "Retrieves a commission rule by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Rule.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "commission_rule": {
                      "$ref": "#/components/schemas/AdminCommissionAggregate"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Commission"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "AdminUpdateCommissionRuleById",
        "summary": "Update CommissionRule",
        "description": "Updates commission rule by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Rule.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateCommissionRule"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "commission_rule": {
                      "$ref": "#/components/schemas/AdminCommissionRule"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Commission"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "AdminDeleteCommissionRuleById",
        "summary": "Delete a Commission Rule",
        "description": "Deletes a commission rule by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the rule.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted rule"
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Commission"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/configuration": {
      "get": {
        "operationId": "AdminListRules",
        "summary": "List rules",
        "description": "Retrieves rules list",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "configuration_rules": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ConfigurationRule"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of requests"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of requests skipped"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of requests per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Configuration"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "AdminCreateRule",
        "summary": "Create a configuration rule",
        "description": "Creates a request to admin to accept new resource",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminCreateRule"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "configuration_rule": {
                      "$ref": "#/components/schemas/ConfigurationRule"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Configuration"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/configuration/{id}": {
      "post": {
        "operationId": "AdminUpdateRule",
        "summary": "Update a configuration rule",
        "description": "Updates a rule",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Rule.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminUpdateRule"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "configuration_rule": {
                      "$ref": "#/components/schemas/ConfigurationRule"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Configuration"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/custom/product-variants": {
      "get": {
        "operationId": "AdminListProductVariantsFiltered",
        "summary": "List Product Variants (Filtered)",
        "description": "Retrieves a filtered list of product variants with advanced filtering options (seller, price, inventory).",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          },
          {
            "name": "seller_id",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Filter by seller ID."
          },
          {
            "name": "has_price",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "required": false,
            "description": "Filter variants that have prices."
          },
          {
            "name": "has_inventory",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "required": false,
            "description": "Filter variants that have inventory items."
          },
          {
            "name": "has_stock_location",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "required": false,
            "description": "Filter variants that have at least one inventory level in any stock location."
          },
          {
            "name": "has_admin_stock_location",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "required": false,
            "description": "Filter variants that have (or don't have) at least one admin-owned stock location (not linked to any seller)."
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Search query for variant title or SKU."
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "The order of the returned items."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "variants": {
                      "type": "array",
                      "description": "Array of product variants.",
                      "items": {
                        "type": "object",
                        "description": "Product variant object with details."
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Product Variants"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/order-sets": {
      "get": {
        "operationId": "AdminListOrderSets",
        "summary": "List Order Sets",
        "description": "Retrieves a list of order sets with optional filtering.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          },
          {
            "name": "order_id",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Filter order sets by a specific order ID."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order_sets": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AdminOrderSet"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Order Sets"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/order-sets/{id}": {
      "get": {
        "operationId": "AdminGetOrderSet",
        "summary": "Get Order Set",
        "description": "Retrieves a specific order set by its ID.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the order set to retrieve."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order_set": {
                      "$ref": "#/components/schemas/AdminOrderSet"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Order set not found"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Order Sets"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/products/{id}/applicable-attributes": {
      "get": {
        "operationId": "AdminGetProductApplicableAttributes",
        "summary": "Get Product Applicable Attributes",
        "description": "Retrieves all attributes that can be applied to a specific product, including global attributes and category-specific attributes.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the product to get applicable attributes for."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "attributes": {
                      "type": "array",
                      "description": "Array of attributes that can be applied to the product, including global attributes and category-specific attributes.",
                      "items": {
                        "$ref": "#/components/schemas/Attribute"
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Product not found"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Products"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/requests": {
      "get": {
        "operationId": "AdminListRequests",
        "summary": "List requests",
        "description": "Retrieves requests list",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "number"
            },
            "description": "The number of items to return. Default 50."
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "type": "number"
            },
            "description": "The number of items to skip before starting the response. Default 0."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "product",
                "product_collection",
                "product_collection_update",
                "product_category",
                "seller",
                "review_remove",
                "product_type",
                "product_tag",
                "product_update"
              ]
            },
            "required": false,
            "description": "Filter by request type"
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "pending",
                "rejected",
                "accepted"
              ]
            },
            "required": false,
            "description": "Filter by request status"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "requests": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AdminRequest"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of requests"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of requests skipped"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of requests per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Requests"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/requests/{id}": {
      "get": {
        "operationId": "AdminGetRequestById",
        "summary": "Get return request by id",
        "description": "Retrieves a request by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Request.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "request": {
                      "$ref": "#/components/schemas/AdminRequest"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Requests"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "AdminReviewRequestById",
        "summary": "Get return request by id",
        "description": "Retrieves a request by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Request.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminReviewRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "accepted",
                        "rejected"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Requests"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/reviews": {
      "get": {
        "operationId": "AdminListReviews",
        "summary": "List reviews",
        "description": "Retrieves review list",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "number"
            },
            "description": "The number of items to return. Default 50."
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "type": "number"
            },
            "description": "The number of items to skip before starting the response. Default 0."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          },
          {
            "name": "reference",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "product",
                "seller"
              ]
            },
            "required": false,
            "description": "Filter by review reference"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "reviews": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Review"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of reviews"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of reviews skipped"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of reviews per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Reviews"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/reviews/{id}": {
      "get": {
        "operationId": "AdminGetReviewById",
        "summary": "Get review by id",
        "description": "Retrieves a review by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Review.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "review": {
                      "$ref": "#/components/schemas/Review"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Reviews"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/sellers": {
      "get": {
        "operationId": "AdminListSellers",
        "summary": "List Sellers",
        "description": "Retrieves a list of sellers.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "sellers": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorSeller"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Sellers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/sellers/invite": {
      "post": {
        "operationId": "AdminInviteSeller",
        "summary": "Invite Seller",
        "description": "Sends an invitation to a new seller to join the platform.",
        "x-authenticated": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email",
                    "description": "The email address of the seller to invite."
                  },
                  "registration_url": {
                    "type": "string",
                    "default": "http://localhost:5173/register",
                    "description": "The registration URL for the invitation."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "invitation": {
                      "$ref": "#/components/schemas/AdminSellerInvitation"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Invalid email format"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Sellers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/sellers/{id}": {
      "get": {
        "operationId": "AdminGetSeller",
        "summary": "Get Seller",
        "description": "Retrieves a specific seller by its ID.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the seller to retrieve."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "seller": {
                      "$ref": "#/components/schemas/AdminSeller"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Seller not found"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Sellers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "AdminUpdateSeller",
        "summary": "Update Seller",
        "description": "Updates an existing seller with the specified properties.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the seller to update."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 4,
                    "description": "The name of the seller."
                  },
                  "description": {
                    "type": "string",
                    "description": "A description of the seller."
                  },
                  "photo": {
                    "type": "string",
                    "description": "URL to the seller's photo."
                  },
                  "email": {
                    "type": "string",
                    "format": "email",
                    "description": "Store contact email."
                  },
                  "phone": {
                    "type": "string",
                    "description": "Store contact phone."
                  },
                  "address_line": {
                    "type": "string",
                    "description": "Seller address line."
                  },
                  "city": {
                    "type": "string",
                    "description": "Seller city."
                  },
                  "state": {
                    "type": "string",
                    "description": "Seller state."
                  },
                  "postal_code": {
                    "type": "string",
                    "description": "Seller postal code."
                  },
                  "country_code": {
                    "type": "string",
                    "description": "Seller country code."
                  },
                  "tax_id": {
                    "type": "string",
                    "description": "Seller tax ID."
                  },
                  "store_status": {
                    "type": "string",
                    "enum": [
                      "active",
                      "inactive",
                      "suspended"
                    ],
                    "description": "The status of the seller's store."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "seller": {
                      "$ref": "#/components/schemas/AdminSeller"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Seller not found"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Sellers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/sellers/{id}/customer-groups": {
      "get": {
        "operationId": "AdminListSellerCustomerGroups",
        "summary": "List Seller Customer Groups",
        "description": "Retrieves a list of customer groups associated with a specific seller.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the seller."
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "customer_groups": {
                      "type": "array",
                      "description": "Array of customer groups associated with the seller.",
                      "items": {
                        "type": "object",
                        "description": "Customer group object with details."
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Seller not found"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Sellers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/sellers/{id}/orders": {
      "get": {
        "operationId": "AdminListSellerOrders",
        "summary": "List Seller Orders",
        "description": "Retrieves a list of orders associated with a specific seller.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the seller."
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "orders": {
                      "type": "array",
                      "description": "Array of orders associated with the seller.",
                      "items": {
                        "type": "object",
                        "description": "Order object with details."
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Seller not found"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Sellers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/admin/sellers/{id}/products": {
      "get": {
        "operationId": "AdminListSellerProducts",
        "summary": "List Seller Products",
        "description": "Retrieves a list of products associated with a specific seller.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the seller."
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "products": {
                      "type": "array",
                      "description": "Array of products associated with the seller.",
                      "items": {
                        "type": "object",
                        "description": "Product object with details."
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Seller not found"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Admin Sellers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/auth/seller/{auth_provider}": {
      "post": {
        "operationId": "PostSeller_typeAuth_provider",
        "summary": "Authenticate Seller",
        "description": "Authenticate a seller and receive the JWT token to be used in the header of subsequent requests.\n\nWhen used with a third-party provider, such as Google, the request returns a `location` property. You redirect to the specified URL in your frontend to continue authentication with the third-party service.\n",
        "externalDocs": {
          "url": "https://docs.medusajs.com/v2/resources/commerce-modules/auth/authentication-route#types-of-authentication-flows",
          "description": "Learn about different authentication flows."
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "auth_provider",
            "in": "path",
            "description": "The provider used for authentication.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "emailpass"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "title": "input",
                "description": "The input data necessary for authentication. For example, for email-pass authentication, pass `email` and `password` properties."
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "EmailPass Provider",
            "source": "curl -X POST '{backend_url}/auth/seller/emailpass' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"email\": \"admin@medusa-test.com\",\n  \"password\": \"supersecret\"\n}'"
          },
          {
            "lang": "Bash",
            "label": "Google Provider",
            "source": "curl -X POST '{backend_url}/auth/seller/google'"
          }
        ],
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/AuthResponse"
                    },
                    {
                      "$ref": "#/components/schemas/AuthCallbackResponse"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/auth/seller/{auth_provider}/register": {
      "post": {
        "operationId": "PostSeller_typeAuth_provider_register",
        "summary": "Retrieve Registration JWT Token",
        "description": "This API route retrieves a registration JWT token of a seller that hasn't been registered yet. The token is used in the header of requests that create a seller, such as the Accept Invite API route.",
        "externalDocs": {
          "url": "https://docs.medusajs.com/v2/resources/commerce-modules/auth/authentication-route#1-basic-authentication-flow",
          "description": "Learn about the basic authentication flow."
        },
        "x-authenticated": false,
        "parameters": [
          {
            "name": "auth_provider",
            "in": "path",
            "description": "The provider used for authentication.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "emailpass"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "title": "input",
                "description": "The input data necessary for authentication. For example, for email-pass authentication, pass `email` and `password` properties.",
                "example": {
                  "email": "admin@medusa-test.com",
                  "password": "supersecret"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -X POST '{backend_url}/auth/seller/emailpass/register' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n  \"email\": \"admin@medusa-test.com\",\n  \"password\": \"supersecret\"\n}'"
          }
        ],
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      }
    },
    "/store/order-set": {
      "get": {
        "operationId": "StoreListOrderSets",
        "summary": "List Order Sets",
        "description": "Retrieves a list of order sets for the authenticated customer.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 0
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 50
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order_sets": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/StoreOrderSet"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of order sets available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Unauthorized"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Forbidden"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Store"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/store/products/search": {
      "post": {
        "operationId": "StoreSearchProducts",
        "summary": "Search products",
        "description": "Searches products using Algolia and returns hydrated product data from the database. Only product IDs are retrieved from Algolia to avoid the 10KB response limit, all product data is fetched from the database.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "query": {
                    "type": "string",
                    "description": "The search query string"
                  },
                  "page": {
                    "type": "number",
                    "description": "The page number (0-indexed)"
                  },
                  "hitsPerPage": {
                    "type": "number",
                    "description": "Number of results per page"
                  },
                  "filters": {
                    "type": "string",
                    "description": "Algolia filter string"
                  },
                  "facets": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Array of facet attributes to retrieve"
                  },
                  "maxValuesPerFacet": {
                    "type": "number",
                    "description": "Maximum number of facet values to return per facet"
                  },
                  "currency_code": {
                    "type": "string",
                    "description": "Currency code for price calculation"
                  },
                  "region_id": {
                    "type": "string",
                    "description": "Region ID for price calculation"
                  },
                  "customer_id": {
                    "type": "string",
                    "description": "Customer ID for customer-specific price calculation"
                  },
                  "customer_group_id": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Customer group IDs for group-specific price calculation"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "products": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "nbHits": {
                      "type": "number",
                      "description": "Total number of matching products"
                    },
                    "page": {
                      "type": "number",
                      "description": "Current page number"
                    },
                    "nbPages": {
                      "type": "number",
                      "description": "Total number of pages"
                    },
                    "hitsPerPage": {
                      "type": "number",
                      "description": "Number of results per page"
                    },
                    "facets": {
                      "type": "object",
                      "description": "Facet values and counts"
                    },
                    "processingTimeMS": {
                      "type": "number",
                      "description": "Algolia processing time in milliseconds"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Store Products"
        ]
      }
    },
    "/store/return-request": {
      "get": {
        "operationId": "StoreListOrderReturnRequests",
        "summary": "List return requests",
        "description": "Retrieves a list of return requests for the authenticated customer",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response"
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer"
            },
            "required": false,
            "description": "The number of requests to return"
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer"
            },
            "required": false,
            "description": "The number of requests to skip"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order_return_requests": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/OrderReturnRequest"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of requests"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of requests skipped"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of requests per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Store Return Request"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "StoreCreateOrderReturnRequest",
        "summary": "Create an order return request",
        "description": "Creates a new order return request for the authenticated customer",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreCreateOrderReturnRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order_return_request": {
                      "$ref": "#/components/schemas/OrderReturnRequest"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Store Return Request"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/store/return-request/{id}": {
      "get": {
        "operationId": "StoreGetOrderReturnRequestById",
        "summary": "Get return request by id",
        "description": "Retrieves a request by id for the authenticated customer.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Request.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "orderReturnRequest": {
                      "$ref": "#/components/schemas/OrderReturnRequest"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Store Return Request"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/store/reviews": {
      "get": {
        "operationId": "StoreGetMyReviews",
        "summary": "Get reviews of the current user",
        "description": "Retrieves the reviews created by the authenticated user.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "products": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Review"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Store Reviews"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "StoreCreateNewReview",
        "summary": "Create new review",
        "description": "Creates new review with rating and comment",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreCreateReview"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/Review"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Store Reviews"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/store/reviews/{id}": {
      "get": {
        "operationId": "StoreGetReviewById",
        "summary": "Get Review",
        "description": "Retrieves a review of specified id",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Review.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/Review"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Store Reviews"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "StoreUpdateReviewById",
        "summary": "Update a Review",
        "description": "Updates customer_note and rating for the review of specified id",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Review.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreUpdateReview"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/Review"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Store Reviews"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "StoreDeleteReviewById",
        "summary": "Delete a Review",
        "description": "Deletes a review by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Review.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted Review"
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Store Reviews"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/store/seller": {
      "get": {
        "operationId": "StoreGetSellers",
        "summary": "Get sellers",
        "description": "Retrieves the seller list.",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "products": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/StoreSeller"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Store Sellers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/store/seller/{handle}": {
      "get": {
        "operationId": "StoreGetSellerByHandle",
        "summary": "Get seller",
        "description": "Retrieves seller of specified handle",
        "parameters": [
          {
            "in": "path",
            "name": "handle",
            "required": true,
            "description": "The handle of the seller",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/StoreSeller"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Store Sellers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/store/shipping-options/return": {
      "get": {
        "operationId": "GetReturnShippingOptions",
        "summary": "Get Return Shipping Options",
        "description": "Retrieves a list of return shipping options for a specific order",
        "tags": [
          "Store Shipping Options"
        ],
        "parameters": [
          {
            "name": "order_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the order to get return shipping options for"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved return shipping options",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "shipping_options": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The ID of the shipping option"
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the shipping option"
                          },
                          "price_type": {
                            "type": "string",
                            "description": "The type of price calculation",
                            "enum": [
                              "flat_rate",
                              "calculated"
                            ]
                          },
                          "amount": {
                            "type": "number",
                            "description": "The amount to charge for the shipping option"
                          },
                          "data": {
                            "type": "object",
                            "description": "Additional data about the shipping option"
                          },
                          "requirements": {
                            "type": "object",
                            "description": "Requirements for the shipping option"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/store/wishlist": {
      "get": {
        "operationId": "StoreGetMyWishlist",
        "summary": "Get wishlist of the current user",
        "description": "Retrieve a list of products in the wishlist of the current user. The products can be filtered by fields such as `id`. The products can also be sorted or paginated.",
        "x-authenticated": true,
        "externalDocs": {
          "url": "https://docs.medusajs.com/v2/resources/storefront-development/wishlist",
          "description": "Storefront guide: How to retrieve a wishlist of the current user."
        },
        "parameters": [
          {
            "name": "x-publishable-api-key",
            "in": "header",
            "description": "Publishable API Key created in the Medusa Admin.",
            "required": true,
            "schema": {
              "type": "string",
              "externalDocs": {
                "url": "https://docs.medusajs.com/api/store#publishable-api-key"
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
              "externalDocs": {
                "url": "#select-fields-and-relations"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of items to skip when retrieving a list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "offset",
              "description": "The number of items to skip when retrieving a list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit the number of items returned in the list.",
            "required": false,
            "schema": {
              "type": "number",
              "title": "limit",
              "description": "Limit the number of items returned in the list.",
              "externalDocs": {
                "url": "#pagination"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "order",
              "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
            }
          },
          {
            "name": "$and",
            "in": "query",
            "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$and"
            }
          },
          {
            "name": "$or",
            "in": "query",
            "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
            "required": false,
            "schema": {
              "type": "array",
              "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
              "items": {
                "type": "object"
              },
              "title": "$or"
            }
          },
          {
            "name": "q",
            "in": "query",
            "description": "Search term to filter the product's searchable properties.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "q",
              "description": "Search term to filter the product's searchable properties."
            }
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "id",
                  "description": "Filter by a product ID."
                },
                {
                  "type": "array",
                  "description": "Filter by product IDs.",
                  "items": {
                    "type": "string",
                    "title": "id",
                    "description": "A product ID."
                  }
                }
              ]
            }
          },
          {
            "name": "title",
            "in": "query",
            "description": "Filter by product titles.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "title",
                  "description": "Filter by a title."
                },
                {
                  "type": "array",
                  "description": "Filter by titles.",
                  "items": {
                    "type": "string",
                    "title": "title",
                    "description": "A title."
                  }
                }
              ]
            }
          },
          {
            "name": "handle",
            "in": "query",
            "description": "Filter by product handles.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "handle",
                  "description": "Filter by a product handle."
                },
                {
                  "type": "array",
                  "description": "Filter by product handles.",
                  "items": {
                    "type": "string",
                    "title": "handle",
                    "description": "A product handle."
                  }
                }
              ]
            }
          },
          {
            "name": "is_giftcard",
            "in": "query",
            "description": "Whether the product is a gift card.",
            "required": false,
            "schema": {
              "type": "boolean",
              "title": "is_giftcard",
              "description": "Whether the product is a gift card."
            }
          },
          {
            "name": "collection_id",
            "in": "query",
            "description": "Filter by a collection's ID to retrieve the products in it.",
            "required": false,
            "schema": {
              "description": "Filter by a collection's ID to retrieve the products in it.",
              "externalDocs": {
                "url": "https://docs.medusajs.com/v2/resources/storefront-development/products/collections/products",
                "description": "Storefront guide: Retrieve a collection's products."
              },
              "items": {
                "type": "string",
                "title": "collection_id",
                "description": "A collection's ID."
              }
            }
          },
          {
            "name": "tag_id",
            "in": "query",
            "description": "Filter by a tag's ID to retrieve the products in it.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "tag_id",
                  "description": "Filter by a product tag's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by product tag IDs.",
                  "items": {
                    "type": "string",
                    "title": "tag_id",
                    "description": "A product tag ID."
                  }
                }
              ]
            }
          },
          {
            "name": "type_id",
            "in": "query",
            "description": "Filter by a type's ID to retrieve the products in it.",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "type_id",
                  "description": "Filter by a product type's ID."
                },
                {
                  "type": "array",
                  "description": "Filter by product type IDs.",
                  "items": {
                    "type": "string",
                    "title": "type_id",
                    "description": "A product type ID."
                  }
                }
              ]
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "description": "Filter by the product's creation date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the product's creation date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              }
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "description": "Filter by the product's update date.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter by the product's update date.",
              "properties": {
                "$and": {
                  "type": "array",
                  "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$and"
                },
                "$or": {
                  "type": "array",
                  "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                  "items": {
                    "type": "object"
                  },
                  "title": "$or"
                },
                "$eq": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    },
                    {
                      "type": "array",
                      "description": "Filter by multiple exact matches.",
                      "items": {
                        "type": "string",
                        "title": "$eq",
                        "description": "An exact match."
                      }
                    }
                  ]
                },
                "$ne": {
                  "type": "string",
                  "title": "$ne",
                  "description": "Filter by values not equal to this parameter."
                },
                "$in": {
                  "type": "array",
                  "description": "Filter by values in this array.",
                  "items": {
                    "type": "string",
                    "title": "$in",
                    "description": "The value to match."
                  }
                },
                "$nin": {
                  "type": "array",
                  "description": "Filter by values not in this array.",
                  "items": {
                    "type": "string",
                    "title": "$nin",
                    "description": "The value not to match."
                  }
                },
                "$not": {
                  "oneOf": [
                    {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching this parameter."
                    },
                    {
                      "type": "object",
                      "description": "Filter by values not matching the conditions in this parameter.",
                      "properties": {
                        "$and": {
                          "type": "array",
                          "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$and"
                        },
                        "$or": {
                          "type": "array",
                          "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                          "items": {
                            "type": "object"
                          },
                          "title": "$or"
                        },
                        "$eq": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$eq",
                              "description": "Filter by an exact match."
                            },
                            {
                              "type": "array",
                              "description": "Filter by multiple exact matches.",
                              "items": {
                                "type": "string",
                                "title": "$eq",
                                "description": "The value to match."
                              }
                            }
                          ]
                        },
                        "$ne": {
                          "type": "string",
                          "title": "$ne",
                          "description": "Filter by values not matching this parameter."
                        },
                        "$in": {
                          "type": "array",
                          "description": "Filter by values in this array.",
                          "items": {
                            "type": "string",
                            "title": "$in",
                            "description": "The value to match."
                          }
                        },
                        "$nin": {
                          "type": "array",
                          "description": "Filter by values not in this array.",
                          "items": {
                            "type": "string",
                            "title": "$nin",
                            "description": "The value to not match"
                          }
                        },
                        "$not": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "$not",
                              "description": "Filter by values not matching this parameter"
                            },
                            {
                              "type": "object",
                              "description": "Filter by values not matching the conditions in this parameter."
                            },
                            {
                              "type": "array",
                              "description": "Filter by values not matching the values of this parameter.",
                              "items": {
                                "type": "string",
                                "title": "$not",
                                "description": "The values to not match."
                              }
                            }
                          ]
                        },
                        "$gt": {
                          "type": "string",
                          "title": "$gt",
                          "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                        },
                        "$gte": {
                          "type": "string",
                          "title": "$gte",
                          "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$lt": {
                          "type": "string",
                          "title": "$lt",
                          "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                        },
                        "$lte": {
                          "type": "string",
                          "title": "$lte",
                          "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                        },
                        "$like": {
                          "type": "string",
                          "title": "$like",
                          "description": "Apply a `like` filter. Useful for strings only."
                        },
                        "$re": {
                          "type": "string",
                          "title": "$re",
                          "description": "Apply a regex filter. Useful for strings only."
                        },
                        "$ilike": {
                          "type": "string",
                          "title": "$ilike",
                          "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                        },
                        "$fulltext": {
                          "type": "string",
                          "title": "$fulltext",
                          "description": "Filter to apply on full-text properties."
                        },
                        "$overlap": {
                          "type": "array",
                          "description": "Filter arrays that have overlapping values with this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$overlap",
                            "description": "The value to match."
                          }
                        },
                        "$contains": {
                          "type": "array",
                          "description": "Filter arrays that contain some of the values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contains",
                            "description": "The values to match."
                          }
                        },
                        "$contained": {
                          "type": "array",
                          "description": "Filter arrays that contain all values of this parameter.",
                          "items": {
                            "type": "string",
                            "title": "$contained",
                            "description": "The values to match."
                          }
                        },
                        "$exists": {
                          "type": "boolean",
                          "title": "$exists",
                          "description": "Filter by whether a value for this parameter exists (not `null`)."
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Filter by values not matching those in this parameter.",
                      "items": {
                        "type": "string",
                        "title": "$not",
                        "description": "The values to not match."
                      }
                    }
                  ]
                },
                "$gt": {
                  "type": "string",
                  "title": "$gt",
                  "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                },
                "$gte": {
                  "type": "string",
                  "title": "$gte",
                  "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                },
                "$lt": {
                  "type": "string",
                  "title": "$lt",
                  "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                },
                "$lte": {
                  "type": "string",
                  "title": "$lte",
                  "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                },
                "$like": {
                  "type": "string",
                  "title": "$like",
                  "description": "Apply a `like` filter. Useful for strings only."
                },
                "$re": {
                  "type": "string",
                  "title": "$re",
                  "description": "Apply a regex filter. Useful for strings only."
                },
                "$ilike": {
                  "type": "string",
                  "title": "$ilike",
                  "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                },
                "$fulltext": {
                  "type": "string",
                  "title": "$fulltext",
                  "description": "Filter to apply on full-text properties."
                },
                "$overlap": {
                  "type": "array",
                  "description": "Filter arrays that have overlapping values with this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$overlap",
                    "description": "The values to match."
                  }
                },
                "$contains": {
                  "type": "array",
                  "description": "Filter arrays that contain some of the values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contains",
                    "description": "The values to match."
                  }
                },
                "$contained": {
                  "type": "array",
                  "description": "Filter arrays that contain all values of this parameter.",
                  "items": {
                    "type": "string",
                    "title": "$contained",
                    "description": "The values to match."
                  }
                },
                "$exists": {
                  "type": "boolean",
                  "title": "$exists",
                  "description": "Filter by whether a value for this parameter exists (not `null`)."
                }
              }
            }
          },
          {
            "name": "region_id",
            "in": "query",
            "description": "The ID of the region the products are being viewed from. This is required if you're retrieving product variant prices with taxes.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "region_id",
              "description": "The ID of the region the products are being viewed from. This is required if you're retrieving product variant prices with taxes.",
              "externalDocs": {
                "url": "https://docs.medusajs.com/v2/resources/storefront-development/products/price/examples/tax-price",
                "description": "Storefront guide: How to show product variants' prices with taxes."
              }
            }
          },
          {
            "name": "province",
            "in": "query",
            "description": "The lower-case ISO 3166-2 province code the products are being viewed from. This is useful to narrow down the tax context when calculating product variant prices with taxes.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "province",
              "description": "The lower-case ISO 3166-2 province code the products are being viewed from. This is useful to narrow down the tax context when calculating product variant prices with taxes.",
              "example": "us-ca",
              "externalDocs": {
                "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                "description": "Learn more about ISO 3166-2"
              }
            }
          },
          {
            "name": "sales_channel_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "sales_channel_id",
                  "description": "The ID of a sales channel to retrieve products in it."
                },
                {
                  "type": "array",
                  "description": "The IDs of sales channels to retrieve products in them.",
                  "items": {
                    "type": "string",
                    "title": "sales_channel_id",
                    "description": "A sales channel's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "category_id",
            "in": "query",
            "required": false,
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "category_id",
                  "description": "The ID of a product category to retrieve products in it."
                },
                {
                  "type": "array",
                  "description": "The ID of product categories to retrieve products in them.",
                  "items": {
                    "type": "string",
                    "title": "category_id",
                    "description": "A product category's ID."
                  }
                }
              ]
            }
          },
          {
            "name": "variants",
            "in": "query",
            "description": "Filter the products' variants.",
            "required": false,
            "schema": {
              "type": "object",
              "description": "Filter the products' variants.",
              "x-schemaName": "StoreProductVariantParams",
              "properties": {
                "options": {
                  "type": "object",
                  "description": "Filter by the variants' options.",
                  "required": [
                    "value",
                    "option_id"
                  ],
                  "properties": {
                    "option_id": {
                      "type": "string",
                      "title": "option_id",
                      "description": "The ID of the option to filter by."
                    },
                    "value": {
                      "type": "string",
                      "title": "value",
                      "description": "Filter by a value of the option."
                    }
                  }
                }
              }
            }
          },
          {
            "name": "country_code",
            "in": "query",
            "description": "The product's country code.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "country_code",
              "description": "The product's country code."
            }
          },
          {
            "name": "cart_id",
            "in": "query",
            "description": "The product's cart id.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "cart_id",
              "description": "The product's cart id."
            }
          }
        ],
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "label": "JS SDK",
            "source": "import Medusa from \"@medusajs/js-sdk\"\n\nlet MEDUSA_BACKEND_URL = \"http://localhost:9000\"\n\nif (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {\n  MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL\n}\n\nexport const sdk = new Medusa({\n  baseUrl: MEDUSA_BACKEND_URL,\n  debug: process.env.NODE_ENV === \"development\",\n  publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,\n})\n\nsdk.store.product.list()\n.then(({ products, count, offset, limit }) => {\n  console.log(products)\n})"
          },
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl '{backend_url}/store/products' \\\n-H 'x-publishable-api-key: {your_publishable_api_key}'"
          }
        ],
        "tags": [
          "Store Wishlist"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "type": "object",
                      "description": "The paginated list of products.",
                      "required": [
                        "limit",
                        "offset",
                        "count"
                      ],
                      "properties": {
                        "limit": {
                          "type": "number",
                          "title": "limit",
                          "description": "The maximum number of items returned."
                        },
                        "offset": {
                          "type": "number",
                          "title": "offset",
                          "description": "The number of items skipped before retrieving the returned items."
                        },
                        "count": {
                          "type": "number",
                          "title": "count",
                          "description": "The total number of items."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "description": "The paginated list of products.",
                      "required": [
                        "products"
                      ],
                      "properties": {
                        "products": {
                          "type": "array",
                          "description": "The list of products.",
                          "items": {
                            "$ref": "#/components/schemas/StoreProduct"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400_error"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/not_found_error"
          },
          "409": {
            "$ref": "#/components/responses/invalid_state_error"
          },
          "422": {
            "$ref": "#/components/responses/invalid_request_error"
          },
          "500": {
            "$ref": "#/components/responses/500_error"
          }
        }
      },
      "post": {
        "operationId": "StoreCreateNewWishlist",
        "summary": "Create new wishlist entry",
        "description": "Creates a new wishlist entry by specifying a reference type and reference ID.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreCreateWishlist"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Id of the wishlsit nad reference id."
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The date with timezone at which the resource was created."
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The date with timezone at which the resource was last updated."
                    },
                    "deleted_at": {
                      "type": "string",
                      "format": "date-time",
                      "description": "The date with timezone at which the resource was deleted."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Store Wishlist"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/store/wishlist/product/{reference_id}": {
      "delete": {
        "operationId": "StoreDeleteWishlist",
        "summary": "Delete a wishlist entry",
        "description": "Removes an item from the wishlist of the currently authenticated user. The wishlist is resolved from the logged-in customer.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "reference_id",
            "in": "path",
            "required": true,
            "description": "ID of the product (wishlist entry) to remove.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Id of the wishlsit nad reference id."
                    },
                    "reference_id": {
                      "type": "string"
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of resource"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Indicates if the wishlist entry was deleted."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Store Wishlist"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/attributes": {
      "get": {
        "operationId": "VendorListAttributes",
        "summary": "List Attributes",
        "description": "Retrieves a list of attributes available to vendors with optional filtering.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          },
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Filter by attribute ID."
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Filter by attribute name."
          },
          {
            "name": "handle",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Filter by attribute handle."
          },
          {
            "name": "ui_component",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "select",
                "multivalue",
                "unit",
                "toggle",
                "text_area",
                "color_picker"
              ]
            },
            "required": false,
            "description": "Filter by UI component type."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "attributes": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorAttribute"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Attributes"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ]
      }
    },
    "/vendor/attributes/{id}": {
      "get": {
        "operationId": "VendorGetAttribute",
        "summary": "Get Attribute",
        "description": "Retrieves a specific attribute by its ID.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The ID of the attribute to retrieve."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "attribute": {
                      "$ref": "#/components/schemas/VendorAttribute"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Attribute not found"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Attributes"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ]
      }
    },
    "/vendor/campaigns": {
      "get": {
        "operationId": "VendorListCampaigns",
        "summary": "List Campaigns",
        "description": "Retrieves a list of campaigns for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Search query to filter campaigns by name (case-insensitive)."
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "campaigns": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorCampaign"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Campaigns"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorCreateCampaign",
        "summary": "Create campaign",
        "description": "Creates a new campaign for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreateCampaign"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "campaign": {
                      "$ref": "#/components/schemas/VendorCampaign"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Campaigns"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/campaigns/{id}": {
      "get": {
        "operationId": "VendorGetCampaignById",
        "summary": "Get campaign",
        "description": "Retrieves campaign by id for the authenticated vendor. Supports filtering, searching, and sorting of associated promotions.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the campaign.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response. Use `*promotions` or `promotions.*` to include promotions.",
            "example": "*promotions"
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Search query to filter promotions by code (case-insensitive partial match).",
            "example": "test"
          },
          {
            "name": "created_at",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Filter promotions by created_at date. Must be a JSON object (URL-encoded) with comparison operators.\nSupported operators: `$gte`, `$lte`, `$gt`, `$lt`, `$eq`, `$ne`.\nExample: `{\"$gte\":\"2025-11-19T11:00:00.000Z\"}` (URL-encoded: `%7B%22%24gte%22%3A%222025-11-19T11%3A00%3A00.000Z%22%7D`)\n",
            "example": "{\"$gte\":\"2025-11-19T11:00:00.000Z\"}"
          },
          {
            "name": "updated_at",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Filter promotions by updated_at date. Must be a JSON object (URL-encoded) with comparison operators.\nSupported operators: `$gte`, `$lte`, `$gt`, `$lt`, `$eq`, `$ne`.\nExample: `{\"$gte\":\"2025-11-19T11:00:00.000Z\"}` (URL-encoded: `%7B%22%24gte%22%3A%222025-11-19T11%3A00%3A00.000Z%22%7D`)\n",
            "example": "{\"$gte\":\"2025-11-19T11:00:00.000Z\"}"
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Sort promotions by property. Prefix with `-` for descending order.\nExamples: `code`, `-code`, `created_at`, `-created_at`, `updated_at`, `-updated_at`\n",
            "example": "-code"
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of promotions to skip before starting to collect the result set.",
            "example": 0
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of promotions to return.",
            "example": 50
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "campaign": {
                      "$ref": "#/components/schemas/VendorCampaign"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Campaigns"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorUpdateCampaignById",
        "summary": "Update campaign",
        "description": "Updates campaign by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the campaign.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdateCampaign"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "campaign": {
                      "$ref": "#/components/schemas/VendorCampaign"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Campaigns"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorDeleteCampaignById",
        "summary": "Delete campaign",
        "description": "Deletes campaign by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the campaign.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted campaign."
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Campaigns"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/campaigns/{id}/promotions": {
      "post": {
        "operationId": "VendorAssignCampaignPromotions",
        "summary": "Assign promotions to campaign",
        "description": "Adds or removes promotions from a campaign for the authenticated vendor. The campaign and all promotions must belong to the vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the campaign.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "add": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Array of promotion IDs to add to the campaign."
                  },
                  "remove": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Array of promotion IDs to remove from the campaign."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "campaign": {
                      "$ref": "#/components/schemas/VendorCampaign"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Campaigns"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/commission": {
      "get": {
        "operationId": "VendorListCommissionLines",
        "summary": "List Commission Lines",
        "description": "Retrieves a list of commission lines for the authenticated vendor/seller with optional filtering.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 0
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 20
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "start_date",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false,
            "description": "Filter commission lines created on or after this date."
          },
          {
            "name": "end_date",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false,
            "description": "Filter commission lines created on or before this date."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "commission_lines": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorCommissionLine"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of commission lines available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Unauthorized"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Forbidden"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Commission"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/configuration": {
      "get": {
        "operationId": "VendorListRules",
        "summary": "List rules",
        "description": "Retrieves marketplace rules list",
        "x-authenticated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "configuration_rules": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ConfigurationRule"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Configuration"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/customer-groups": {
      "get": {
        "operationId": "VendorListCustomerGroups",
        "summary": "List Customer Groups",
        "description": "Retrieves a list of customer groups.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "number"
            },
            "description": "The number of items to return. Default 50."
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "type": "number"
            },
            "description": "The number of items to skip before starting the response. Default 0."
          },
          {
            "in": "query",
            "name": "fields",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated fields that should be included in the returned data."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "customer_groups": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorCustomerGroup"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Customer Groups"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorCreateCustomerGroup",
        "summary": "Create a customer group",
        "description": "Creates a new customer group",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreateCustomerGroup"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "customer_group": {
                      "$ref": "#/components/schemas/VendorCustomerGroup"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Customer Groups"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/customer-groups/{id}": {
      "get": {
        "operationId": "VendorGetCustomerGroupById",
        "summary": "Retrieve customer group by id",
        "description": "Retrieve customer group by id",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Customer group.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fields",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated fields that should be included in the returned data."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "member": {
                      "$ref": "#/components/schemas/VendorCustomerGroup"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Customer Groups"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorUpdateCustomerGroup",
        "summary": "Update customer group",
        "description": "Updates customer group",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Customer group.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreateCustomerGroup"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "customer_group": {
                      "$ref": "#/components/schemas/VendorCustomerGroup"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Customer Groups"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorDeleteCustomerGroupById",
        "summary": "Delete a customer group",
        "description": "Deletes a customer group by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Customer group.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted Customer group"
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Customer Groups"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/customer-groups/{id}/customers": {
      "post": {
        "operationId": "VendorUpdateCustomersInCustomerGroup",
        "summary": "Link customers to customer group",
        "description": "Adds or removes customers to a customer group",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Customer group.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorLinkCustomersToGroup"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "customer_group": {
                      "$ref": "#/components/schemas/VendorCustomerGroup"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Customer Groups"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/customers": {
      "get": {
        "operationId": "VendorListSellerCustomers",
        "summary": "List Customers",
        "description": "Retrieves a list of customers who placed an order in sellers store.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "number"
            },
            "description": "The number of items to return. Default 50."
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "type": "number"
            },
            "description": "The number of items to skip before starting the response. Default 0."
          },
          {
            "in": "query",
            "name": "fields",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated fields that should be included in the returned data."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "customers": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorCustomer"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Customers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/customers/{id}": {
      "get": {
        "operationId": "VendorGetCustomer",
        "summary": "Get Customer details",
        "description": "Retrieves the details of specified customer.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the customer.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "customer": {
                      "$ref": "#/components/schemas/VendorCustomer"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Customers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/customers/{id}/customer-groups": {
      "post": {
        "operationId": "VendorLinkCustomerToCustomerGroups",
        "summary": "Link customers to customer group",
        "description": "Adds or removes customer groups to a customer",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Customer.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdateCustomersCustomerGroups"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "customer": {
                      "$ref": "#/components/schemas/VendorCustomer"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Customers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/customers/{id}/orders": {
      "get": {
        "operationId": "VendorListOrdersByCustomerId",
        "summary": "List Orders by customer id",
        "description": "Retrieves a list of orders for the specified customer.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the customer.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "orders": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorCustomerOrderOverview"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Customers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/fulfillment-providers": {
      "get": {
        "operationId": "VendorListFulfillmentProviders",
        "summary": "List Fulfillment Providers",
        "description": "Retrieves a list of Fulfillment Providers.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fulfillment_providers": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorFulfillmentSet"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Fulfillment Providers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/fulfillment-providers/{id}/options": {
      "get": {
        "operationId": "VendorListFulfillmentProviderOptions",
        "summary": "List Fulfillment Provider Options",
        "description": "Retrieves a list of available Fulfillment Provider Options.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the fulfillment provider.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fulfillment_options": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "is_return": {
                            "type": "boolean"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Fulfillment Providers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/fulfillment-sets/{id}": {
      "delete": {
        "operationId": "VendorDeleteFulfillmentSet",
        "summary": "Delete a Fulfillment Set",
        "description": "Deletes a Fulfillment Set.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Fulfillment Set.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted Fulfillment Set."
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted.",
                      "default": "fulfillment_set"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted.",
                      "default": true
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Fulfillment Sets"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/fulfillment-sets/{id}/service-zones": {
      "post": {
        "operationId": "VendorCreateServiceZone",
        "summary": "Create a Service Zone",
        "description": "Creates a Service Zone.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Fulfillment Set.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreateServiceZone"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fulfillment_set": {
                      "$ref": "#/components/schemas/VendorFulfillmentSet"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Fulfillment Sets"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/fulfillment-sets/{id}/service-zones/{zone_id}": {
      "post": {
        "operationId": "VendorUpdateServiceZoneById",
        "summary": "Update a Service Zone",
        "description": "Updates a Service Zone.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Fulfillment Set.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "zone_id",
            "required": true,
            "description": "The ID of the Service Zone.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdateServiceZone"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fulfillment_set": {
                      "$ref": "#/components/schemas/VendorFulfillmentSet"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Fulfillment Sets"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorDeleteServiceZoneById",
        "summary": "Delete a Service Zone",
        "description": "Deletes a Service Zone.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Fulfillment Set.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "zone_id",
            "required": true,
            "description": "The ID of the Service Zone.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted Service Zone."
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted.",
                      "default": "service_zone"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted.",
                      "default": true
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Fulfillment Sets"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/inventory-items": {
      "get": {
        "operationId": "VendorListInventoryItem",
        "summary": "List InventoryItems",
        "description": "Retrieves list of InventoryItems",
        "x-authenticated": true,
        "responses": {
          "200": {
            "description": "Ok"
          }
        },
        "tags": [
          "Vendor Inventory Items"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/inventory-items/location-levels/batch": {
      "post": {
        "operationId": "VendorBatchInventoryItemLevels",
        "summary": "Update inventory item levels",
        "description": "Batch updates InventoryItem levels",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorBatchInventoryItemLevels"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ok"
          }
        },
        "tags": [
          "Vendor Inventory Items"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/inventory-items/{id}": {
      "get": {
        "operationId": "VendorGetInventoryItem",
        "summary": "Get inventory item",
        "description": "Retrieves InventoryItem of specified id",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the InventoryItem.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Ok"
          }
        },
        "tags": [
          "Vendor Inventory Items"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorUpdateInventoryItem",
        "summary": "Update inventory item",
        "description": "Updates InventoryItem of specified id",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the InventoryItem.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdateInventoryItem"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ok"
          }
        },
        "tags": [
          "Vendor Inventory Items"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorDeleteInventoryItem",
        "summary": "Delete inventory item",
        "description": "Deletes InventoryItem of specified id",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the InventoryItem.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Ok"
          }
        },
        "tags": [
          "Vendor Inventory Items"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/inventory-items/{id}/location-levels": {
      "get": {
        "operationId": "VendorGetItemInventoryLevel",
        "summary": "Get InventoryLevels of specified InventoryItem ",
        "description": "Retrieves inventory levels of the InventoryItem",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the InventoryItem.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Ok"
          }
        },
        "tags": [
          "Vendor Inventory Items"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorCreateInventoryLevel",
        "summary": "Create inventory level",
        "description": "Creates inventory level of the InventoryItem in the specified location",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the InventoryItem.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreateInventoryLevel"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Ok"
          }
        },
        "tags": [
          "Vendor Inventory Items"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/inventory-items/{id}/location-levels/batch": {
      "post": {
        "operationId": "VendorBatchInventoryItemLocationsLevels",
        "summary": "Update inventory item levels",
        "description": "Batch updates InventoryItem levels",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the InventoryItem.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorBatchInventoryItemLocationsLevel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ok"
          }
        },
        "tags": [
          "Vendor Inventory Items"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/inventory-items/{id}/location-levels/{location_id}": {
      "get": {
        "operationId": "VendorGetInventoryLevel",
        "summary": "Get inventory level",
        "description": "Retrieves inventory level of the InventoryItem in the specified location",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the InventoryItem.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "location_id",
            "required": true,
            "description": "The ID of the Stock Location.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Inventory level"
          }
        },
        "tags": [
          "Vendor Inventory Items"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorUpdateInventoryLevel",
        "summary": "Update inventory level",
        "description": "Updates inventory level of the InventoryItem in the specified location",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the InventoryItem.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "location_id",
            "required": true,
            "description": "The ID of the Stock Location.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdateInventoryLevel"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          }
        },
        "tags": [
          "Vendor Inventory Items"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorDeleteInventoryLevel",
        "summary": "Delete inventory level",
        "description": "Deletes inventory level of the InventoryItem in the specified location",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the InventoryItem.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "location_id",
            "required": true,
            "description": "The ID of the Stock Location.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Inventory level"
          }
        },
        "tags": [
          "Vendor Inventory Items"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/invites": {
      "get": {
        "operationId": "VendorListInvites",
        "summary": "List Member Invites",
        "description": "Retrieves a list of member invites for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "number"
            },
            "description": "The number of items to return. Default 50."
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "type": "number"
            },
            "description": "The number of items to skip before starting the response. Default 0."
          },
          {
            "in": "query",
            "name": "fields",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated fields that should be included in the returned data."
          },
          {
            "in": "query",
            "name": "order",
            "schema": {
              "type": "string"
            },
            "description": "Field used to order the results."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "invites": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorMemberInvite"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Invites"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorCreateInvite",
        "summary": "Create a Member Invite",
        "description": "Creates a new member invite for the authenticated vendor.",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorInviteMember"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "invite": {
                      "$ref": "#/components/schemas/VendorMemberInvite"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Invites"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/invites/{id}/accept": {
      "post": {
        "operationId": "VendorAcceptInvite",
        "summary": "Accept a Member Invite",
        "description": "Accepts a member invite using the provided token and creates a new member.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the invite to accept.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorAcceptMemberInvite"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "invite": {
                      "$ref": "#/components/schemas/VendorMemberInvite"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Invites"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/me": {
      "get": {
        "operationId": "VendorGetMemberMe",
        "summary": "Get Current Member",
        "description": "Retrieves the member associated with the authenticated user.",
        "x-authenticated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "member": {
                      "$ref": "#/components/schemas/VendorMember"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Current Member"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/members": {
      "get": {
        "operationId": "VendorListMembers",
        "summary": "List Members",
        "description": "Retrieves a list of members.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "number"
            },
            "description": "The number of items to return. Default 50."
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "type": "number"
            },
            "description": "The number of items to skip before starting the response. Default 0."
          },
          {
            "in": "query",
            "name": "fields",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated fields that should be included in the returned data."
          },
          {
            "in": "query",
            "name": "expand",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated relations that should be expanded in the returned data."
          },
          {
            "in": "query",
            "name": "order",
            "schema": {
              "type": "string"
            },
            "description": "Field used to order the results."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "members": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorMember"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Members"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/members/{id}": {
      "get": {
        "operationId": "VendorGetMemberById",
        "summary": "Get a Member",
        "description": "Retrieves a member by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Member.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "member": {
                      "$ref": "#/components/schemas/VendorMember"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Members"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorUpdateMemberById",
        "summary": "Update a Member",
        "description": "Updates a member by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Member.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdateMember"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "member": {
                      "$ref": "#/components/schemas/VendorMember"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Members"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorDeleteMemberById",
        "summary": "Delete a Member",
        "description": "Deletes a member by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Member.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted Member"
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Members"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/notifications": {
      "get": {
        "operationId": "VendorListNotifications",
        "summary": "List Notifications",
        "description": "Retrieves a list of notifications for the authenticated vendor/seller.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 0
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 50
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "-created_at"
            },
            "required": false,
            "description": "The order in which to sort the results."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "notifications": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorNotification"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of notifications available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Unauthorized"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Forbidden"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Notifications"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/orders": {
      "get": {
        "operationId": "VendorListOrders",
        "summary": "List Orders",
        "description": "Retrieves a list of orders for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "The order of the returned items."
          },
          {
            "name": "created_at",
            "in": "query",
            "schema": {
              "type": "object"
            },
            "required": false,
            "description": "Filter by created at date range"
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                {
                  "type": "object"
                }
              ]
            },
            "required": false,
            "description": "Filter by order status"
          },
          {
            "name": "fulfillment_status",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Filter by fulfillment status"
          },
          {
            "name": "payment_status",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Filter by payment status"
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Search query for filtering orders"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "orders": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorOrderDetails"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Orders"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/orders/{id}": {
      "get": {
        "operationId": "VendorGetOrder",
        "summary": "Get Order details",
        "description": "Retrieves the details of specified order.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Order.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order": {
                      "$ref": "#/components/schemas/VendorOrderDetails"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Orders"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/orders/{id}/cancel": {
      "post": {
        "operationId": "VendorCancelOrder",
        "summary": "Mark order as cancelled",
        "description": "Mark order as cancelled.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Order.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "member": {
                      "$ref": "#/components/schemas/VendorOrderDetails"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Orders"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/orders/{id}/changes": {
      "get": {
        "operationId": "VendorListOrderChanges",
        "summary": "List Order Changes",
        "description": "Retrieves a list of order changes for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Order.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order_changes": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorOrderChange"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Orders"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/orders/{id}/complete": {
      "post": {
        "operationId": "VendorCompleteOrder",
        "summary": "Mark order as complete",
        "description": "Mark order as complete.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Order.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "member": {
                      "$ref": "#/components/schemas/VendorOrderDetails"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Orders"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/orders/{id}/fulfillments/{fulfillment_id}/cancel": {
      "post": {
        "operationId": "VendorCancelOrderFulfillment",
        "summary": "Cancel order fulfillment.",
        "description": "Cancel order fulfillment.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Order.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fulfillment_id",
            "required": true,
            "description": "The ID of the fulfillment.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "member": {
                      "$ref": "#/components/schemas/VendorOrderDetails"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Orders"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/orders/{id}/fulfillments/{fulfillment_id}/mark-as-delivered": {
      "post": {
        "operationId": "VendorOrderFulfillmentMarkDelivered",
        "summary": "Mark order fulfillment shipment as delivered.",
        "description": "Mark order fulfillment shipment as delivered.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Order.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fulfillment_id",
            "required": true,
            "description": "The ID of the fulfillment.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "member": {
                      "$ref": "#/components/schemas/VendorOrderDetails"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Orders"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/orders/{id}/fulfillments/{fulfillment_id}/shipments": {
      "post": {
        "operationId": "VendorUpdateOrderFulfillmentShipment",
        "summary": "Update order fulfillment shipment.",
        "description": "Update order fulfillment shipment.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Order.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "fulfillment_id",
            "required": true,
            "description": "The ID of the fulfillment.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorOrderCreateShipment"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "member": {
                      "$ref": "#/components/schemas/VendorOrderDetails"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Orders"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/payout-account": {
      "get": {
        "operationId": "VendorGetPayoutAccount",
        "summary": "Get Payout Account",
        "description": "Retrieves the payout account for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated fields that should be included in the returned data."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "payout_account": {
                      "$ref": "#/components/schemas/VendorPayoutAccount"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Payout Account"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorCreatePayoutAccount",
        "summary": "Create Payout Account",
        "description": "Creates a payout account for the authenticated vendor.",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreatePayoutAccount"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "payout_account": {
                      "$ref": "#/components/schemas/VendorPayoutAccount"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Payout Account"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/payout-account/onboarding": {
      "post": {
        "operationId": "VendorCreateOnboarding",
        "summary": "Create Onboarding",
        "description": "Creates an onboarding for the authenticated vendor's payout account.",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreateOnboarding"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "payout_account": {
                      "$ref": "#/components/schemas/VendorPayoutAccount"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Payout Account"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/payout-account/sync": {
      "post": {
        "operationId": "VendorSyncPayoutAccount",
        "summary": "Sync Payout Account",
        "description": "Synchronizes the payout account data with the payment processor for the authenticated vendor/seller.",
        "x-authenticated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "payout_account": {
                      "$ref": "#/components/schemas/VendorPayoutAccount"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Unauthorized"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Forbidden"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Payout account not found"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Payout Account"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/payouts": {
      "get": {
        "operationId": "VendorListPayouts",
        "summary": "List Payouts",
        "description": "Retrieves a list of payouts for the authenticated vendor/seller.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 0
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 50
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "payouts": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorPayout"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of payouts available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Unauthorized"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Forbidden"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Payout account is not connected to the seller"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Payouts"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/price-lists": {
      "get": {
        "operationId": "VendorListPriceLists",
        "summary": "List Price lists",
        "description": "Retrieves a list of price lists.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "number"
            },
            "description": "The number of items to return. Default 50."
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "type": "number"
            },
            "description": "The number of items to skip before starting the response. Default 0."
          },
          {
            "in": "query",
            "name": "fields",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated fields that should be included in the returned data."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "price_lists": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorPriceList"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Price Lists"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorCreatePriceList",
        "summary": "Create price list",
        "description": "Creates new price list",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreatePriceList"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "price_list": {
                      "$ref": "#/components/schemas/VendorPriceList"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Price Lists"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/price-lists/{id}": {
      "get": {
        "operationId": "VendorGetPriceListById",
        "summary": "Get price list details",
        "description": "Retrieves the details of specified price list.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the price list.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "price_list": {
                      "$ref": "#/components/schemas/VendorPriceList"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Price Lists"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorUpdatePriceList",
        "summary": "Update price list",
        "description": "Updates price list price",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the price list.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdatePriceList"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "price_list": {
                      "$ref": "#/components/schemas/VendorPriceList"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Price Lists"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorDeletePriceListsId",
        "summary": "Delete a Price List",
        "description": "Delete a price list.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The price list's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted Price list"
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Price Lists"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ]
      }
    },
    "/vendor/price-lists/{id}/prices": {
      "post": {
        "operationId": "VendorCreatePriceListPrice",
        "summary": "Create price in price list",
        "description": "Creates new price in the specified price list",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the price list.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreatePriceListPrice"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "price_list": {
                      "$ref": "#/components/schemas/VendorPriceList"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Price Lists"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/price-lists/{id}/prices/{price_id}": {
      "delete": {
        "operationId": "VendorDeletePriceListPriceById",
        "summary": "Deletes price list price",
        "description": "Deletes price list price by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the price list.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "price_id",
            "required": true,
            "description": "The ID of the price.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted Price"
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Price Lists"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/price-lists/{id}/products": {
      "get": {
        "operationId": "VendorListProductsInPriceList",
        "summary": "List Products in a given price list",
        "description": "Retrieves a list of products in the given price list.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the price list.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "products": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorProduct"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Price Lists"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorRemoveProductsFromPriceList",
        "summary": "Update price list",
        "description": "Updates price list price",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the price list.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorRemoveProductsFromPriceList"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "price_list": {
                      "$ref": "#/components/schemas/VendorPriceList"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Price Lists"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/price-preferences": {
      "get": {
        "operationId": "VendorListPricePreferences",
        "summary": "List Price Preferences",
        "description": "Retrieves a list of price preferences for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 0
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number",
              "default": 300
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Search term to filter price preferences."
          },
          {
            "name": "id",
            "in": "query",
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            },
            "required": false,
            "description": "Filter by price preference ID(s)."
          },
          {
            "name": "attribute",
            "in": "query",
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            },
            "required": false,
            "description": "Filter by attribute name(s)."
          },
          {
            "name": "value",
            "in": "query",
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            },
            "required": false,
            "description": "Filter by attribute value(s)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "price_preferences": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorPricePreference"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Price Preferences"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/product-categories": {
      "get": {
        "operationId": "VendorListProductCategories",
        "summary": "List product categories",
        "description": "Retrieves a list of product categories.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product_categories": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorProductCategory"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Product Categories"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/product-categories/{id}": {
      "get": {
        "operationId": "VendorGetProductCategoryById",
        "summary": "Get product category",
        "description": "Retrieves product category by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the category",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product_category": {
                      "$ref": "#/components/schemas/VendorProductCategory"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Product Categories"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/product-collections": {
      "get": {
        "operationId": "VendorListProductCollections",
        "summary": "List product collections",
        "description": "Retrieves a list of product collections.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Search term to filter collections by title or handle."
          },
          {
            "name": "created_at",
            "in": "query",
            "schema": {
              "type": "object"
            },
            "required": false,
            "description": "Filter by creation date using operators ($lt, $gt, $lte, $gte)."
          },
          {
            "name": "updated_at",
            "in": "query",
            "schema": {
              "type": "object"
            },
            "required": false,
            "description": "Filter by update date using operators ($lt, $gt, $lte, $gte)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product_collections": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorProductCollection"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Product Collections"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/product-collections/{id}": {
      "get": {
        "operationId": "VendorGetProductCollectionById",
        "summary": "Get product collection",
        "description": "Retrieves product collection by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the collection",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product_collection": {
                      "$ref": "#/components/schemas/VendorProductCollection"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Product Collections"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/product-tags": {
      "get": {
        "operationId": "VendorListProductTags",
        "summary": "List product tags",
        "description": "Retrieves a list of product tags.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product_tags": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorProductTag"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Product Tags"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/product-tags/{id}": {
      "get": {
        "operationId": "VendorGetProductTagById",
        "summary": "Get product tag",
        "description": "Retrieves product tag by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the tag",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product_tag": {
                      "$ref": "#/components/schemas/VendorProductTag"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Product Tags"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/product-types": {
      "get": {
        "operationId": "VendorListProductTypes",
        "summary": "List product types",
        "description": "Retrieves a list of product types.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Search query to filter product types by value (case-insensitive)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product_types": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorProductType"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Product Types"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/product-types/{id}": {
      "get": {
        "operationId": "VendorGetProductTypeById",
        "summary": "Get product type",
        "description": "Retrieves product type by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the type",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product_type": {
                      "$ref": "#/components/schemas/VendorProductType"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Product Types"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/products": {
      "get": {
        "operationId": "VendorListProducts",
        "summary": "List Products",
        "description": "Retrieves a list of products for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Search term to filter products by title or ID."
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "The order of the returned items."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "products": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorProduct"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Products"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorCreateProduct",
        "summary": "Create a Product",
        "description": "Creates a new product for the authenticated vendor.",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreateProduct"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/VendorProduct"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Products"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/products/batch": {
      "post": {
        "operationId": "VendorBatchUpdateProducts",
        "summary": "Batch Update Products",
        "description": "Updates multiple products for the authenticated vendor. Allows updating title, status, and discountable fields.",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorBatchUpdateProducts"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "updated": {
                      "type": "array",
                      "description": "The updated products."
                    },
                    "deleted": {
                      "type": "array",
                      "description": "The deleted products."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Products"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/products/{id}": {
      "get": {
        "operationId": "VendorGetProductById",
        "summary": "Get a Product",
        "description": "Retrieves a product by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Product.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/VendorProduct"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Products"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorUpdateProductById",
        "summary": "Update a Product",
        "description": "Updates an existing product for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Product.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdateProduct"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/VendorProduct"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Products"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorDeleteProductById",
        "summary": "Delete a Product",
        "description": "Deletes a product by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Product.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted Product"
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Products"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/products/{id}/applicable-attributes": {
      "get": {
        "operationId": "VendorGetProductApplicableAttributes",
        "summary": "Get Product Applicable Attributes",
        "description": "Retrieves the applicable attributes for a specific product, including global attributes and category-specific attributes.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the product",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "attributes": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorAttribute"
                      },
                      "description": "Array of applicable attributes for the product"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Unauthorized"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Forbidden"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "Product not found"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Products"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/products/{id}/fulfillments": {
      "post": {
        "operationId": "VendorCreateFulfillment",
        "summary": "Update a Product",
        "description": "Updates an existing product for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Product.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreateFulfillment"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fulfillment": {
                      "$ref": "#/components/schemas/VendorOrderFulfillment"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Orders"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/products/{id}/options": {
      "post": {
        "operationId": "VendorCreateOptionForProductById",
        "summary": "Create option for product",
        "description": "Creates option for product.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Product.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductOption"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/VendorProduct"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Products"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/products/{id}/options/{option_id}": {
      "post": {
        "operationId": "VendorUpdateProductOptionById",
        "summary": "Update a Product option",
        "description": "Updates an existing product option for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Product.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "option_id",
            "required": true,
            "description": "The ID of the Option.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProductOption"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/VendorProduct"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Products"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorDeleteProductOptionById",
        "summary": "Delete a Product option",
        "description": "Deletes a product option by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Product.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "option_id",
            "required": true,
            "description": "The ID of the Option.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted Product option"
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Products"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/products/{id}/status": {
      "post": {
        "operationId": "VendorUpdateProductStatusById",
        "summary": "Update a Product status",
        "description": "Updates an existing product status for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Product.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdateProductStatus"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/VendorProduct"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Products"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/products/{id}/variants": {
      "get": {
        "operationId": "VendorListProductVariants",
        "summary": "List Product Variants",
        "description": "Retrieves a list of variants for a specific product. The product must belong to the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Product.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`."
          },
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Search term to filter variants by title, SKU, or other searchable properties."
          },
          {
            "name": "id",
            "in": "query",
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            },
            "required": false,
            "description": "Filter by variant ID(s)."
          },
          {
            "name": "sku",
            "in": "query",
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            },
            "required": false,
            "description": "Filter by variant SKU(s)."
          },
          {
            "name": "title",
            "in": "query",
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            },
            "required": false,
            "description": "Filter by variant title(s)."
          },
          {
            "name": "manage_inventory",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "required": false,
            "description": "Filter by whether inventory is managed."
          },
          {
            "name": "allow_backorder",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "required": false,
            "description": "Filter by whether backordering is allowed."
          },
          {
            "name": "created_at",
            "in": "query",
            "schema": {
              "type": "object"
            },
            "required": false,
            "description": "Filter by created_at date using operators like $gte, $lte, $gt, $lt."
          },
          {
            "name": "updated_at",
            "in": "query",
            "schema": {
              "type": "object"
            },
            "required": false,
            "description": "Filter by updated_at date using operators like $gte, $lte, $gt, $lt."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "variants": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AdminProductVariant"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Products"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorCreateVariantForProductById",
        "summary": "Create variant for product",
        "description": "Creates variant for product.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Product.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductVariant"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/VendorProduct"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Products"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/products/{id}/variants/{variant_id}": {
      "post": {
        "operationId": "VendorUpdateProductVariantById",
        "summary": "Update a Product variant",
        "description": "Updates an existing product variant for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Product.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "variant_id",
            "required": true,
            "description": "The ID of the Variant.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProductVariant"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/VendorProduct"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Products"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorDeleteProductVariantById",
        "summary": "Delete a Product variant",
        "description": "Deletes a product variant by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Product.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "variant_id",
            "required": true,
            "description": "The ID of the Variant.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted Product variant"
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Products"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/promotions": {
      "get": {
        "operationId": "VendorListPromotions",
        "summary": "List Promotions",
        "description": "Retrieves a list of promotions for the authenticated vendor. Supports search, filtering, sorting, and pagination.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Search term to filter promotions by searchable fields."
          },
          {
            "name": "id",
            "in": "query",
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            },
            "required": false,
            "description": "Filter by promotion ID(s)."
          },
          {
            "name": "code",
            "in": "query",
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            },
            "required": false,
            "description": "Filter by promotion code(s)."
          },
          {
            "name": "campaign_id",
            "in": "query",
            "schema": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            },
            "required": false,
            "description": "Filter by campaign ID(s)."
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "enum": [
                    "draft",
                    "active",
                    "inactive"
                  ]
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "active",
                      "inactive"
                    ]
                  }
                }
              ]
            },
            "required": false,
            "description": "Filter by promotion status."
          },
          {
            "name": "is_automatic",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "required": false,
            "description": "Filter by whether the promotion is automatic."
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "oneOf": [
                {
                  "type": "string",
                  "enum": [
                    "standard",
                    "buyget"
                  ]
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "standard",
                      "buyget"
                    ]
                  }
                }
              ]
            },
            "required": false,
            "description": "Filter by promotion type."
          },
          {
            "name": "created_at",
            "in": "query",
            "schema": {
              "type": "object"
            },
            "required": false,
            "description": "Filter by creation date using operator map (e.g., $gt, $lt, $gte, $lte)."
          },
          {
            "name": "updated_at",
            "in": "query",
            "schema": {
              "type": "object"
            },
            "required": false,
            "description": "Filter by update date using operator map (e.g., $gt, $lt, $gte, $lte)."
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "The field to sort by and in which order (e.g., \"created_at\" for ascending, \"-created_at\" for descending)."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "promotions": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorPromotion"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Promotions"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorCreatePromotion",
        "summary": "Create promotion",
        "description": "Creates a new promotion for the authenticated vendor.",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreatePromotion"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "promotion": {
                      "$ref": "#/components/schemas/VendorPromotion"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Promotions"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/promotions/rule-attribute-options/{rule_type}": {
      "get": {
        "operationId": "VendorGetPromotionsRuleAttributeOptionsRule",
        "summary": "List Rule Attribute Options of a Rule Type",
        "x-sidebar-summary": "List Potential Rule Attributes",
        "description": "Retrieve a list of potential rule attributes for the promotion and application method types specified in the query parameters.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "rule_type",
            "in": "path",
            "description": "The rule type.",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "rules",
                "target-rules",
                "buy-rules"
              ]
            }
          },
          {
            "name": "promotion_type",
            "in": "query",
            "description": "The promotion type to retrieve rules for.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "promotion_type",
              "description": "The promotion type to retrieve rules for.",
              "enum": [
                "standard",
                "buyget"
              ]
            }
          },
          {
            "name": "application_method_type",
            "in": "query",
            "description": "The application method type to retrieve rules for.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "application_method_type",
              "description": "The application method type to retrieve rules for.",
              "enum": [
                "fixed",
                "percentage"
              ]
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "tags": [
          "Vendor Promotions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The list of attributes.",
                  "properties": {
                    "attributes": {
                      "type": "array",
                      "description": "The list of attributes.",
                      "items": {
                        "$ref": "#/components/schemas/VendorRuleAttributeOption"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/vendor/promotions/{id}": {
      "get": {
        "operationId": "VendorGetPromotionById",
        "summary": "Get promotion",
        "description": "Retrieves promotion by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the promotion.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "promotion": {
                      "$ref": "#/components/schemas/VendorPromotion"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Promotions"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorUpdatePromotion",
        "summary": "Update promotion",
        "description": "Updates a new promotion for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the promotion.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdatePromotion"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "promotion": {
                      "$ref": "#/components/schemas/VendorPromotion"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Promotions"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorDeletePromotionById",
        "summary": "Delete promotion",
        "description": "Deletes promotion by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the promotion.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted promotion"
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Promotions"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/promotions/{id}/buy-rules/batch": {
      "post": {
        "operationId": "VendorBatchBuyRules",
        "summary": "Batch buy rules",
        "description": "Performs batch create/delete operation on buy-rules",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the promotion.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorBatchPromotionRule"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "promotion": {
                      "$ref": "#/components/schemas/VendorPromotion"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Promotions"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/promotions/{id}/rules/batch": {
      "post": {
        "operationId": "VendorBatchRules",
        "summary": "Batch rules",
        "description": "Performs batch create/delete operation on rules",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the promotion.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorBatchPromotionRule"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "promotion": {
                      "$ref": "#/components/schemas/VendorPromotion"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Promotions"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/promotions/{id}/target-rules/batch": {
      "post": {
        "operationId": "VendorBatchTargetRules",
        "summary": "Batch target rules",
        "description": "Performs batch create/delete operation on target-rules",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the promotion.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorBatchPromotionRule"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "promotion": {
                      "$ref": "#/components/schemas/VendorPromotion"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Promotions"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/promotions/{id}/{rule_type}": {
      "get": {
        "operationId": "VendorGetPromotionsIdRuleType",
        "summary": "List Rules of a Promotion",
        "description": "Retrieve a list of rules in a promotion.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The promotion's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rule_type",
            "in": "path",
            "description": "The type of rules to retrieve.",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "rules",
                "target-rules",
                "buy-rules"
              ]
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false,
            "schema": {
              "type": "string",
              "title": "fields",
              "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields."
            }
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "tags": [
          "Vendor Promotions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The list of promotion rules.",
                  "properties": {
                    "rules": {
                      "type": "array",
                      "description": "The list of promotion rules.",
                      "items": {
                        "$ref": "#/components/schemas/VendorPromotionRule"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/vendor/regions": {
      "get": {
        "operationId": "VendorListRegions",
        "summary": "List regions",
        "description": "Retrieves a list of regions.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "regions": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorRegion"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Regions"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/regions/{id}": {
      "get": {
        "operationId": "VendorGetRegionById",
        "summary": "Get region",
        "description": "Retrieves region by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the region",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "region": {
                      "$ref": "#/components/schemas/VendorRegion"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Regions"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/requests": {
      "get": {
        "operationId": "VendorListRequests",
        "summary": "List requests",
        "description": "Retrieves submited requests list",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "requests": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorRequest"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of requests"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of requests skipped"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of requests per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Requests"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorCreateRequest",
        "summary": "Create a request to admin",
        "description": "Creates a request to admin to accept new resource",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "request": {
                      "$ref": "#/components/schemas/VendorRequest"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Requests"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/requests/{id}": {
      "get": {
        "operationId": "VendorGetRequestById",
        "summary": "Get request by id",
        "description": "Retrieves a request by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Request.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "request": {
                      "$ref": "#/components/schemas/VendorRequest"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Requests"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorUpdateRequestData",
        "summary": "Update request data",
        "description": "Updates specified request payload.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Request",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdateRequestData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "request": {
                      "$ref": "#/components/schemas/VendorRequest"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Requests"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/reservations": {
      "get": {
        "operationId": "VendorListReservations",
        "summary": "List Reservations",
        "description": "Retrieves a list of reservations for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "reservations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorReservation"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Reservations"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorCreateReservation",
        "summary": "Create reservation",
        "description": "Creates new reservation",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreateReservation"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "reservation": {
                      "$ref": "#/components/schemas/VendorReservation"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Reservations"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/reservations/{id}": {
      "get": {
        "operationId": "VendorGetReservationById",
        "summary": "Get reservation",
        "description": "Retrieves reservation by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the reservation.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "reservation": {
                      "$ref": "#/components/schemas/VendorReservation"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Reservations"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorUpdateReservationById",
        "summary": "Update reservation",
        "description": "Updates an existing reservation for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Reservation.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdateReservation"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "reservation": {
                      "$ref": "#/components/schemas/VendorReservation"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Reservations"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorDeleteReservationById",
        "summary": "Delete reservation",
        "description": "Deletes reservation by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the reservation.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted reservation"
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Reservations"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/return-request": {
      "get": {
        "operationId": "VendorListOrderReturnRequests",
        "summary": "List return requests",
        "description": "Retrieves requests list",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order_return_request": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/OrderReturnRequest"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of requests"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of requests skipped"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of requests per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Return Requests"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/return-request/{id}": {
      "get": {
        "operationId": "VendorGetOrderReturnRequestById",
        "summary": "Get return request by id",
        "description": "Retrieves a request by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Request.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "orderReturnRequest": {
                      "$ref": "#/components/schemas/OrderReturnRequest"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Return Requests"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorUpdateOrderReturnRequestById",
        "summary": "Update return request by id",
        "description": "Updates a request by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Request.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdateOrderReturnRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "orderReturnRequest": {
                      "$ref": "#/components/schemas/OrderReturnRequest"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Return Requests"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/returns": {
      "get": {
        "operationId": "VendorListReturns",
        "summary": "List Returns",
        "description": "Retrieves a list of returns for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "returns": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorReturn"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Returns"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/returns/{id}": {
      "get": {
        "operationId": "VendorGetReturnById",
        "summary": "Get return",
        "description": "Retrieves return by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the return.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "return": {
                      "$ref": "#/components/schemas/VendorReturn"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Returns"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/returns/{id}/dismiss-items": {
      "post": {
        "operationId": "VendorAddDismissReturnItemById",
        "summary": "Add Damaged Item to Return",
        "description": "Add damaged items, whose quantity is to be dismissed, to a return.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the return.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated fields that should be included in the returned data.",
            "required": false
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorReceiveReturnItems"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "return": {
                      "$ref": "#/components/schemas/VendorReturn"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Returns"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/returns/{id}/dismiss-items/{action_id}": {
      "post": {
        "operationId": "VendorUpdateDismissReturnItemById",
        "summary": "Update Damaged Item of Return",
        "description": "Update a damaged item, whose quantity is to be dismissed, in the return by the ID of the  item's `RECEIVE_DAMAGED_RETURN_ITEM` action.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the return.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the damaged item's `RECEIVE_DAMAGED_RETURN_ITEM` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated fields that should be included in the returned data.",
            "required": false
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorReturnsDismissItemsAction"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "return": {
                      "$ref": "#/components/schemas/VendorReturn"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Returns"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorDismissReturnItemById",
        "summary": "Remove Damaged Item from Return",
        "description": "Remove a damaged item, whose quantity is to be dismissed, in the return by the ID of the  item's `RECEIVE_DAMAGED_RETURN_ITEM` action.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the return.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the damaged item's `RECEIVE_DAMAGED_RETURN_ITEM` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated fields that should be included in the returned data.",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "return": {
                      "$ref": "#/components/schemas/VendorReturn"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Returns"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/returns/{id}/receive": {
      "post": {
        "operationId": "VendorReturnReceiveById",
        "summary": "Start Return Receival",
        "description": "Start a return receival process to be later confirmed.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorReceiveReturn"
              }
            }
          }
        },
        "tags": [
          "Vendor Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "return": {
                      "$ref": "#/components/schemas/VendorReturn"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/vendor/returns/{id}/receive-items": {
      "post": {
        "operationId": "VendorAddReceiveReturnItemById",
        "summary": "Add received Item to Return",
        "description": "Add received items to return.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the return.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated fields that should be included in the returned data.",
            "required": false
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorReceiveReturnItems"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "return": {
                      "$ref": "#/components/schemas/VendorReturn"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Returns"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/returns/{id}/receive-items/{action_id}": {
      "post": {
        "operationId": "VendorUpdateReceiveReturnItemById",
        "summary": "Update received Item of Return",
        "description": "Update a received item.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the return.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the received item's `RECEIVE_RETURN_ITEM` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated fields that should be included in the returned data.",
            "required": false
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorReturnsReceiveItemsAction"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "return": {
                      "$ref": "#/components/schemas/VendorReturn"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Returns"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorReceiveReturnItemById",
        "summary": "Remove received Item from Return",
        "description": "Remove a received item",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the return.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "description": "The ID of the received item's `RECEIVE_RETURN_ITEM` action.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated fields that should be included in the returned data.",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "return": {
                      "$ref": "#/components/schemas/VendorReturn"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Returns"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/returns/{id}/receive/confirm": {
      "post": {
        "operationId": "VendorConfirmReturnReceiveById",
        "summary": "Confirm Return Receival",
        "description": "Confirm a return receival process.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The return's ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.",
            "required": false
          }
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          },
          {
            "jwt_token": []
          }
        ],
        "tags": [
          "Vendor Returns"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "return": {
                      "$ref": "#/components/schemas/VendorReturn"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/vendor/sales-channels": {
      "get": {
        "operationId": "VendorListSalesChannels",
        "summary": "List Sales Channels",
        "description": "Retrieves a list of Sales Channels for authenticated vendor.",
        "x-authenticated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "sales_channels": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorSalesChannel"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Sales Channels"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/sellers": {
      "post": {
        "operationId": "VendorCreateSeller",
        "summary": "Create a Seller",
        "description": "Creates a request to create a new seller with an initial owner member.",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreateSeller"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "request": {
                      "$ref": "#/components/schemas/VendorRequest"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Sellers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/sellers/me": {
      "get": {
        "operationId": "VendorGetSellerMe",
        "summary": "Get Current Seller",
        "description": "Retrieves the seller associated with the authenticated user.",
        "x-authenticated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "seller": {
                      "$ref": "#/components/schemas/VendorSeller"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Sellers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorUpdateSellerMe",
        "summary": "Update Current Seller",
        "description": "Updates the seller associated with the authenticated user.",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdateSeller"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "seller": {
                      "$ref": "#/components/schemas/VendorSeller"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Sellers"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/sellers/me/onboarding": {
      "get": {
        "operationId": "VendorGetOnboardingStatus",
        "summary": "Get onboarding status of the current seller",
        "description": "Retrieves the onboarding details of the current authenticated seller.",
        "x-authenticated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "onboarding": {
                      "$ref": "#/components/schemas/VendorSellerOnboarding"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Onboarding"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorRecalculateOnboarding status",
        "summary": "Recalculates onboarding status",
        "description": "Triggers onboarding status recalculation and retrieves the onboarding details of the current authenticated seller.",
        "x-authenticated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "onboarding": {
                      "$ref": "#/components/schemas/VendorSellerOnboarding"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Onboarding"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/sellers/me/reviews": {
      "get": {
        "operationId": "VendorGetSellerMyReviews",
        "summary": "Get reviews of the current seller",
        "description": "Retrieves the reviews about the seller associated with the authenticated user.",
        "x-authenticated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "products": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Review"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Reviews"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/sellers/me/reviews/{id}": {
      "get": {
        "operationId": "VendorGetSellerReviewById",
        "summary": "Get a review by id",
        "description": "Retrieves a review by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Review.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/Review"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Reviews"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorUpdateReviewById",
        "summary": "Update a Review",
        "description": "Updates seller_note for the review of specified id",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Review.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Comma-separated fields to include in the response."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdateReview"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product": {
                      "$ref": "#/components/schemas/Review"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Reviews",
          "Review"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/shipping-options": {
      "get": {
        "operationId": "VendorListShippingOptions",
        "summary": "List Shipping Options",
        "description": "Retrieves a list of Shipping Options for authenticated vendor.",
        "x-authenticated": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "shipping_options": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorShippingOption"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Shipping Options"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorCreateShippingOption",
        "summary": "Create a Shipping Option",
        "description": "Creates a Shipping Option for authenticated vendor.",
        "x-authenticated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreateShippingOption"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "shipping_option": {
                      "$ref": "#/components/schemas/VendorShippingOption"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Shipping Options"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/shipping-options/{id}": {
      "get": {
        "operationId": "VendorGetShippingOptionById",
        "summary": "Get a Shipping Option",
        "description": "Retrieves a Shipping Option by its ID.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Shipping Option.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "shipping_option": {
                      "$ref": "#/components/schemas/VendorShippingOption"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Shipping Options"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorUpdateShippingOptionById",
        "summary": "Update a Shipping Option",
        "description": "Updates a Shipping Option.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Shipping Option.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdateShippingOption"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "shipping_option": {
                      "$ref": "#/components/schemas/VendorShippingOption"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Shipping Options"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorDeleteShippingOptionById",
        "summary": "Delete a Shipping Option",
        "description": "Deletes a Shipping Option.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Shipping Option.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted Shipping Option."
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted.",
                      "default": "shipping_option"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted.",
                      "default": true
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Shipping Options"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/shipping-profiles": {
      "get": {
        "operationId": "VendorListShippingProfiles",
        "summary": "List shipping profiles",
        "description": "Retrieves a list of shipping profiles.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "q",
            "description": "Search term to filter shipping profiles by name",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "description": "The number of items to skip before starting to collect the result set",
            "schema": {
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "description": "The number of items to return",
            "schema": {
              "type": "number"
            }
          },
          {
            "in": "query",
            "name": "order",
            "description": "The order of the returned items",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "shipping_profiles": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorShippingProfile"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Shipping Profiles"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorCreateShippingProfile",
        "summary": "Create a Shipping profile",
        "description": "Creates a Shipping profile.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreateShippingProfile"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "shipping_profile": {
                      "$ref": "#/components/schemas/VendorShippingProfile"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Shipping Profiles"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/shipping-profiles/{id}": {
      "get": {
        "operationId": "VendorGetShippingProfile",
        "summary": "Get shipping profile",
        "description": "Retrieves a shipping profile by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the shipping profile",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "shipping_profile": {
                      "$ref": "#/components/schemas/VendorShippingProfile"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Shipping Profiles"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorUpdateShippingProfile",
        "summary": "Update a Shipping profile",
        "description": "Updates a Shipping profile.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the shipping profile",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdateShippingProfile"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "shipping_profile": {
                      "$ref": "#/components/schemas/VendorShippingProfile"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Shipping Profiles"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorDeleteShippingProfileById",
        "summary": "Delete shipping profile",
        "description": "Deletes shipping profile by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the shipping profile.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted resource"
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Shipping Profiles"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/statistics": {
      "get": {
        "operationId": "VendorGetStoreStatistics",
        "summary": "GetStoreStatistics",
        "description": "Retrieves store statistics.",
        "x-authenticated": true,
        "parameters": [
          {
            "name": "time_from",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "time_to",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "orders": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorDateStatistics"
                      }
                    },
                    "customers": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorDateStatistics"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Statistics"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/stock-locations": {
      "get": {
        "operationId": "VendorListStockLocations",
        "summary": "List Stock Locations",
        "description": "Retrieves a list of Stock Locations.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "stock_locations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorStockLocation"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Stock Locations"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorCreateStockLocation",
        "summary": "Create a Stock Location",
        "description": "Creates a Stock Location.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreateStockLocation"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "stock_location": {
                      "$ref": "#/components/schemas/VendorStockLocation"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Stock Locations"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/stock-locations/{id}": {
      "get": {
        "operationId": "VendorGetStockLocation",
        "summary": "Get Stock Location",
        "description": "Retrieves a Stock Location by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Stock Location",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "stock_location": {
                      "$ref": "#/components/schemas/VendorStockLocation"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Stock Locations"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "post": {
        "operationId": "VendorUpdateStockLocation",
        "summary": "Update Stock Location",
        "description": "Updates a Stock Location.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Stock Location",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorUpdateStockLocation"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "stock_location": {
                      "$ref": "#/components/schemas/VendorStockLocation"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Stock Locations"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      },
      "delete": {
        "operationId": "VendorDeleteStockLocationById",
        "summary": "Delete stock location",
        "description": "Deletes stock location by id for the authenticated vendor.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the stock location.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The ID of the deleted resource"
                    },
                    "object": {
                      "type": "string",
                      "description": "The type of the object that was deleted"
                    },
                    "deleted": {
                      "type": "boolean",
                      "description": "Whether or not the items were deleted"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Stock Locations"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/stock-locations/{id}/fulfillment-providers": {
      "post": {
        "operationId": "VendorUpdateStockLocationFulfillmentProviders",
        "summary": "Update Stock Location Fulfillment Providers",
        "description": "Updates the fulfillment providers of a Stock Location.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Stock Location",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "add": {
                    "type": "array",
                    "description": "Array of fulfillment provider IDs to add",
                    "items": {
                      "type": "string"
                    }
                  },
                  "remove": {
                    "type": "array",
                    "description": "Array of fulfillment provider IDs to remove",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "stock_location": {
                      "$ref": "#/components/schemas/VendorStockLocation"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Stock Locations"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/stock-locations/{id}/fulfillment-sets": {
      "post": {
        "operationId": "VendorCreateStockLocationFulfillmentSet",
        "summary": "Create a Fulfillment Set",
        "description": "Creates a Fulfillment Set for a Stock Location.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Stock Location.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VendorCreateStockLocationFulfillmentSet"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "stock_location": {
                      "$ref": "#/components/schemas/VendorStockLocation"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Stock Locations"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/stock-locations/{id}/sales-channels": {
      "post": {
        "operationId": "VendorUpdateStockLocationSalesChannels",
        "summary": "Update Stock Location Sales Channels",
        "description": "Updates the sales channels of a Stock Location.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the Stock Location",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "add": {
                    "type": "array",
                    "description": "Array of sales channel IDs to add",
                    "items": {
                      "type": "string"
                    }
                  },
                  "remove": {
                    "type": "array",
                    "description": "Array of sales channel IDs to remove",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "stock_location": {
                      "$ref": "#/components/schemas/VendorStockLocation"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Stock Locations"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/stores": {
      "get": {
        "operationId": "VendorListStores",
        "summary": "List Stores",
        "description": "Retrieves a list of stores.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to skip before starting to collect the result set."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "The number of items to return."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "stores": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VendorStore"
                      }
                    },
                    "count": {
                      "type": "integer",
                      "description": "The total number of items available"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "The number of items skipped before these items"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "The number of items per page"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Stores"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    },
    "/vendor/stores/{id}": {
      "get": {
        "operationId": "VendorGetStoreById",
        "summary": "Get store",
        "description": "Retrieves a Store by id.",
        "x-authenticated": true,
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The ID of the store",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fields",
            "description": "The comma-separated fields to include in the response",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "store": {
                      "$ref": "#/components/schemas/VendorStore"
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Vendor Stores"
        ],
        "security": [
          {
            "api_token": []
          },
          {
            "cookie_auth": []
          }
        ]
      }
    }
  },
  "tags": [
    {
      "name": "Admin Api Keys",
      "description": "API keys can be used for authentication or resource-scoping.\n\nA secret API key can be used to authenticate admin users.  A publishable API key can be used to scope client requests to one or more sales channels.\n\nThese API routes allow admin users to manage both publishable and secret API keys.\n",
      "externalDocs": {
        "description": "Learn more about the API Key Module",
        "url": "https://docs.medusajs.com/resources/commerce-modules/api-key"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminApiKey"
      }
    },
    {
      "name": "Admin Auth",
      "description": "Auth API routes allow you to manage an admin user's authentication.\n"
    },
    {
      "name": "Admin Campaigns",
      "description": "A campaign is a group of promotions that have the same conditions, such as start and end dates.\n\nThese API routes allow admin users to manage campaigns, their conditions, and promotions that belong to them.\n",
      "externalDocs": {
        "description": "Learn more about campaigns.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/promotion/campaign"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminCampaign"
      }
    },
    {
      "name": "Admin Claims",
      "description": "An admin creates a claim for an order when a customer reports that an item is defective or incorrect.\n\nUsing these API routes, admin users manage order claims, their items, and more.\n",
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminClaim"
      },
      "externalDocs": {
        "description": "Learn more about order claims.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/order/claim"
      }
    },
    {
      "name": "Admin Collections",
      "description": "A product collection organizes products into a collection for marketing purposes. For example, a summer collection.\n\nThese API routes allow admin users to manage collections and the products in them.\n",
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminCollection"
      }
    },
    {
      "name": "Admin Currencies",
      "description": "A store can use unlimited currencies, and each region must be associated with at least one currency.\n\nCurrencies are defined by the Currency Module. Currency API Routes allow admins to list and update currencies.\n",
      "externalDocs": {
        "description": "Learn more about the Currency Module",
        "url": "https://docs.medusajs.com/resources/commerce-modules/currency"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminCurrency"
      }
    },
    {
      "name": "Admin Customer Groups",
      "description": "Customers can be organized into groups. These groups are useful for segregation and marketing purposes.\n\nFor example, you can provide different prices for specific customers by creating a price list conditioned to their group.\n\nThese API routes allow admin users to manage groups and the customers in them.\n",
      "externalDocs": {
        "description": "Learn more about the Customer Module",
        "url": "https://docs.medusajs.com/resources/commerce-modules/customer"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminCustomerGroup"
      }
    },
    {
      "name": "Admin Customers",
      "description": "Customers can either be created when they register through the Store APIs, or created by the admin using the Admin APIs.\n\nThese API routes allow admin users to manage customers in their store.\n",
      "externalDocs": {
        "description": "Learn more about the Customer Module",
        "url": "https://docs.medusajs.com/resources/commerce-modules/customer"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminCustomer"
      }
    },
    {
      "name": "Admin Draft Orders",
      "description": "A draft order is an order created by the admin user. This is useful for orders created offline or from clients other than a storefront, such as a third-party integration.\n\nThese API routes allow admin users to create and manage draft orders.\n",
      "externalDocs": {
        "description": "Learn more about the Order Module",
        "url": "https://docs.medusajs.com/resources/commerce-modules/order"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminDraftOrder"
      }
    },
    {
      "name": "Admin Exchanges",
      "description": "An exchange is the replacement of an item that the customer ordered with another.\n\nThese API routes allow admin users to create and manage exchanges.\n",
      "externalDocs": {
        "description": "Learn more about the order exchanges.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/order/exchange"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminExchange"
      }
    },
    {
      "name": "Admin Feature Flags",
      "description": "Feature flags are used to enable or disable certain features in your Medusa application.\nThese API routes allow admin users to view feature flags.\n"
    },
    {
      "name": "Admin Fulfillment Providers",
      "description": "A fulfillment provider is a third-party integration or custom logic used to  fulfill an order's items.\n\nFulfillment providers are installed as module providers.\n",
      "externalDocs": {
        "description": "Learn more about the fulfillment providers and how to create them.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/fulfillment-provider"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminFulfillmentProvider"
      }
    },
    {
      "name": "Admin Fulfillment Sets",
      "description": "A fulfillment set is a general form or way of fulfillment, such as \"shipping\" or \"pick up\".\n\nAll fulfillment-related configurations in a store are related to a fulfillment set.\n\nThese API routes allow admin users to manage fulfillment sets.\n",
      "externalDocs": {
        "description": "Learn more about fulfillment sets.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/concepts"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminFulfillmentSet"
      }
    },
    {
      "name": "Admin Fulfillments",
      "description": "A fulfillment is created for items in an order, return, exchanges, or claims to deliver items to/from the customer.\n\nThese API routes allow admin users to manage fulfillments.\n",
      "externalDocs": {
        "description": "Learn more about fulfillments.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/item-fulfillment"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminFulfillment"
      }
    },
    {
      "name": "Admin Gift Cards",
      "description": "A gift card is a prepaid card that can be used to pay for items during checkout.\nGift cards can be purchased by customers, or created by admin users. When a gift card is redeemed, its amount is added to the customer's store credit account, which can then be used to pay for items during checkout.\nThese API routes allow admin users to manage gift cards, transfer gift cards between customers, and more.\n<Note>\nGift Card routes are only available for Cloud users using the [Loyalty Plugin](https://docs.medusajs.com/cloud/loyalty-plugin).\n</Note>\n",
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminGiftCard"
      }
    },
    {
      "name": "Admin Index",
      "description": "The Index Module is a tool to perform high-performance queries across modules, for example, to filter linked modules.\nThe Index Module is currently experimental and is hidden behind a feature flag. Learn more about it and how to enable it in the [Index Module guide](https://docs.medusajs.com/learn/fundamentals/module-links/index-module).\n"
    },
    {
      "name": "Admin Inventory Items",
      "description": "An inventory item is a stock-kept product whose inventory is managed.\n\nThese API routes allow admin users to manage inventory items.\n",
      "externalDocs": {
        "description": "Learn more about inventory items.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/inventory/concepts"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminInventoryItem"
      }
    },
    {
      "name": "Admin Invites",
      "description": "An admin can invite new users to manage their team. This allows new users to authenticate as admins and perform admin functionalities.\n\nThese API routes allow admin users to manage invites.\n",
      "externalDocs": {
        "description": "Learn more about the User Module",
        "url": "https://docs.medusajs.com/resources/commerce-modules/user"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminInvite"
      }
    },
    {
      "name": "Admin Locales",
      "description": "A locale is a language that content is translated into for customers to view in a storefront.\nMedusa installs locales by default. These API routes allow admin users to retrieve and view locales.\n",
      "externalDocs": {
        "description": "Learn more about locales and translations.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/translation/concepts"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminLocale"
      }
    },
    {
      "name": "Admin Notifications",
      "description": "A notification informs an admin user of store changes or status changes of background tasks.\n\nThese API routes allow admin users to view and manage notifications.\n",
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminNotification"
      }
    },
    {
      "name": "Admin Order Changes",
      "description": "An order change is a proposed change to an order, such as adding or removing items, changing shipping methods, and more. They can be associated with order edits, claims, or exchanges.\nThese API routes allow admin users to manage order changes.\n",
      "externalDocs": {
        "description": "Learn more about order changes.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/order/order-change"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminOrderChange"
      }
    },
    {
      "name": "Admin Order Edits",
      "description": "An order edit is a change to an order's details, such as items, shipping methods, and more.\n\nChanges made by an order edit are only applied on the order once they're confirmed.\n\nThe order's previous version is retained due to versioning.\n\nThese API routes allow admin users to make edits to an order and manage those edits.\n",
      "externalDocs": {
        "description": "Learn more about the Order Module",
        "url": "https://docs.medusajs.com/resources/commerce-modules/order"
      }
    },
    {
      "name": "Admin Orders",
      "description": "An order is a purchase made by a customer through a storefront.\n\nOrders can also originally be created as draft orders.\n\nThese API routes allow admin users to view and manage orders.\n",
      "externalDocs": {
        "description": "Learn more about the orders",
        "url": "https://docs.medusajs.com/resources/commerce-modules/order/concepts"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminOrder"
      }
    },
    {
      "name": "Admin Payment Collections",
      "description": "A payment collection is one or more payments of an order. They're also used for outstanding payments due to order exchanges or claims.\n\nEvery purchase or request for payment starts with a payment collection.\n\nA payment collection holds the payment sessions used to authorize the payment amount, and the payments to be captured / refunded.\n\nThese API routes allow admin users to manage payment collections.\n",
      "externalDocs": {
        "description": "Learn more about payment collections.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/payment/payment-collection"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminPaymentCollection"
      }
    },
    {
      "name": "Admin Payments",
      "description": "A payment is created when a payment amount is authorized. The payment can then be captured or refunded.\n\nA payment is created from the payment session that was authorized, and it belongs to the payment session's collection.\n\nThese API routes allow admin users to manage payments.\n",
      "externalDocs": {
        "description": "Learn more about payments.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/payment/payment"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminPayment"
      }
    },
    {
      "name": "Admin Plugins",
      "description": "A plugin is a package of reusable Medusa customizations that you can install in any Medusa application.\nPlugins can be used to add new functionality, such as wishlists, or integrate third-party services, such as payment providers.\nThese API routes allow admin users to retrieve plugins installed in their Medusa application.\n",
      "externalDocs": {
        "description": "Learn more about plugins.",
        "url": "https://docs.medusajs.com/learn/fundamentals/plugins"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminPlugin"
      }
    },
    {
      "name": "Admin Price Lists",
      "description": "A price list is a group of prices applied if the specified conditions and rules are satisfied.\n\nPrice lists are useful for sales or special prices for special conditions, such as applying prices for a set of customers.\n\nThese API routes allow admin users to manage price lists.\n",
      "externalDocs": {
        "description": "Learn more about price lists.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/pricing/concepts#price-list"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminPriceList"
      }
    },
    {
      "name": "Admin Price Preferences",
      "description": "A price preference is used to specify whether tax-inclusiveness is enabled for a context, such as a region or currency code.\n\nThese API routes allow admin users to manage whether a region or currency is tax inclusive.\n",
      "externalDocs": {
        "description": "Learn more about tax-inclusiveness and the role of a price preference.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/pricing/tax-inclusive-pricing"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminPricePreference"
      }
    },
    {
      "name": "Admin Product Categories",
      "description": "Products can be categorized into categories.\n\nCategories are nested and their heirarchy can be managed, giving admin users flexibility in how they categorize their products.\n\nThese API routes allow admin users to manage categories and the products in them.\n",
      "externalDocs": {
        "description": "Learn more about the Product Module",
        "url": "https://docs.medusajs.com/resources/commerce-modules/product"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminProductCategory"
      }
    },
    {
      "name": "Admin Product Tags",
      "description": "A tag is another way of organizing a product. Each tag has a name and a value.\n\nProducts are organized into the same tag if they have the same value.\n\nThese API routes allow admin users to manage product tags.\n",
      "externalDocs": {
        "description": "Learn more about the Product Module",
        "url": "https://docs.medusajs.com/resources/commerce-modules/product"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminProductTag"
      }
    },
    {
      "name": "Admin Product Types",
      "description": "Products can be organized into types. Each type has a name and a value.\n\nProducts are organized into the same type if they have the same value.\n\nThese API routes allow admin users to manage product types.\n",
      "externalDocs": {
        "description": "Learn more about the Product Module",
        "url": "https://docs.medusajs.com/resources/commerce-modules/product"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminProductType"
      }
    },
    {
      "name": "Admin Product Variants",
      "description": "A product variant is a saleable form of the product.\n\nEach variant has different option values. For example, a \"Shirt\" product may have a  \"Blue\" variant and a \"Green\" variant. Customers choose from these variants when they buy the product.\n\nThese API routes allow admin users to manage product variants.\n",
      "externalDocs": {
        "description": "Learn more about the Product Module",
        "url": "https://docs.medusajs.com/resources/commerce-modules/product"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminProductVariant"
      }
    },
    {
      "name": "Admin Products",
      "description": "A product is a set of variants that the customer chooses from when making a purchase.\n\nA product can be organized into categories or collections.\n\nA product can have many options, and variants for each of these options' values.\n\nThese API routes allow admin users to manage products.\n",
      "externalDocs": {
        "description": "Learn more about the Product Module",
        "url": "https://docs.medusajs.com/resources/commerce-modules/product"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminProduct"
      }
    },
    {
      "name": "Admin Promotions",
      "description": "A promotion discounts an amount or percentage off a cart's items, shipping methods, or the entire order.\n\nPromotions have different types, such as a `standard` promotion that just discounts an amount, or a `buyget` promotion to enforce a \"buy X get Y\" promotion.\n\nA promotion has rules to restrict how and when they're applied.\n\nPromotions belong to a campaign, which sets conditions on the promotion such as when it starts and ends.\n\nThese API routes allow admin users to manage promotions.\n",
      "externalDocs": {
        "description": "Learn more about promotions.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/promotion/concepts"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminPromotion"
      }
    },
    {
      "name": "Admin Refund Reasons",
      "description": "A refund reason is a possible reason used when issuing a refund to the customer, such as when returning an item and refunding the customer.\n\nThese API routes allow admin users to manage refund reasons.\n",
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminRefundReason"
      }
    },
    {
      "name": "Admin Regions",
      "description": "Regions are different countries or geographical regions that the commerce store serves customers in.\n\nThese API routes allow admin users to manage regions, their providers, and more.\n",
      "externalDocs": {
        "description": "Learn more about the Region Module.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/region"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminRegion"
      }
    },
    {
      "name": "Admin Reservations",
      "description": "A reservation is unavailable quantity of an inventory item in a location.\n\nA reservation is created automatically for variants in an order whose `manage_inventory` is enabled. Admin users can also create reservations manually.\n\nThese API routes allow admin users to manage reservations.\n",
      "externalDocs": {
        "description": "Learn more about reservations and other inventory concepts.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/inventory/concepts"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminReservation"
      }
    },
    {
      "name": "Admin Return Reasons",
      "description": "A return reason is a possible reason that an item is returned from the customer, such as when returning an item.\n\nThese API routes allow admin users to manage return reasons.\n",
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminReturnReason"
      }
    },
    {
      "name": "Admin Returns",
      "description": "Admin users create a return when a customer returns an item to them.\n\nReturns can also be created by customers through the storefront, and admins will be able to manage them and make refunds, if necessary. Refunds are made through the [Payment API Routes](#payment)\n\nThese API routes allow admin users to manage returns.\n",
      "externalDocs": {
        "description": "Learn more about order returns.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/order/return"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminReturn"
      }
    },
    {
      "name": "Admin Sales Channels",
      "description": "A sales channel indicates a channel where products can be sold in. For example, a webshop or a mobile app.\n\nThese API routes allow admins to manage sales channels and the products available in them.\n",
      "externalDocs": {
        "description": "Learn more about the Sales Channel Module.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/sales-channel"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminSalesChannel"
      }
    },
    {
      "name": "Admin Shipping Option Types",
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminShippingOptionType"
      },
      "description": "Shipping option types define a group of shipping options with shared shipping characterstics. For example,  you may have \"Standard\" and \"Express\" shipping option types.\nThese API routes allow admins to manage shipping option types.\n",
      "externalDocs": {
        "description": "Learn more about shipping option types.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#shipping-profiles-and-types"
      }
    },
    {
      "name": "Admin Shipping Options",
      "description": "A shipping option is a way of shipping an item to or from the customer.\n\nShipping options are associated with the fulfillment provider used to handle their fulfillment.\n\nShipping options can be restricted geographically by service zones, and by custom rules, such as an item's weight or the customer's group.\n\nThese API routes allow admins to manage shipping options.\n",
      "externalDocs": {
        "description": "Learn more about shipping options.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminShippingOption"
      }
    },
    {
      "name": "Admin Shipping Profiles",
      "description": "A shipping profile defines a type of items that are shipping in a similar manner. For example,  digital products may have a `digital` shipping profile.\n\nThese API routes allow admin users to manage shipping profiles.\n",
      "externalDocs": {
        "description": "Learn more about shipping profiles and other fulfillment concepts.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/concepts#shipping-profile"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminShippingProfile"
      }
    },
    {
      "name": "Admin Stock Locations",
      "description": "A stock location is where stock-kept items (products) are kept.\n\nStock locations are linked to fulfillment providers used to fulfill items from this location.\n\nA stock location is also link to a fulfillment set, indicating where an item is fulfilled from  when an order is placed.\n\nThese API routes allow admin users to manage stock locations and their linked data.\n",
      "externalDocs": {
        "description": "Learn more about stock locations.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/stock-location/concepts"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminStockLocation"
      }
    },
    {
      "name": "Admin Store Credit Accounts",
      "description": "A store credit account is a ledger of store credit transactions for a customer. They hold the customer's store credit balance,  including their credit and debit amounts.\nStore credit accounts allow you to build features that let customers pay for items using their store credit balance, such as gift cards or loyalty points.\nThese API routes allow admin users to manage store credit accounts, their transactions, and more.\n<Note>\nStore Credit Account routes are only available for Cloud users using the [Loyalty Plugin](https://docs.medusajs.com/cloud/loyalty-plugin).\n</Note>\n",
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminStoreCreditAccount"
      }
    },
    {
      "name": "Admin Stores",
      "description": "A store holds the main configuration and information of your commerce store, such as supported currencies or default sales channel.\n\nBy default, the Medusa application has one default store. There are no API routes to create more stores. Instead, you'd have  to handle that customization manually.\n\nThese API routes allow admin users to manage their store.\n",
      "externalDocs": {
        "description": "Learn more about the Store Module.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/store"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminStore"
      }
    },
    {
      "name": "Admin Tax Providers",
      "description": "A tax provider is a third-party integration or custom logic used to calculate taxes for a cart or an order.\nThese API routes allow admin users to manage tax providers installed in their Medusa application.\n",
      "externalDocs": {
        "description": "Learn more about the Tax Module Providers",
        "url": "https://docs.medusajs.com/resources/commerce-modules/tax/tax-provider"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminTaxProvider"
      }
    },
    {
      "name": "Admin Tax Rates",
      "description": "A tax rate is a percentage amount used to calculate the tax amount of each taxable item's price, such as line items or shipping methods.\n\nEach tax region has a default tax rate. You can create tax rates that override the default using tax rules.\n\nThese API routes allow admin users to manage tax rates and their rules.\n",
      "externalDocs": {
        "description": "Learn more about tax rates and rules.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/tax/tax-rates-and-rules"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminTaxRate"
      }
    },
    {
      "name": "Admin Tax Regions",
      "description": "A tax region is a region's tax settings. It has tax rates and rules. So, after you create a region, you must create a tax region for it.\n\nA tax region can extend settings from a parent tax region.\n\nThese API routes allow admin users to manage tax regions. \n",
      "externalDocs": {
        "description": "Learn more about tax regions.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/tax/tax-region"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminTaxRegion"
      }
    },
    {
      "name": "Admin Transaction Groups",
      "description": "A transaction group is a group of transactions that belong to a store credit account. It allows you to group transactions together, such as all transactions related to a specific gift card.\nThese API routes allow admin users to list transaction groups.\n<Note>\nTransaction Group routes are only available for Cloud users using the [Loyalty Plugin](https://docs.medusajs.com/cloud/loyalty-plugin).\n</Note>\n",
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminTransactionGroup"
      }
    },
    {
      "name": "Admin Translations",
      "description": "A translation is a localized version of content in a specific locale. For example, a product description in French.\nThese API routes allow admin users to manage translations for different locales and resources.\n",
      "externalDocs": {
        "description": "Learn more about the Translation Module.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/translation"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminTranslation"
      }
    },
    {
      "name": "Admin Uploads",
      "description": "Use these API routes to upload files to your Medusa application using the installed file module provider.\n\nYou can upload public files, such as product images, or private files, such as CSV files used to import products.\n",
      "externalDocs": {
        "description": "Check out available file module providers.",
        "url": "https://docs.medusajs.com/resources/infrastructure-modules/file"
      }
    },
    {
      "name": "Admin Users",
      "description": "A user is an admin user that can authenticate and perform functionalities as an admin user.\n\nAn admin user can invite other users to join their team. Once they accept the invite, they'll become admin users as well.\n\nThese API routes allow admin users to manage their team.\n",
      "externalDocs": {
        "description": "Learn more about the User Module.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/user"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/AdminUser"
      }
    },
    {
      "name": "Admin Views"
    },
    {
      "name": "Admin Workflows Executions",
      "description": "These API routes allow you to track workflow executions in your Medusa application.\n\nDepending on the workflow engine you use, executions may only be retained for a short while, or only until the Medusa application is restarted.\n",
      "externalDocs": {
        "description": "Check out available Workflow Engine Modules",
        "url": "https://docs.medusajs.com/resources/infrastructure-modules/workflow-engine"
      }
    },
    {
      "name": "Store Auth",
      "description": "Auth API routes allow you to manage a customer's authentication.\n"
    },
    {
      "name": "Store Carts",
      "description": "A cart is a virtual shopping bag that customers can use to add items they want to purchase.\n\nA cart is then used to checkout and place an order.\n\nThese API routes allow customers to create and manage their cart, and place an order.\n",
      "externalDocs": {
        "description": "How to implement cart functionality in a storefront.",
        "url": "https://docs.medusajs.com/resources/storefront-development/cart"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StoreCart"
      }
    },
    {
      "name": "Store Collections",
      "description": "A product collection organizes products into a collection for marketing purposes. For example, a summer collection.\n\nThese API routes allow customers to browse collections and their products.\n",
      "externalDocs": {
        "description": "How to list product collections in a storefront.",
        "url": "https://docs.medusajs.com/resources/storefront-development/products/collections/list"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StoreCollection"
      }
    },
    {
      "name": "Store Currencies",
      "description": "A store has multiple currencies, and product prices can be different for each currency.\n\nWhen retrieving product variant prices, you specify either the ID of a region or a currency that the customer selected.\n\nThese API routes allow customers to browse currencies.\n",
      "externalDocs": {
        "description": "How to retrieve product variant prices in a storefront.",
        "url": "https://docs.medusajs.com/resources/storefront-development/products/price"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StoreCurrency"
      }
    },
    {
      "name": "Store Customers",
      "description": "Customers can place orders as guest customers or register.\n\nWhen a customer registers, they can manage their profile, save addresses for later usage, and more.\n\nThese API routes allow customers to create and manage their accounts.\n",
      "externalDocs": {
        "description": "How to implement customer account functionalities in a storefront.",
        "url": "https://docs.medusajs.com/resources/storefront-development/customers"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StoreCustomer"
      }
    },
    {
      "name": "Store Gift Cards",
      "description": "A gift card is a prepaid card that customers can use to purchase products in the store.\nCustomers can purchase gift cards for themselves or others, and then use them to pay for their orders.\nThese API routes allow logged-in customers to create and manage their gift cards.\n<Note>\nGift Cards are only available for Cloud users using the [Loyalty Plugin](https://docs.medusajs.com/cloud/loyalty-plugin).\n</Note>\n",
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StoreGiftCard"
      }
    },
    {
      "name": "Store Locales",
      "description": "A locale is a language that content is translated into for customers to view in a storefront.\nMedusa installs locales by default. These API routes allow you to retrieve supported locales in the store.\n",
      "externalDocs": {
        "description": "Learn more about locales and translations.",
        "url": "https://docs.medusajs.com/resources/commerce-modules/translation/concepts"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StoreLocale"
      }
    },
    {
      "name": "Store Orders",
      "description": "Guest and registered customers can view orders they placed.\n\nThese API routes allow customers to view their orders.\n",
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StoreOrder"
      }
    },
    {
      "name": "Store Payment Collections",
      "description": "A cart must have a payment collection with an authorized payment session.\n\nUse these API routes during checkout to set the cart's payment provider and authorize its payment session.\n",
      "externalDocs": {
        "description": "How to implement payment during checkout.",
        "url": "https://docs.medusajs.com/resources/storefront-development/checkout/payment"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StorePaymentCollection"
      }
    },
    {
      "name": "Store Payment Providers",
      "description": "Each region has a set of payment providers enabled.\n\nDuring checkout, you retrieve the available payment providers in the customer's region to show them to the customer. Customers then choose their preferred provider to authorize their payment and place their order.\n\nThese API routes allow customers to view available payment providers in their region.\n",
      "externalDocs": {
        "description": "How to implement payment during checkout.",
        "url": "https://docs.medusajs.com/resources/storefront-development/checkout/payment"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StorePaymentProvider"
      }
    },
    {
      "name": "Store Product Categories",
      "description": "Products can be categorized into categories.\n\nThese API routes allow customers to browse categories and their products.\n",
      "externalDocs": {
        "description": "How to list product categories in a storefront.",
        "url": "https://docs.medusajs.com/resources/storefront-development/products/categories/list"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StoreProductCategory"
      }
    },
    {
      "name": "Store Product Tags",
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StoreProductTag"
      }
    },
    {
      "name": "Store Product Types",
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StoreProductType"
      }
    },
    {
      "name": "Store Products",
      "description": "Customers browse products for their purchase.\n\nA product has variants for different option values. The customer chooses from these variants before adding it to the cart.\n\nThese API routes allow customers to browse products.\n",
      "externalDocs": {
        "description": "How to list products, get their prices, and more in a storefront.",
        "url": "https://docs.medusajs.com/resources/storefront-development/products"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StoreProduct"
      }
    },
    {
      "name": "Store Regions",
      "description": "Regions are different countries or geographical regions that the commerce store serves customers in.\n\nCustomers can choose what region they're in to view prices of that region's currency.\n\nUse these API routes to retrieve available regions in the store.\n",
      "externalDocs": {
        "description": "How to retrieve and store selected region in a storefront.",
        "url": "https://docs.medusajs.com/resources/storefront-development/regions"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StoreRegion"
      }
    },
    {
      "name": "Store Return Reasons",
      "description": "A return reason is a possible reason a customer wants to return an item.\n\nUse these API routes when implementing return creation flow in your storefront to allow customers to select their return reason.\n",
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StoreReturnReason"
      }
    },
    {
      "name": "Store Returns",
      "description": "Customers can request to return items in their order. The admin user then receives and handles the return.\n\nThese API routes allows customers to create a return.\n",
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StoreReturn"
      }
    },
    {
      "name": "Store Shipping Options",
      "description": "A shipping option is a way of shipping an item to or from the customer.\n\nDuring the checkout flow, the customer selects their preferred shipping option to receive their order.\n\nThese API routes allow customers to retrieve available shipping options for their context.\n",
      "externalDocs": {
        "description": "How to implement shipping during checkout.",
        "url": "https://docs.medusajs.com/resources/storefront-development/checkout/shipping"
      },
      "x-associatedSchema": {
        "$ref": "#/components/schemas/StoreShippingOption"
      }
    },
    {
      "name": "Store Store Credit Accounts",
      "x-associatedSchema": {
        "description": "A store credit account is a way for customers to manage their store credit balance. Customers can use their store credit to pay for orders, and view their store credit balance.\nThese API routes allow customers to view their store credit accounts.\n<Note>\nStore Credit Accounts are only available for Cloud users using the [Loyalty Plugin](https://docs.medusajs.com/cloud/loyalty-plugin).\n</Note>\n",
        "$ref": "#/components/schemas/StoreStoreCreditAccount"
      }
    }
  ],
  "components": {
    "callbacks": {},
    "examples": {
      "not_allowed_error": {
        "summary": "Not Allowed Error",
        "value": {
          "message": "Discount must be set to dynamic",
          "type": "not_allowed"
        }
      },
      "invalid_data_error": {
        "summary": "Invalid Data Error",
        "value": {
          "message": "first_name must be a string",
          "type": "invalid_data"
        }
      },
      "multiple_errors": {
        "summary": "Multiple Errors",
        "value": {
          "message": "Provided request body contains errors. Please check the data and retry the request",
          "errors": [
            {
              "message": "first_name must be a string",
              "type": "invalid_data"
            },
            {
              "message": "Discount must be set to dynamic",
              "type": "not_allowed"
            }
          ]
        }
      },
      "database_error": {
        "summary": "Database Error",
        "value": {
          "code": "api_error",
          "message": "An error occured while hashing password",
          "type": "database_error"
        }
      },
      "unexpected_state_error": {
        "summary": "Unexpected State Error",
        "value": {
          "message": "cart.total must be defined",
          "type": "unexpected_state"
        }
      },
      "invalid_argument_error": {
        "summary": "Invalid Argument Error",
        "value": {
          "message": "cart.total must be defined",
          "type": "unexpected_state"
        }
      },
      "default_error": {
        "summary": "Default Error",
        "value": {
          "code": "unknown_error",
          "message": "An unknown error occurred.",
          "type": "unknown_error"
        }
      }
    },
    "headers": {},
    "links": {},
    "parameters": {},
    "requestBodies": {},
    "responses": {
      "default_error": {
        "description": "Default Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "code": "unknown_error",
              "message": "An unknown error occurred.",
              "type": "unknown_error"
            }
          }
        }
      },
      "invalid_state_error": {
        "description": "Invalid State Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "code": "unknown_error",
              "message": "The request conflicted with another request. You may retry the request with the provided Idempotency-Key.",
              "type": "QueryRunnerAlreadyReleasedError"
            }
          }
        }
      },
      "invalid_request_error": {
        "description": "Invalid Request Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "code": "invalid_request_error",
              "message": "Discount with code TEST already exists.",
              "type": "duplicate_error"
            }
          }
        }
      },
      "not_found_error": {
        "description": "Not Found Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "message": "Entity with id 1 was not found",
              "type": "not_found"
            }
          }
        }
      },
      "400_error": {
        "description": "Client Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "examples": {
              "not_allowed": {
                "$ref": "#/components/examples/not_allowed_error"
              },
              "invalid_data": {
                "$ref": "#/components/examples/invalid_data_error"
              }
            }
          }
        }
      },
      "500_error": {
        "description": "Server Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "examples": {
              "database": {
                "$ref": "#/components/examples/database_error"
              },
              "unexpected_state": {
                "$ref": "#/components/examples/unexpected_state_error"
              },
              "invalid_argument": {
                "$ref": "#/components/examples/invalid_argument_error"
              },
              "default_error": {
                "$ref": "#/components/examples/default_error"
              }
            }
          }
        }
      },
      "unauthorized": {
        "description": "User is not authorized. Must log in first",
        "content": {
          "text/plain": {
            "schema": {
              "type": "string",
              "default": "Unauthorized",
              "example": "Unauthorized"
            }
          }
        }
      },
      "incorrect_credentials": {
        "description": "User does not exist or incorrect credentials",
        "content": {
          "text/plain": {
            "schema": {
              "type": "string",
              "default": "Unauthorized",
              "example": "Unauthorized"
            }
          }
        }
      }
    },
    "schemas": {
      "AdminAddClaimItems": {
        "type": "object",
        "description": "The details of the order items to add to the claim.",
        "x-schemaName": "AdminAddClaimItems",
        "properties": {
          "items": {
            "type": "array",
            "description": "The item's details.",
            "items": {
              "type": "object",
              "description": "An item's details.",
              "required": [
                "id",
                "quantity"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The ID of the order's item."
                },
                "quantity": {
                  "type": "number",
                  "title": "quantity",
                  "description": "The quantity of the order's item to add to the claim."
                },
                "reason": {
                  "type": "string",
                  "description": "The reason the item is claimed.",
                  "enum": [
                    "missing_item",
                    "wrong_item",
                    "production_failure",
                    "other"
                  ]
                },
                "description": {
                  "type": "string",
                  "title": "description",
                  "description": "The item's description."
                },
                "internal_note": {
                  "type": "string",
                  "title": "internal_note",
                  "description": "A note that's only viewed by admin users."
                }
              }
            }
          }
        }
      },
      "AdminAddClaimOutboundItems": {
        "type": "object",
        "description": "The details of the outbound items to add to the claim.",
        "x-schemaName": "AdminAddClaimOutboundItems",
        "properties": {
          "items": {
            "type": "array",
            "description": "The outbound item's details.",
            "items": {
              "type": "object",
              "description": "An item's details.",
              "required": [
                "id",
                "quantity"
              ],
              "properties": {
                "quantity": {
                  "type": "number",
                  "title": "quantity",
                  "description": "The quantity to send to the customer."
                },
                "internal_note": {
                  "type": "string",
                  "title": "internal_note",
                  "description": "A note viewed only by admin users."
                },
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The item's ID."
                },
                "reason": {
                  "type": "string",
                  "description": "The item's reason.",
                  "enum": [
                    "missing_item",
                    "wrong_item",
                    "production_failure",
                    "other"
                  ]
                },
                "description": {
                  "type": "string",
                  "title": "description",
                  "description": "The item's description."
                }
              }
            }
          }
        }
      },
      "AdminAddDraftOrderItems": {
        "type": "object",
        "description": "The details of the items to add to a draft order.",
        "x-schemaName": "AdminAddDraftOrderItems",
        "properties": {
          "items": {
            "type": "array",
            "description": "The items to add to the draft order.",
            "items": {
              "type": "object",
              "description": "The item's details",
              "required": [
                "quantity"
              ],
              "properties": {
                "quantity": {
                  "type": "number",
                  "title": "quantity",
                  "description": "The item's quantity."
                },
                "variant_id": {
                  "type": "string",
                  "title": "variant_id",
                  "description": "The ID of the variant to add to the draft order."
                },
                "title": {
                  "type": "string",
                  "title": "title",
                  "description": "The item's title."
                },
                "unit_price": {
                  "type": "number",
                  "title": "unit_price",
                  "description": "The item's unit price."
                },
                "compare_at_unit_price": {
                  "type": "number",
                  "title": "compare_at_unit_price",
                  "description": "The original price of the item before a promotion or sale."
                },
                "internal_note": {
                  "type": "string",
                  "title": "internal_note",
                  "description": "A note viewed only by admin users about the item."
                },
                "allow_backorder": {
                  "type": "boolean",
                  "title": "allow_backorder",
                  "description": "Whether the item can be purchased if it's out of stock."
                },
                "metadata": {
                  "type": "object",
                  "description": "The item's metadata, can hold custom key-value pairs.",
                  "externalDocs": {
                    "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                    "description": "Learn how to manage metadata"
                  }
                }
              }
            }
          }
        }
      },
      "AdminAddDraftOrderPromotions": {
        "type": "object",
        "description": "The details of the promotions to add to a draft order.",
        "x-schemaName": "AdminAddDraftOrderPromotions",
        "required": [
          "promo_codes"
        ],
        "properties": {
          "promo_codes": {
            "type": "array",
            "description": "The list promotion codes to add to the draft order.",
            "items": {
              "type": "string",
              "title": "promo_codes",
              "description": "A promotion's code."
            }
          }
        }
      },
      "AdminAddDraftOrderShippingMethod": {
        "type": "object",
        "description": "The details of the shipping method to add to a draft order.",
        "x-schemaName": "AdminAddDraftOrderShippingMethod",
        "required": [
          "shipping_option_id"
        ],
        "properties": {
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the shipping option that this method is created from."
          },
          "custom_amount": {
            "type": "number",
            "title": "custom_amount",
            "description": "A custom amount to be charged for this shipping method. If not provided, the shipping option's amount will be used."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The shipping method's description."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users about the shipping method."
          },
          "metadata": {
            "type": "object",
            "description": "The shipping method's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminAddExchangeInboundItems": {
        "type": "object",
        "description": "The details of the inbound (return) items.",
        "x-schemaName": "AdminAddExchangeInboundItems",
        "properties": {
          "items": {
            "type": "array",
            "description": "The details of the inbound (return) items.",
            "items": {
              "type": "object",
              "description": "An item's details.",
              "required": [
                "id",
                "quantity"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The ID of the order's item."
                },
                "quantity": {
                  "type": "number",
                  "title": "quantity",
                  "description": "The item's quantity."
                },
                "description": {
                  "type": "string",
                  "title": "description",
                  "description": "The item's description."
                },
                "internal_note": {
                  "type": "string",
                  "title": "internal_note",
                  "description": "A note viewed only by admin users."
                },
                "reason_id": {
                  "type": "string",
                  "title": "reason_id",
                  "description": "The ID of the return reason to associate with the item."
                },
                "metadata": {
                  "type": "object",
                  "description": "The item's metadata, can hold custom key-value pairs.",
                  "externalDocs": {
                    "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                    "description": "Learn how to manage metadata"
                  }
                }
              }
            }
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the location to which outbound items are sent from."
          }
        }
      },
      "AdminAddExchangeOutboundItems": {
        "type": "object",
        "description": "The details of outbound items.",
        "x-schemaName": "AdminAddExchangeOutboundItems",
        "properties": {
          "items": {
            "type": "array",
            "description": "The details of outbound items.",
            "items": {
              "type": "object",
              "description": "An item's details.",
              "required": [
                "variant_id",
                "quantity"
              ],
              "properties": {
                "variant_id": {
                  "type": "string",
                  "title": "variant_id",
                  "description": "The ID of the associated product variant."
                },
                "quantity": {
                  "type": "number",
                  "title": "quantity",
                  "description": "The item's quantity."
                },
                "unit_price": {
                  "type": "number",
                  "title": "unit_price",
                  "description": "The item's unit price."
                },
                "internal_note": {
                  "type": "string",
                  "title": "internal_note",
                  "description": "A note viewed only by admin users."
                },
                "allow_backorder": {
                  "type": "boolean",
                  "title": "allow_backorder",
                  "description": "Whether the item can be added even if it's not in stock."
                },
                "metadata": {
                  "type": "object",
                  "description": "The item's metadata, can hold custom key-value pairs.",
                  "externalDocs": {
                    "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                    "description": "Learn how to manage metadata"
                  }
                }
              }
            }
          }
        }
      },
      "AdminAddReturnItem": {
        "type": "object",
        "description": "An item's details.",
        "required": [
          "id",
          "quantity"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The item's ID."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The item's description."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          },
          "metadata": {
            "type": "object",
            "description": "The item's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        },
        "x-schemaName": "AdminAddReturnItem"
      },
      "AdminAddReturnItems": {
        "type": "object",
        "description": "The items' details.",
        "x-schemaName": "AdminAddReturnItems",
        "properties": {
          "items": {
            "type": "array",
            "description": "The items' details.",
            "items": {
              "$ref": "#/components/schemas/AdminAddReturnItem"
            }
          }
        },
        "required": [
          "items"
        ]
      },
      "AdminAddReturnShipping": {
        "type": "object",
        "description": "The shipping method's details.",
        "x-schemaName": "AdminAddReturnShipping",
        "required": [
          "shipping_option_id"
        ],
        "properties": {
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the associated shipping option."
          },
          "custom_amount": {
            "type": "number",
            "title": "custom_amount",
            "description": "Set the price of the shipping method."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The shipping method's description."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          },
          "metadata": {
            "type": "object",
            "description": "The exchange's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminApiKey": {
        "type": "object",
        "description": "The API key's details.",
        "x-schemaName": "AdminApiKey",
        "required": [
          "id",
          "token",
          "redacted",
          "title",
          "type",
          "last_used_at",
          "created_by",
          "created_at",
          "updated_at",
          "revoked_by",
          "revoked_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The api key's ID."
          },
          "token": {
            "type": "string",
            "title": "token",
            "description": "The api key's token."
          },
          "redacted": {
            "type": "string",
            "title": "redacted",
            "description": "The redacted form of the API key's token. This is useful when showing portion of the token.",
            "example": "sk_...123"
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The api key's title."
          },
          "type": {
            "type": "string",
            "description": "The api key's type. `secret` is used for a user's API key, whereas `publishable` is used for Publishable API keys.",
            "enum": [
              "secret",
              "publishable"
            ]
          },
          "last_used_at": {
            "type": "string",
            "title": "last_used_at",
            "description": "The date and time the API key was last used.",
            "format": "date-time"
          },
          "created_by": {
            "type": "string",
            "title": "created_by",
            "description": "The ID of the user that created the API key, if available."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date and time the API key was created."
          },
          "revoked_by": {
            "type": "string",
            "title": "revoked_by",
            "description": "The ID of the user that revoked the API key, if available."
          },
          "revoked_at": {
            "type": "string",
            "title": "revoked_at",
            "description": "The date and time the API key was revoked. The API key is considered revoked when this property is set.",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the API key was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the API key was deleted."
          }
        }
      },
      "AdminApiKeyResponse": {
        "type": "object",
        "description": "The API key's details.",
        "x-schemaName": "AdminApiKeyResponse",
        "required": [
          "api_key"
        ],
        "properties": {
          "api_key": {
            "$ref": "#/components/schemas/AdminApiKey"
          }
        }
      },
      "AdminApplicationMethod": {
        "type": "object",
        "description": "The application method's details.",
        "x-schemaName": "AdminApplicationMethod",
        "required": [
          "id"
        ],
        "properties": {
          "promotion": {
            "type": "object"
          },
          "target_rules": {
            "type": "array",
            "description": "The application method's target rules.",
            "items": {
              "$ref": "#/components/schemas/AdminPromotionRule"
            }
          },
          "buy_rules": {
            "type": "array",
            "description": "The application method's buy rules.",
            "items": {
              "$ref": "#/components/schemas/AdminPromotionRule"
            }
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The application method's ID."
          },
          "type": {
            "type": "string",
            "description": "The application method's type. If it's `fixed`, the promotion discounts a fixed amount. If it's `percentage`, the promotion discounts a percentage.",
            "enum": [
              "fixed",
              "percentage"
            ]
          },
          "target_type": {
            "type": "string",
            "description": "Which item does the promotion apply to. `items` mean the promotion applies to the cart's items; `shipping_methods` means the promotion applies to the cart's shipping methods; `order` means the promotion applies on the entire order.",
            "enum": [
              "items",
              "shipping_methods",
              "order"
            ]
          },
          "allocation": {
            "type": "string",
            "description": "How is the promotion amount discounted. `each` means the discounted amount is applied on each applicable item; `across` means the discounted amount is split accross the applicable items.",
            "enum": [
              "each",
              "across"
            ]
          },
          "value": {
            "type": "number",
            "title": "value",
            "description": "The amount to be discounted."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The application method's currency code.",
            "example": "usd"
          },
          "max_quantity": {
            "type": "number",
            "title": "max_quantity",
            "description": "The max quantity allowed in the cart for the associated promotion to be applied."
          },
          "buy_rules_min_quantity": {
            "type": "number",
            "title": "buy_rules_min_quantity",
            "description": "The minimum quantity required for a `buyget` promotion to be applied. For example, if the promotion is a \"Buy 2 shirts get 1 free\", the value of this attribute is `2`."
          },
          "apply_to_quantity": {
            "type": "number",
            "title": "apply_to_quantity",
            "description": "The quantity that results from matching the `buyget` promotion's condition. For example, if the promotion is a \"Buy 2 shirts get 1 free\", the value of this attribute is `1`."
          }
        }
      },
      "AdminBatchCreateInventoryItemLocationLevels": {
        "type": "object",
        "description": "The inventory level's details.",
        "required": [
          "location_id"
        ],
        "properties": {
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the associated location."
          },
          "stocked_quantity": {
            "type": "number",
            "title": "stocked_quantity",
            "description": "The inventory level's stocked quantity."
          },
          "incoming_quantity": {
            "type": "number",
            "title": "incoming_quantity",
            "description": "The inventory level's incoming quantity."
          }
        },
        "x-schemaName": "AdminBatchCreateInventoryItemLocationLevels"
      },
      "AdminBatchCreateInventoryItemsLocationLevels": {
        "type": "object",
        "description": "The details of an inventory level to create.",
        "required": [
          "location_id",
          "inventory_item_id"
        ],
        "properties": {
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the associated stock location."
          },
          "inventory_item_id": {
            "type": "string",
            "title": "inventory_item_id",
            "description": "The ID of the associated inventory item."
          },
          "stocked_quantity": {
            "type": "number",
            "title": "stocked_quantity",
            "description": "The stocked quantity."
          },
          "incoming_quantity": {
            "type": "number",
            "title": "incoming_quantity",
            "description": "The incoming quantity to be added to stock."
          }
        },
        "x-schemaName": "AdminBatchCreateInventoryItemsLocationLevels"
      },
      "AdminBatchImageVariantRequest": {
        "type": "object",
        "description": "Details of the associations between variants and a product image to manage.",
        "x-schemaName": "AdminBatchImageVariantRequest",
        "properties": {
          "add": {
            "type": "array",
            "description": "The IDs of product variants to add the image to.",
            "items": {
              "type": "string",
              "title": "add",
              "description": "The ID of the variant to add."
            }
          },
          "remove": {
            "type": "array",
            "description": "The IDs of product variants to remove the image from.",
            "items": {
              "type": "string",
              "title": "remove",
              "description": "The ID of the variant to remove."
            }
          }
        }
      },
      "AdminBatchImageVariantResponse": {
        "type": "object",
        "description": "Result of managing the associations between variants and a product image.",
        "x-schemaName": "AdminBatchImageVariantResponse",
        "required": [
          "added",
          "removed"
        ],
        "properties": {
          "added": {
            "type": "array",
            "description": "The IDs of product variants added the image to.",
            "items": {
              "type": "string",
              "title": "added",
              "description": "The ID of the variant added."
            }
          },
          "removed": {
            "type": "array",
            "description": "The IDs of product variants removed the image from.",
            "items": {
              "type": "string",
              "title": "removed",
              "description": "The ID of the variant removed."
            }
          }
        }
      },
      "AdminBatchInventoryItemLocationsLevel": {
        "type": "object",
        "description": "The inventory levels to create, update, or delete.",
        "properties": {
          "create": {
            "type": "array",
            "description": "The inventory levels to create.",
            "items": {
              "type": "object",
              "description": "The inventory level's details.",
              "required": [
                "location_id"
              ],
              "properties": {
                "location_id": {
                  "type": "string",
                  "title": "location_id",
                  "description": "The ID of the associated location."
                },
                "stocked_quantity": {
                  "type": "number",
                  "title": "stocked_quantity",
                  "description": "The inventory level's stocked quantity."
                },
                "incoming_quantity": {
                  "type": "number",
                  "title": "incoming_quantity",
                  "description": "The inventory level's incoming quantity."
                }
              }
            }
          },
          "update": {
            "type": "array",
            "description": "The inventory levels to update.",
            "items": {
              "type": "object",
              "description": "The inventory level's details.",
              "properties": {
                "stocked_quantity": {
                  "type": "number",
                  "title": "stocked_quantity",
                  "description": "The inventory level's stocked quantity."
                },
                "incoming_quantity": {
                  "type": "number",
                  "title": "incoming_quantity",
                  "description": "The inventory level's incoming quantity."
                },
                "location_id": {
                  "type": "string",
                  "title": "location_id",
                  "description": "The associated stock location's ID."
                },
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The ID of the location level."
                }
              },
              "required": [
                "location_id"
              ]
            }
          },
          "delete": {
            "type": "array",
            "description": "The inventory levels to delete.",
            "items": {
              "type": "string",
              "title": "delete",
              "description": "The ID of the inventory level to delete."
            }
          },
          "force": {
            "type": "boolean",
            "title": "force",
            "description": "Whether to delete specified inventory levels even if they have a non-zero stocked quantity."
          }
        },
        "x-schemaName": "AdminBatchInventoryItemLocationsLevel"
      },
      "AdminBatchInventoryItemsLocationLevels": {
        "type": "object",
        "description": "The inventory levels to manage.",
        "properties": {
          "create": {
            "type": "array",
            "description": "The inventory levels to create.",
            "items": {
              "$ref": "#/components/schemas/AdminBatchCreateInventoryItemsLocationLevels"
            }
          },
          "update": {
            "type": "array",
            "description": "The inventory levels to update.",
            "items": {
              "$ref": "#/components/schemas/AdminBatchUpdateInventoryItemsLocationLevels"
            }
          },
          "delete": {
            "type": "array",
            "description": "The IDs of the inventory levels to delete.",
            "items": {
              "type": "string",
              "title": "delete",
              "description": "The ID of the inventory level to delete."
            }
          },
          "force": {
            "type": "boolean",
            "title": "force",
            "description": "Whether to delete specified inventory levels even if they have a non-zero stocked quantity."
          }
        },
        "required": [
          "create",
          "update",
          "delete"
        ],
        "x-schemaName": "AdminBatchInventoryItemsLocationLevels"
      },
      "AdminBatchInventoryItemsLocationLevelsResponse": {
        "type": "object",
        "description": "The result of managing inventory levels.",
        "x-schemaName": "AdminBatchInventoryItemsLocationLevelsResponse",
        "properties": {
          "created": {
            "type": "array",
            "description": "The created inventory levels.",
            "items": {
              "$ref": "#/components/schemas/InventoryLevel"
            }
          },
          "updated": {
            "type": "array",
            "description": "The updated inventory levels.",
            "items": {
              "$ref": "#/components/schemas/InventoryLevel"
            }
          },
          "deleted": {
            "type": "array",
            "description": "The IDs of deleted inventory levels.",
            "items": {
              "type": "string",
              "title": "deleted",
              "description": "The ID of a deleted inventory level."
            }
          }
        }
      },
      "AdminBatchLink": {
        "type": "object",
        "description": "A batch operation to manage the associations between two entities.",
        "properties": {
          "add": {
            "type": "array",
            "description": "The IDs of an entity to add to the other.",
            "items": {
              "type": "string",
              "title": "add",
              "description": "The entity's ID."
            }
          },
          "remove": {
            "type": "array",
            "description": "The IDs of an entity to remove from the other.",
            "items": {
              "type": "string",
              "title": "remove",
              "description": "The entity's ID."
            }
          }
        },
        "x-schemaName": "AdminBatchLink"
      },
      "AdminBatchProductRequest": {
        "type": "object",
        "description": "The products to create, update, or delete.",
        "x-schemaName": "AdminBatchProductRequest",
        "properties": {
          "create": {
            "type": "array",
            "description": "The products to create.",
            "items": {
              "$ref": "#/components/schemas/AdminCreateProduct"
            }
          },
          "update": {
            "type": "array",
            "description": "The products to update.",
            "items": {
              "$ref": "#/components/schemas/AdminBatchUpdateProduct"
            }
          },
          "delete": {
            "type": "array",
            "description": "The products to delete.",
            "items": {
              "type": "string",
              "title": "delete",
              "description": "A product's ID."
            }
          }
        }
      },
      "AdminBatchProductResponse": {
        "type": "object",
        "description": "The details of the products created, updated, or deleted.",
        "x-schemaName": "AdminBatchProductResponse",
        "required": [
          "created",
          "updated",
          "deleted"
        ],
        "properties": {
          "created": {
            "type": "array",
            "description": "The created products",
            "items": {
              "$ref": "#/components/schemas/AdminProduct"
            }
          },
          "updated": {
            "type": "array",
            "description": "The updated products.",
            "items": {
              "$ref": "#/components/schemas/AdminProduct"
            }
          },
          "deleted": {
            "type": "object",
            "description": "The deleted products' details.",
            "required": [
              "ids",
              "object",
              "deleted"
            ],
            "properties": {
              "ids": {
                "type": "array",
                "description": "The IDs of deleted products.",
                "items": {
                  "type": "string",
                  "title": "ids",
                  "description": "The ID of a deleted product."
                }
              },
              "object": {
                "type": "string",
                "title": "object",
                "description": "The name of the deleted objects.",
                "default": "product"
              },
              "deleted": {
                "type": "boolean",
                "title": "deleted",
                "description": "Whether the products were deleted."
              }
            }
          }
        }
      },
      "AdminBatchProductVariantRequest": {
        "type": "object",
        "description": "The product variants to create, update, or delete.",
        "x-schemaName": "AdminBatchProductVariantRequest",
        "properties": {
          "create": {
            "type": "array",
            "description": "The product variants to create.",
            "items": {
              "$ref": "#/components/schemas/AdminCreateProductVariant"
            }
          },
          "update": {
            "type": "array",
            "description": "The product variants to update.",
            "items": {
              "$ref": "#/components/schemas/AdminBatchUpdateProductVariant"
            }
          },
          "delete": {
            "type": "array",
            "description": "The product variants to delete.",
            "items": {
              "type": "string",
              "title": "delete",
              "description": "A product variant's ID."
            }
          }
        }
      },
      "AdminBatchProductVariantResponse": {
        "type": "object",
        "description": "The details of the product variants created, updated, or deleted.",
        "x-schemaName": "AdminBatchProductVariantResponse",
        "required": [
          "created",
          "updated",
          "deleted"
        ],
        "properties": {
          "created": {
            "type": "array",
            "description": "The created product variants.",
            "items": {
              "$ref": "#/components/schemas/AdminProductVariant"
            }
          },
          "updated": {
            "type": "array",
            "description": "The updated product variants.",
            "items": {
              "$ref": "#/components/schemas/AdminProductVariant"
            }
          },
          "deleted": {
            "type": "object",
            "description": "The details of the deleted product variants.",
            "required": [
              "ids",
              "object",
              "deleted"
            ],
            "properties": {
              "ids": {
                "type": "array",
                "description": "The IDs of the deleted product variants.",
                "items": {
                  "type": "string",
                  "title": "ids",
                  "description": "The ID of a deleted variant."
                }
              },
              "object": {
                "type": "string",
                "title": "object",
                "description": "The name of the deleted objects.",
                "default": "variant"
              },
              "deleted": {
                "type": "boolean",
                "title": "deleted",
                "description": "Whether the product variants were deleted."
              }
            }
          }
        }
      },
      "AdminBatchTranslationSettings": {
        "type": "object",
        "description": "The translation settings to create, update, or delete in batch.",
        "x-schemaName": "AdminBatchTranslationSettings",
        "properties": {
          "create": {
            "type": "array",
            "description": "The translation settings to create.",
            "items": {
              "$ref": "#/components/schemas/AdminCreateTranslationSettings"
            }
          },
          "update": {
            "type": "array",
            "description": "The translation settings to update.",
            "items": {
              "$ref": "#/components/schemas/AdminUpdateTranslationSettings"
            }
          },
          "delete": {
            "type": "array",
            "description": "The translation settings to delete.",
            "items": {
              "type": "string",
              "title": "delete",
              "description": "The IDs of the translation settings to delete."
            }
          }
        }
      },
      "AdminBatchTranslationSettingsResponse": {
        "type": "object",
        "description": "The result of managing the translation settings in batch.",
        "x-schemaName": "AdminBatchTranslationSettingsResponse",
        "required": [
          "created",
          "updated",
          "deleted"
        ],
        "properties": {
          "created": {
            "type": "array",
            "description": "The created translation settings.",
            "items": {
              "$ref": "#/components/schemas/AdminTranslationSettings"
            }
          },
          "updated": {
            "type": "array",
            "description": "The updated translation settings.",
            "items": {
              "$ref": "#/components/schemas/AdminTranslationSettings"
            }
          },
          "deleted": {
            "type": "object",
            "description": "The deletion result.",
            "required": [
              "ids",
              "object",
              "deleted"
            ],
            "properties": {
              "ids": {
                "type": "array",
                "description": "The IDs of the deleted translation settings.",
                "items": {
                  "type": "string",
                  "title": "ids",
                  "description": "The ID of a deleted translation settings."
                }
              },
              "object": {
                "type": "string",
                "title": "object",
                "description": "The type of object deleted."
              },
              "deleted": {
                "type": "boolean",
                "title": "deleted",
                "description": "Whether the deletion was successful."
              }
            }
          }
        }
      },
      "AdminBatchUpdateInventoryItemsLocationLevels": {
        "type": "object",
        "description": "The details of an inventory level to update.",
        "required": [
          "location_id",
          "inventory_item_id"
        ],
        "properties": {
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the associated stock location."
          },
          "inventory_item_id": {
            "type": "string",
            "title": "inventory_item_id",
            "description": "The ID of the associated inventory item."
          },
          "stocked_quantity": {
            "type": "number",
            "title": "stocked_quantity",
            "description": "The stocked quantity."
          },
          "incoming_quantity": {
            "type": "number",
            "title": "incoming_quantity",
            "description": "The incoming quantity to be added to stock."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The update's ID."
          }
        },
        "x-schemaName": "AdminBatchUpdateInventoryItemsLocationLevels"
      },
      "AdminBatchUpdateProduct": {
        "type": "object",
        "description": "The product's details.",
        "x-schemaName": "AdminBatchUpdateProduct",
        "properties": {
          "title": {
            "type": "string",
            "title": "title",
            "description": "The product's title."
          },
          "subtitle": {
            "type": "string",
            "title": "subtitle",
            "description": "The product's subtitle."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The product's description."
          },
          "is_giftcard": {
            "type": "boolean",
            "title": "is_giftcard",
            "description": "Whether the product is a gift card."
          },
          "discountable": {
            "type": "boolean",
            "title": "discountable",
            "description": "Whether discounts can be applied on the product."
          },
          "images": {
            "type": "array",
            "description": "The product's images.",
            "items": {
              "type": "object",
              "description": "The image's details.",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "url",
                  "description": "The image's URL."
                },
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The image's ID."
                }
              }
            }
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The product's thumbnail URL."
          },
          "handle": {
            "type": "string",
            "title": "handle",
            "description": "The product's unique handle."
          },
          "status": {
            "type": "string",
            "description": "The product's status.",
            "enum": [
              "draft",
              "proposed",
              "published",
              "rejected"
            ]
          },
          "type_id": {
            "type": "string",
            "title": "type_id",
            "description": "The ID of the product's type."
          },
          "collection_id": {
            "type": "string",
            "title": "collection_id",
            "description": "The ID of the product's collection."
          },
          "categories": {
            "type": "array",
            "description": "The product's categories.",
            "items": {
              "type": "object",
              "description": "The product's category.",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The category's ID."
                }
              }
            }
          },
          "tags": {
            "type": "array",
            "description": "The product's tags.",
            "items": {
              "type": "object",
              "description": "The product's tag.",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The tag's ID."
                }
              }
            }
          },
          "options": {
            "type": "array",
            "description": "The product's options.",
            "items": {
              "$ref": "#/components/schemas/AdminUpdateProductOption"
            }
          },
          "variants": {
            "type": "array",
            "description": "The product's variants. You can add new variants or update existing ones, passing their IDs in the object.",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/AdminCreateProductVariant"
                },
                {
                  "$ref": "#/components/schemas/AdminUpdateProductVariant"
                }
              ]
            }
          },
          "sales_channels": {
            "type": "array",
            "description": "The sales channels that the product is available in.",
            "items": {
              "type": "object",
              "description": "The sales channel's details.",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The sales channel's ID."
                }
              }
            }
          },
          "weight": {
            "type": "number",
            "title": "weight",
            "description": "The product's weight."
          },
          "length": {
            "type": "number",
            "title": "length",
            "description": "The product's length."
          },
          "height": {
            "type": "number",
            "title": "height",
            "description": "The product's height."
          },
          "width": {
            "type": "number",
            "title": "width",
            "description": "The product's width."
          },
          "hs_code": {
            "type": "string",
            "title": "hs_code",
            "description": "The product's HS code."
          },
          "mid_code": {
            "type": "string",
            "title": "mid_code",
            "description": "The product's MID code."
          },
          "origin_country": {
            "type": "string",
            "title": "origin_country",
            "description": "The product's origin country."
          },
          "material": {
            "type": "string",
            "title": "material",
            "description": "The product's material."
          },
          "metadata": {
            "type": "object",
            "description": "The product's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "external_id": {
            "type": "string",
            "title": "external_id",
            "description": "The ID of the product in an external or third-party system."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The product's ID."
          },
          "shipping_profile_id": {
            "type": "string",
            "title": "shipping_profile_id",
            "description": "The ID of the product's shipping profile."
          }
        },
        "required": [
          "id"
        ]
      },
      "AdminBatchUpdateProductVariant": {
        "type": "object",
        "description": "The properties to update of a product variant.",
        "x-schemaName": "AdminBatchUpdateProductVariant",
        "properties": {
          "title": {
            "type": "string",
            "title": "title",
            "description": "The product variant's title."
          },
          "sku": {
            "type": "string",
            "title": "sku",
            "description": "The product variant's SKU."
          },
          "ean": {
            "type": "string",
            "title": "ean",
            "description": "The product variant's EAN."
          },
          "upc": {
            "type": "string",
            "title": "upc",
            "description": "The product variant's UPC."
          },
          "barcode": {
            "type": "string",
            "title": "barcode",
            "description": "The product variant's barcode."
          },
          "hs_code": {
            "type": "string",
            "title": "hs_code",
            "description": "The product variant's HS code."
          },
          "mid_code": {
            "type": "string",
            "title": "mid_code",
            "description": "The product variant's MID code."
          },
          "allow_backorder": {
            "type": "boolean",
            "title": "allow_backorder",
            "description": "Whether customers can order the variant even if it's not in stock."
          },
          "manage_inventory": {
            "type": "boolean",
            "title": "manage_inventory",
            "description": "Whether the Medusa application manages the variant's inventory. If disabled, the product variant is always considered in stock."
          },
          "variant_rank": {
            "type": "number",
            "title": "variant_rank",
            "description": "The product variant's rank among its siblings."
          },
          "weight": {
            "type": "number",
            "title": "weight",
            "description": "The product variant's weight."
          },
          "length": {
            "type": "number",
            "title": "length",
            "description": "The product variant's length."
          },
          "height": {
            "type": "number",
            "title": "height",
            "description": "The product variant's height."
          },
          "width": {
            "type": "number",
            "title": "width",
            "description": "The product variant's width."
          },
          "origin_country": {
            "type": "string",
            "title": "origin_country",
            "description": "The product variant's origin country."
          },
          "material": {
            "type": "string",
            "title": "material",
            "description": "The product variant's material."
          },
          "metadata": {
            "type": "object",
            "description": "The product variant's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "prices": {
            "type": "array",
            "description": "The product variant's prices.",
            "items": {
              "$ref": "#/components/schemas/AdminCreateProductVariantPrice"
            }
          },
          "options": {
            "type": "object",
            "description": "The product variant's options."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The update's ID."
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The variant's thumbnail."
          }
        },
        "required": [
          "id"
        ]
      },
      "AdminBatchVariantImagesRequest": {
        "type": "object",
        "description": "Details of the associations between images and a product variant to manage.",
        "x-schemaName": "AdminBatchVariantImagesRequest",
        "properties": {
          "add": {
            "type": "array",
            "description": "The IDs of product images to add to the variant.",
            "items": {
              "type": "string",
              "title": "add",
              "description": "The ID of the image to add."
            }
          },
          "remove": {
            "type": "array",
            "description": "The IDs of product images to remove from the variant.",
            "items": {
              "type": "string",
              "title": "remove",
              "description": "The ID of the image to remove."
            }
          }
        }
      },
      "AdminBatchVariantImagesResponse": {
        "type": "object",
        "description": "Result of managing the associations between images and a product variant.",
        "x-schemaName": "AdminBatchVariantImagesResponse",
        "required": [
          "added",
          "removed"
        ],
        "properties": {
          "added": {
            "type": "array",
            "description": "The IDs of product images added to the variant.",
            "items": {
              "type": "string",
              "title": "added",
              "description": "The ID of the image added."
            }
          },
          "removed": {
            "type": "array",
            "description": "The IDs of product images removed from the variant.",
            "items": {
              "type": "string",
              "title": "removed",
              "description": "The ID of the image removed."
            }
          }
        }
      },
      "AdminCampaign": {
        "type": "object",
        "description": "The campaign's details.",
        "x-schemaName": "AdminCampaign",
        "required": [
          "id",
          "name",
          "description",
          "currency",
          "campaign_identifier",
          "starts_at",
          "ends_at",
          "budget",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The campaign's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The campaign's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The campaign's description."
          },
          "currency": {
            "type": "string",
            "title": "currency",
            "description": "The campaign's currency."
          },
          "campaign_identifier": {
            "type": "string",
            "title": "campaign_identifier",
            "description": "The campaign's identifier."
          },
          "starts_at": {
            "type": "string",
            "title": "starts_at",
            "description": "The date and time that the campaign starts."
          },
          "ends_at": {
            "type": "string",
            "title": "ends_at",
            "description": "The date and time that the campaign ends."
          },
          "budget": {
            "type": "object",
            "description": "The campaign's budget.",
            "required": [
              "id",
              "type",
              "currency_code",
              "limit",
              "used",
              "attribute"
            ],
            "properties": {
              "id": {
                "type": "string",
                "title": "id",
                "description": "The budget's ID."
              },
              "type": {
                "type": "string",
                "description": "The budget's type. `spend` means the limit is set on the total amount discounted by the campaign's promotions; `usage` means the limit is set on the total number of times the campaign's promotions can be used.\n",
                "enum": [
                  "spend",
                  "usage"
                ]
              },
              "currency_code": {
                "type": "string",
                "title": "currency_code",
                "description": "The budget's currency code."
              },
              "limit": {
                "type": "number",
                "title": "limit",
                "description": "The budget's limit."
              },
              "used": {
                "type": "number",
                "title": "used",
                "description": "How much of the budget has been used. If the limit is `spend`, this property holds the total amount discounted so far. If the limit is `usage`, it holds the number of times the campaign's promotions have been used so far.\n"
              },
              "attribute": {
                "type": "string",
                "title": "attribute",
                "description": "The cart attribute to limit the budget by.",
                "externalDocs": {
                  "url": "https://docs.medusajs.com/resources/commerce-modules/promotion/campaign#attribute-based-budgets"
                }
              }
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the campaign was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the campaign was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the campaign was deleted."
          }
        }
      },
      "AdminCampaignResponse": {
        "type": "object",
        "description": "The campaign's details.",
        "x-schemaName": "AdminCampaignResponse",
        "required": [
          "campaign"
        ],
        "properties": {
          "campaign": {
            "$ref": "#/components/schemas/AdminCampaign"
          }
        }
      },
      "AdminCapturePayment": {
        "type": "object",
        "description": "The payment's details.",
        "properties": {
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The amount to capture."
          }
        },
        "x-schemaName": "AdminCapturePayment"
      },
      "AdminClaim": {
        "type": "object",
        "description": "The claim's details.",
        "x-schemaName": "AdminClaim",
        "required": [
          "order",
          "return",
          "id",
          "type",
          "order_id",
          "display_id",
          "order_version",
          "created_at",
          "updated_at",
          "canceled_at",
          "additional_items",
          "claim_items"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The claim's ID."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order associated with the claim."
          },
          "claim_items": {
            "type": "array",
            "description": "The order items targetted by the claim.",
            "items": {
              "$ref": "#/components/schemas/BaseClaimItem"
            }
          },
          "additional_items": {
            "type": "array",
            "description": "The outbound or new items of the claim.",
            "items": {
              "$ref": "#/components/schemas/BaseClaimItem"
            }
          },
          "return": {
            "$ref": "#/components/schemas/AdminReturn"
          },
          "return_id": {
            "type": "string",
            "title": "return_id",
            "description": "The ID of the associated return."
          },
          "no_notification": {
            "type": "boolean",
            "title": "no_notification",
            "description": "Whether the customer should be notified about changes in the claim."
          },
          "refund_amount": {
            "type": "number",
            "title": "refund_amount",
            "description": "The amount to be refunded."
          },
          "display_id": {
            "type": "number",
            "title": "display_id",
            "description": "The claim's display ID."
          },
          "shipping_methods": {
            "type": "array",
            "description": "The claim's shipping methods.",
            "items": {
              "$ref": "#/components/schemas/AdminOrderShippingMethod"
            }
          },
          "transactions": {
            "type": "array",
            "description": "The claim's transactions.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/order/transactions",
              "description": "Learn more about transactions of orders and associated models."
            },
            "items": {
              "$ref": "#/components/schemas/BaseOrderTransaction"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The claim's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The claim's creation date."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The claim's update date."
          },
          "order": {
            "$ref": "#/components/schemas/AdminOrder"
          },
          "type": {
            "type": "string",
            "description": "The claim's type.",
            "enum": [
              "replace",
              "refund"
            ]
          },
          "order_version": {
            "type": "string",
            "title": "order_version",
            "description": "The version of the order when the claim is applied."
          },
          "created_by": {
            "type": "string",
            "title": "created_by",
            "description": "The ID of the user that created the claim."
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date the claim was canceled.",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the claim was deleted."
          }
        }
      },
      "AdminClaimAddOutboundShipping": {
        "type": "object",
        "description": "The details of the shipping method used to ship outbound items.",
        "x-schemaName": "AdminClaimAddOutboundShipping",
        "required": [
          "shipping_option_id"
        ],
        "properties": {
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the associated shipping option."
          },
          "custom_amount": {
            "type": "number",
            "title": "custom_amount",
            "description": "Set a custom price for the shipping method."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The shipping method's description."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note only viewed by admin users."
          },
          "metadata": {
            "type": "object",
            "description": "The claim's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminClaimDeleteResponse": {
        "type": "object",
        "description": "The details of the deleted claim.",
        "x-schemaName": "AdminClaimDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The claim's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "claim"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the claim was deleted."
          }
        }
      },
      "AdminClaimListResponse": {
        "type": "object",
        "description": "The paginated list of claims.",
        "x-schemaName": "AdminClaimListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "claims"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items."
          },
          "claims": {
            "type": "array",
            "description": "The list of claims.",
            "items": {
              "$ref": "#/components/schemas/AdminClaim"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminClaimOrderResponse": {
        "type": "object",
        "description": "The created claim's details.",
        "x-schemaName": "AdminClaimOrderResponse",
        "required": [
          "order",
          "claim"
        ],
        "properties": {
          "order": {
            "$ref": "#/components/schemas/Order"
          },
          "claim": {
            "$ref": "#/components/schemas/AdminClaim"
          }
        }
      },
      "AdminClaimPreviewResponse": {
        "type": "object",
        "description": "The details of the claim, as well as a preview of the order when the claim is applied.",
        "x-schemaName": "AdminClaimPreviewResponse",
        "required": [
          "order_preview",
          "claim"
        ],
        "properties": {
          "order_preview": {
            "$ref": "#/components/schemas/AdminOrderPreview"
          },
          "claim": {
            "$ref": "#/components/schemas/AdminClaim"
          }
        }
      },
      "AdminClaimRequestResponse": {
        "type": "object",
        "description": "The details of the claim, its return, and a preview of the order when the claim is applied.",
        "x-schemaName": "AdminClaimRequestResponse",
        "required": [
          "return",
          "order_preview",
          "claim"
        ],
        "properties": {
          "return": {
            "$ref": "#/components/schemas/AdminReturn"
          },
          "order_preview": {
            "$ref": "#/components/schemas/AdminOrderPreview"
          },
          "claim": {
            "$ref": "#/components/schemas/AdminClaim"
          }
        }
      },
      "AdminClaimResponse": {
        "type": "object",
        "description": "The claim's details.",
        "x-schemaName": "AdminClaimResponse",
        "required": [
          "claim"
        ],
        "properties": {
          "claim": {
            "$ref": "#/components/schemas/AdminClaim"
          }
        }
      },
      "AdminClaimReturnPreviewResponse": {
        "type": "object",
        "description": "The details of the claim's return, with a preview of the order when the claim's return is applied.",
        "x-schemaName": "AdminClaimReturnPreviewResponse",
        "required": [
          "order_preview",
          "return"
        ],
        "properties": {
          "order_preview": {
            "$ref": "#/components/schemas/AdminOrderPreview"
          },
          "return": {
            "$ref": "#/components/schemas/AdminReturn"
          }
        }
      },
      "AdminClaimUpdateInboundShipping": {
        "type": "object",
        "description": "The details to update in the shipping method.",
        "x-schemaName": "AdminClaimUpdateInboundShipping",
        "properties": {
          "custom_amount": {
            "type": "number",
            "title": "custom_amount",
            "description": "The shipping method's custom amount."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note only viewed by admin users."
          },
          "metadata": {
            "type": "object",
            "description": "The claim's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminClaimUpdateOutboundShipping": {
        "type": "object",
        "description": "The details to update in the shipping method.",
        "x-schemaName": "AdminClaimUpdateOutboundShipping",
        "properties": {
          "custom_amount": {
            "type": "number",
            "title": "custom_amount",
            "description": "The shipping method's custom amount."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note only viewed by admin users."
          },
          "metadata": {
            "type": "object",
            "description": "The claim's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCollection": {
        "type": "object",
        "description": "The product collection's details.",
        "x-schemaName": "AdminCollection",
        "required": [
          "id",
          "title",
          "handle",
          "created_at",
          "updated_at",
          "deleted_at",
          "metadata"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The collection's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The collection's title."
          },
          "handle": {
            "type": "string",
            "title": "handle",
            "description": "The collection's handle."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The collection's creation date."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The collection's update date."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The collection's deletion date."
          },
          "products": {
            "type": "array",
            "description": "The collection's products.",
            "items": {
              "$ref": "#/components/schemas/BaseProduct"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The collection's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "translations": {
            "type": "array",
            "description": "The collection's translations.",
            "items": {
              "$ref": "#/components/schemas/AdminTranslation"
            }
          }
        }
      },
      "AdminCollectionDeleteResponse": {
        "type": "object",
        "description": "The details of the deleted collection.",
        "x-schemaName": "AdminCollectionDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The collection's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "collection"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the collection was deleted."
          }
        }
      },
      "AdminCollectionListResponse": {
        "type": "object",
        "description": "The paginated list of product collections.",
        "x-schemaName": "AdminCollectionListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "collections"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned results."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items."
          },
          "collections": {
            "type": "array",
            "description": "The list of product collections.",
            "items": {
              "$ref": "#/components/schemas/AdminCollection"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminCollectionResponse": {
        "type": "object",
        "description": "The collection's details.",
        "x-schemaName": "AdminCollectionResponse",
        "required": [
          "collection"
        ],
        "properties": {
          "collection": {
            "$ref": "#/components/schemas/AdminCollection"
          }
        }
      },
      "AdminColumn": {
        "type": "object",
        "description": "The details of a column in a view configuration.",
        "x-schemaName": "AdminColumn",
        "required": [
          "id",
          "name",
          "field",
          "sortable",
          "hideable",
          "default_visible",
          "data_type"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The column's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The column's name. This is displayed in the view header."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The column's description."
          },
          "field": {
            "type": "string",
            "title": "field",
            "description": "The column's field in the entity."
          },
          "sortable": {
            "type": "boolean",
            "title": "sortable",
            "description": "Whether the column is sortable."
          },
          "hideable": {
            "type": "boolean",
            "title": "hideable",
            "description": "Whether the column is hideable."
          },
          "default_visible": {
            "type": "boolean",
            "title": "default_visible",
            "description": "Whether the column is visible by default."
          },
          "data_type": {
            "type": "string",
            "description": "The data type of the column's value.",
            "enum": [
              "string",
              "number",
              "boolean",
              "object",
              "date",
              "currency",
              "enum"
            ]
          },
          "semantic_type": {
            "type": "string",
            "title": "semantic_type",
            "description": "The column's semantic type. It can be `computed`, or other primitive types."
          },
          "context": {
            "type": "string",
            "title": "context",
            "description": "The column's context. It can be `display` or `generic`."
          },
          "computed": {
            "type": "object",
            "description": "A computed column's details. Only available if the column's `semantic_type` is `computed`.",
            "required": [
              "type",
              "required_fields",
              "optional_fields"
            ],
            "properties": {
              "type": {
                "type": "string",
                "title": "type",
                "description": "The computed's type for rendering."
              },
              "required_fields": {
                "type": "array",
                "description": "The required fields in the computed column.",
                "items": {
                  "type": "string",
                  "title": "required_fields",
                  "description": "A required field in the computed column."
                }
              },
              "optional_fields": {
                "type": "array",
                "description": "The optional fields in the computed column.",
                "items": {
                  "type": "string",
                  "title": "optional_fields",
                  "description": "An optional field in the computed column."
                }
              }
            }
          },
          "relationship": {
            "type": "object",
            "description": "The relationship details. Only available for relationship columns.",
            "required": [
              "entity",
              "field"
            ],
            "properties": {
              "entity": {
                "type": "string",
                "title": "entity",
                "description": "The related entity."
              },
              "field": {
                "type": "string",
                "title": "field",
                "description": "The field in the related entity."
              }
            }
          },
          "default_order": {
            "type": "number",
            "title": "default_order",
            "description": "The column's sort order in the default view configuration."
          },
          "category": {
            "type": "string",
            "description": "The column's category.",
            "enum": [
              "status",
              "metadata",
              "identifier",
              "timestamp",
              "metric",
              "relationship"
            ]
          }
        }
      },
      "AdminConfirmReceiveReturn": {
        "type": "object",
        "description": "The confirmation's details.",
        "x-schemaName": "AdminConfirmReceiveReturn",
        "properties": {
          "no_notification": {
            "type": "boolean",
            "title": "no_notification",
            "description": "Whether to send the customer a notification about the confirmation."
          }
        }
      },
      "AdminConfirmReturnRequest": {
        "type": "object",
        "description": "The confirmation's details.",
        "x-schemaName": "AdminConfirmReturnRequest",
        "properties": {
          "no_notification": {
            "type": "boolean",
            "title": "no_notification",
            "description": "Whether to send the customer a notification about the confirmation."
          }
        }
      },
      "AdminCreateApiKey": {
        "type": "object",
        "description": "The API key's details.",
        "x-schemaName": "AdminCreateApiKey",
        "required": [
          "title",
          "type"
        ],
        "properties": {
          "title": {
            "type": "string",
            "title": "title",
            "description": "The API key's title."
          },
          "type": {
            "type": "string",
            "description": "The API key's type. Use `secret` for a user's API key; Use `publishable` for Publishable API keys.",
            "enum": [
              "publishable",
              "secret"
            ]
          }
        }
      },
      "AdminCreateCalculatedShippingOption": {
        "type": "object",
        "description": "The calculated shipping option's details.",
        "x-schemaName": "AdminCreateCalculatedShippingOption",
        "required": [
          "price_type",
          "name",
          "service_zone_id",
          "shipping_profile_id",
          "provider_id"
        ],
        "properties": {
          "price_type": {
            "type": "string",
            "title": "price_type",
            "description": "The calculated shipping option's price type.",
            "enum": [
              "calculated",
              "flat"
            ]
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The calculated shipping option's name."
          },
          "service_zone_id": {
            "type": "string",
            "title": "service_zone_id",
            "description": "The ID of the associated service zone."
          },
          "shipping_profile_id": {
            "type": "string",
            "title": "shipping_profile_id",
            "description": "The ID of the associated shipping profile."
          },
          "data": {
            "type": "object",
            "description": "The calculated shipping option's data.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property"
            }
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the fulfillment provider handling this calculated shipping option."
          },
          "type": {
            "$ref": "#/components/schemas/AdminCreateShippingOptionType"
          },
          "type_id": {
            "type": "string",
            "title": "type_id",
            "description": "The ID of the shipping option type that this shipping option belongs to."
          },
          "rules": {
            "type": "array",
            "description": "The calculated shipping option's rules.",
            "items": {
              "$ref": "#/components/schemas/AdminCreateShippingOptionRule"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The shipping option's metadata, can hold custom key-value pairs."
          }
        }
      },
      "AdminCreateClaim": {
        "type": "object",
        "description": "The claim's details.",
        "x-schemaName": "AdminCreateClaim",
        "required": [
          "type",
          "order_id"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The claim's type.",
            "enum": [
              "refund",
              "replace"
            ]
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order the claim is created for."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The claim's description."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          },
          "reason_id": {
            "type": "string",
            "title": "reason_id",
            "description": "The ID of the associated return reason."
          },
          "metadata": {
            "type": "object",
            "description": "The claim's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreateCustomerGroup": {
        "type": "object",
        "description": "The customer group's details.",
        "x-schemaName": "AdminCreateCustomerGroup",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The customer group's name."
          },
          "metadata": {
            "type": "object",
            "description": "The customer group's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreateExchange": {
        "type": "object",
        "description": "The exchange's details.",
        "x-schemaName": "AdminCreateExchange",
        "required": [
          "order_id"
        ],
        "properties": {
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order this exchange is created for."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The exchange's description."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          },
          "metadata": {
            "type": "object",
            "description": "The exchange's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreateFlatRateShippingOption": {
        "type": "object",
        "description": "The flat rate shipping option's details.",
        "x-schemaName": "AdminCreateFlatRateShippingOption",
        "required": [
          "price_type",
          "prices",
          "name",
          "service_zone_id",
          "shipping_profile_id",
          "provider_id"
        ],
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The flat-rate shipping option's name."
          },
          "service_zone_id": {
            "type": "string",
            "title": "service_zone_id",
            "description": "The ID of the associated service zone."
          },
          "shipping_profile_id": {
            "type": "string",
            "title": "shipping_profile_id",
            "description": "The ID of the associated shipping profile."
          },
          "data": {
            "type": "object",
            "description": "The flat-rate shipping option's data, useful for the fulfillment provider handling its processing.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property"
            }
          },
          "price_type": {
            "type": "string",
            "description": "The shipping option's price type. If `flat`, the shipping option has a fixed price set in `prices`. Otherwise, the shipping option's price is calculated by the fulfillment provider.",
            "enum": [
              "flat",
              "calculated"
            ]
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the fulfillment provider handling this shipping option."
          },
          "type": {
            "$ref": "#/components/schemas/AdminCreateShippingOptionType"
          },
          "prices": {
            "type": "array",
            "description": "The shipping option's prices.",
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "description": "The price's details.",
                  "x-schemaName": "AdminCreateShippingOptionPriceWithCurrency",
                  "required": [
                    "currency_code",
                    "amount"
                  ],
                  "properties": {
                    "currency_code": {
                      "type": "string",
                      "title": "currency_code",
                      "description": "The price's currency code.",
                      "example": "usd"
                    },
                    "amount": {
                      "type": "number",
                      "title": "amount",
                      "description": "The price's amount."
                    },
                    "rules": {
                      "type": "array",
                      "description": "The price's rules.",
                      "items": {
                        "type": "object",
                        "description": "The rule's details.",
                        "x-schemaName": "PriceRule",
                        "required": [
                          "attribute",
                          "operator",
                          "value"
                        ],
                        "properties": {
                          "attribute": {
                            "type": "string",
                            "title": "attribute",
                            "description": "The rule's attribute."
                          },
                          "operator": {
                            "type": "string",
                            "description": "The rule's operator.",
                            "enum": [
                              "gt",
                              "lt",
                              "eq",
                              "lte",
                              "gte"
                            ]
                          },
                          "value": {
                            "type": "number",
                            "title": "value",
                            "description": "The rule's value."
                          }
                        }
                      }
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "The price's details.",
                  "x-schemaName": "AdminCreateShippingOptionPriceWithRegion",
                  "required": [
                    "region_id",
                    "amount"
                  ],
                  "properties": {
                    "region_id": {
                      "type": "string",
                      "title": "region_id",
                      "description": "The ID of the region this price is used in."
                    },
                    "amount": {
                      "type": "number",
                      "title": "amount",
                      "description": "The price's amount."
                    },
                    "rules": {
                      "type": "array",
                      "description": "The price's rules.",
                      "items": {
                        "type": "object",
                        "description": "The rule's details.",
                        "x-schemaName": "PriceRule",
                        "required": [
                          "attribute",
                          "operator",
                          "value"
                        ],
                        "properties": {
                          "attribute": {
                            "type": "string",
                            "title": "attribute",
                            "description": "The rule's attribute."
                          },
                          "operator": {
                            "type": "string",
                            "description": "The rule's operator.",
                            "enum": [
                              "gt",
                              "lt",
                              "eq",
                              "lte",
                              "gte"
                            ]
                          },
                          "value": {
                            "type": "number",
                            "title": "value",
                            "description": "The rule's value."
                          }
                        }
                      }
                    }
                  }
                }
              ]
            }
          },
          "type_id": {
            "type": "string",
            "title": "type_id",
            "description": "The ID of the shipping option type that this shipping option belongs to."
          },
          "rules": {
            "type": "array",
            "description": "The shipping option's rules.",
            "items": {
              "$ref": "#/components/schemas/AdminCreateShippingOptionRule"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The shipping option's metadata."
          }
        }
      },
      "AdminCreateFulfillment": {
        "type": "object",
        "description": "The filfillment's details.",
        "x-schemaName": "AdminCreateFulfillment",
        "required": [
          "location_id",
          "provider_id",
          "delivery_address",
          "items",
          "labels",
          "order_id"
        ],
        "properties": {
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the location the items are fulfilled from."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the provider handling this fulfillment."
          },
          "delivery_address": {
            "$ref": "#/components/schemas/AdminFulfillmentDeliveryAddress"
          },
          "items": {
            "type": "array",
            "description": "The items to fulfill.",
            "items": {
              "$ref": "#/components/schemas/AdminCreateFulfillmentItem"
            }
          },
          "labels": {
            "type": "array",
            "description": "The labels for the fulfillment's shipments.",
            "items": {
              "$ref": "#/components/schemas/AdminCreateFulfillmentLabel"
            }
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order this fulfillment is created for."
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the shipping option used in the order."
          },
          "data": {
            "type": "object",
            "description": "Any data useful for the fulfillment provider to handle the fulfillment.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property",
              "description": "Learn more about the data property."
            }
          },
          "packed_at": {
            "type": "string",
            "title": "packed_at",
            "description": "The date and time the fulfillment was packed.",
            "format": "date-time"
          },
          "shipped_at": {
            "type": "string",
            "title": "shipped_at",
            "description": "The date and time the fulfillment was shipped.",
            "format": "date-time"
          },
          "delivered_at": {
            "type": "string",
            "title": "delivered_at",
            "description": "The date and time the fulfillment was delivered.",
            "format": "date-time"
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date and time the fulfillment was canceled.",
            "format": "date-time"
          },
          "metadata": {
            "type": "object",
            "description": "The fulfillment's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreateFulfillmentItem": {
        "type": "object",
        "description": "An item to fulfill.",
        "required": [
          "title",
          "sku",
          "quantity",
          "barcode"
        ],
        "properties": {
          "title": {
            "type": "string",
            "title": "title",
            "description": "The item's title."
          },
          "sku": {
            "type": "string",
            "title": "sku",
            "description": "The item's SKU."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The quantity to fulfill of the item."
          },
          "barcode": {
            "type": "string",
            "title": "barcode",
            "description": "The item's barcode."
          },
          "line_item_id": {
            "type": "string",
            "title": "line_item_id",
            "description": "The ID of the associated line item."
          },
          "inventory_item_id": {
            "type": "string",
            "title": "inventory_item_id",
            "description": "The ID of the inventory item associated with the underlying variant."
          }
        },
        "x-schemaName": "AdminCreateFulfillmentItem"
      },
      "AdminCreateFulfillmentLabel": {
        "type": "object",
        "description": "Details of the fulfillment label to create.",
        "required": [
          "tracking_number",
          "tracking_url",
          "label_url"
        ],
        "properties": {
          "tracking_number": {
            "type": "string",
            "title": "tracking_number",
            "description": "The label's tracking number."
          },
          "tracking_url": {
            "type": "string",
            "title": "tracking_url",
            "description": "The label's tracking URL."
          },
          "label_url": {
            "type": "string",
            "title": "label_url",
            "description": "The label's URL."
          }
        },
        "x-schemaName": "AdminCreateFulfillmentLabel"
      },
      "AdminCreateFulfillmentSetServiceZone": {
        "type": "object",
        "description": "Details of the service zone to create for the fulfillment set.",
        "required": [
          "name",
          "geo_zones"
        ],
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The service zone's name."
          },
          "geo_zones": {
            "type": "array",
            "description": "The service zone's geo zones.",
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "description": "A country geo zone.",
                  "required": [
                    "metadata",
                    "country_code",
                    "type"
                  ],
                  "properties": {
                    "metadata": {
                      "type": "object",
                      "description": "The geo zone's metadata.",
                      "externalDocs": {
                        "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                        "description": "Learn how to manage metadata"
                      }
                    },
                    "country_code": {
                      "type": "string",
                      "title": "country_code",
                      "description": "The geo zone's country code."
                    },
                    "type": {
                      "type": "string",
                      "title": "type",
                      "description": "The geo zone's type.",
                      "default": "country"
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "A province geo zone.",
                  "required": [
                    "metadata",
                    "country_code",
                    "type",
                    "province_code"
                  ],
                  "properties": {
                    "metadata": {
                      "type": "object",
                      "description": "The geo zone's metadata.",
                      "externalDocs": {
                        "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                        "description": "Learn how to manage metadata"
                      }
                    },
                    "country_code": {
                      "type": "string",
                      "title": "country_code",
                      "description": "The geo zone's country code."
                    },
                    "type": {
                      "type": "string",
                      "title": "type",
                      "description": "The geo zone's type.",
                      "default": "province"
                    },
                    "province_code": {
                      "type": "string",
                      "title": "province_code",
                      "description": "The geo zone's ISO 3166-2 province code. Must be lower-case.",
                      "example": "us-ca",
                      "externalDocs": {
                        "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                        "description": "Learn more about ISO 3166-2"
                      }
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "A city geo zone",
                  "required": [
                    "metadata",
                    "country_code",
                    "type",
                    "province_code",
                    "city"
                  ],
                  "properties": {
                    "metadata": {
                      "type": "object",
                      "description": "The geo zone's metadata.",
                      "externalDocs": {
                        "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                        "description": "Learn how to manage metadata"
                      }
                    },
                    "country_code": {
                      "type": "string",
                      "title": "country_code",
                      "description": "The geo zone's country code."
                    },
                    "type": {
                      "type": "string",
                      "title": "type",
                      "description": "The geo zone's type.",
                      "default": "city"
                    },
                    "province_code": {
                      "type": "string",
                      "title": "province_code",
                      "description": "The geo zone's ISO 3166-2 province code. Must be lower-case.",
                      "example": "us-ca",
                      "externalDocs": {
                        "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                        "description": "Learn more about ISO 3166-2"
                      }
                    },
                    "city": {
                      "type": "string",
                      "title": "city",
                      "description": "The geo zone's city."
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "A ZIP geo zone.",
                  "required": [
                    "metadata",
                    "country_code",
                    "type",
                    "province_code",
                    "city",
                    "postal_expression"
                  ],
                  "properties": {
                    "metadata": {
                      "type": "object",
                      "description": "The geo zone's metadata.",
                      "externalDocs": {
                        "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                        "description": "Learn how to manage metadata"
                      }
                    },
                    "country_code": {
                      "type": "string",
                      "title": "country_code",
                      "description": "The geo zone's country code."
                    },
                    "type": {
                      "type": "string",
                      "title": "type",
                      "description": "The geo zone's type.",
                      "default": "zip"
                    },
                    "province_code": {
                      "type": "string",
                      "title": "province_code",
                      "description": "The geo zone's ISO 3166-2 province code. Must be lower-case.",
                      "example": "us-ca",
                      "externalDocs": {
                        "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                        "description": "Learn more about ISO 3166-2"
                      }
                    },
                    "city": {
                      "type": "string",
                      "title": "city",
                      "description": "The geo zone's city."
                    },
                    "postal_expression": {
                      "type": "object",
                      "description": "The geo zone's postal expression or ZIP code."
                    }
                  }
                }
              ]
            }
          }
        },
        "x-schemaName": "AdminCreateFulfillmentSetServiceZone"
      },
      "AdminCreateFulfillmentShipment": {
        "type": "object",
        "description": "Details of the shipment to create for a fulfillment.",
        "x-schemaName": "AdminCreateFulfillmentShipment",
        "required": [
          "labels"
        ],
        "properties": {
          "labels": {
            "type": "array",
            "description": "The shipment's labels.",
            "items": {
              "$ref": "#/components/schemas/AdminCreateFulfillmentLabel"
            }
          }
        }
      },
      "AdminCreateGiftCardParams": {
        "type": "object",
        "description": "The details of the gift card to create.",
        "x-schemaName": "AdminCreateGiftCardParams",
        "required": [
          "code",
          "value",
          "currency_code",
          "expires_at",
          "reference_id",
          "reference",
          "line_item_id",
          "customer_id",
          "metadata"
        ],
        "properties": {
          "code": {
            "type": "string",
            "title": "code",
            "description": "The gift card's code."
          },
          "value": {
            "type": "number",
            "title": "value",
            "description": "The gift card's amount.",
            "example": 20
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The gift card's currency code.",
            "example": "usd"
          },
          "expires_at": {
            "type": "string",
            "title": "expires_at",
            "description": "The date the gift card expires at."
          },
          "reference_id": {
            "type": "string",
            "title": "reference_id",
            "description": "The gift card's reference ID."
          },
          "reference": {
            "type": "string",
            "title": "reference",
            "description": "The gift card's reference."
          },
          "line_item_id": {
            "type": "string",
            "title": "line_item_id",
            "description": "The ID of the line item associated with the gift card."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer associated with the gift card."
          },
          "metadata": {
            "type": "object",
            "description": "The gift card's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreateInventoryItem": {
        "type": "object",
        "description": "The inventory item's details.",
        "x-schemaName": "AdminCreateInventoryItem",
        "properties": {
          "sku": {
            "type": "string",
            "title": "sku",
            "description": "The inventory item's SKU."
          },
          "hs_code": {
            "type": "string",
            "title": "hs_code",
            "description": "The inventory item's HS code."
          },
          "weight": {
            "type": "number",
            "title": "weight",
            "description": "The inventory item's weight."
          },
          "length": {
            "type": "number",
            "title": "length",
            "description": "The inventory item's length."
          },
          "height": {
            "type": "number",
            "title": "height",
            "description": "The inventory item's height."
          },
          "width": {
            "type": "number",
            "title": "width",
            "description": "The inventory item's width."
          },
          "origin_country": {
            "type": "string",
            "title": "origin_country",
            "description": "The inventory item's origin country."
          },
          "mid_code": {
            "type": "string",
            "title": "mid_code",
            "description": "The inventory item's mid code."
          },
          "material": {
            "type": "string",
            "title": "material",
            "description": "The inventory item's material."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The inventory item's title."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The description of the variant associated with the inventory item."
          },
          "requires_shipping": {
            "type": "boolean",
            "title": "requires_shipping",
            "description": "Whether the item requires shipping."
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The inventory item's thumbnail."
          },
          "metadata": {
            "type": "object",
            "description": "The inventory item's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreateOrderCreditLine": {
        "type": "object",
        "description": "The details of a credit line to add to an order.",
        "x-schemaName": "AdminCreateOrderCreditLine",
        "required": [
          "amount",
          "reference",
          "reference_id"
        ],
        "properties": {
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The amount of the credit line.",
            "example": 100
          },
          "reference": {
            "type": "string",
            "title": "reference",
            "description": "The name of the table that the credit line is referencing.",
            "example": "order"
          },
          "reference_id": {
            "type": "string",
            "title": "reference_id",
            "description": "The ID of a record in the table that the credit line is referencing.",
            "example": "order_123"
          },
          "metadata": {
            "type": "object",
            "description": "The credit line's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreatePaymentCollection": {
        "type": "object",
        "description": "The payment collection's details.",
        "required": [
          "order_id",
          "amount"
        ],
        "properties": {
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the associated order."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The amount to be paid."
          }
        },
        "x-schemaName": "AdminCreatePaymentCollection"
      },
      "AdminCreatePriceList": {
        "type": "object",
        "description": "The price list's details.",
        "x-schemaName": "AdminCreatePriceList",
        "required": [
          "title",
          "description"
        ],
        "properties": {
          "title": {
            "type": "string",
            "title": "title",
            "description": "The price list's title."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The price list's description."
          },
          "starts_at": {
            "type": "string",
            "title": "starts_at",
            "description": "The date and time the price list starts at.",
            "format": "date-time"
          },
          "ends_at": {
            "type": "string",
            "title": "ends_at",
            "description": "The date and time the price list ends at.",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "description": "The price list's status.",
            "enum": [
              "active",
              "draft"
            ]
          },
          "type": {
            "type": "string",
            "description": "The price list's type.",
            "enum": [
              "sale",
              "override"
            ]
          },
          "rules": {
            "type": "object",
            "description": "The price list's rules.",
            "example": {
              "product_category_id": "pcat_123"
            }
          },
          "prices": {
            "type": "array",
            "description": "The price list's prices.",
            "items": {
              "$ref": "#/components/schemas/AdminCreatePriceListPrice"
            }
          }
        }
      },
      "AdminCreatePriceListPrice": {
        "type": "object",
        "description": "The details of a price to be created within a price list.",
        "required": [
          "currency_code",
          "amount",
          "variant_id"
        ],
        "properties": {
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The price's currency code."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The price's amount."
          },
          "variant_id": {
            "type": "string",
            "title": "variant_id",
            "description": "The ID of the product variant this price is for."
          },
          "min_quantity": {
            "type": "number",
            "title": "min_quantity",
            "description": "The minimum quantity required in the cart for this price to be applied."
          },
          "max_quantity": {
            "type": "number",
            "title": "max_quantity",
            "description": "The maximum quantity in the cart that shouldn't be crossed for this price to be applied."
          },
          "rules": {
            "type": "object",
            "description": "The price's rules.",
            "example": {
              "region_id": "reg_123"
            }
          }
        },
        "x-schemaName": "AdminCreatePriceListPrice"
      },
      "AdminCreatePricePreference": {
        "type": "object",
        "description": "The price preference's details.",
        "x-schemaName": "AdminCreatePricePreference",
        "properties": {
          "attribute": {
            "type": "string",
            "title": "attribute",
            "description": "The name of the attribute the price preference applies on.",
            "example": "currency_code"
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The attribute's value.",
            "example": "usd"
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the price is tax inclusive if the value of the specified attribute matches the specified value."
          }
        }
      },
      "AdminCreateProduct": {
        "type": "object",
        "description": "The product's details.",
        "x-schemaName": "AdminCreateProduct",
        "required": [
          "title",
          "options"
        ],
        "properties": {
          "title": {
            "type": "string",
            "title": "title",
            "description": "The product's title."
          },
          "subtitle": {
            "type": "string",
            "title": "subtitle",
            "description": "The product's subtitle."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The product's description."
          },
          "is_giftcard": {
            "type": "boolean",
            "title": "is_giftcard",
            "description": "Whether the product is a gift card."
          },
          "discountable": {
            "type": "boolean",
            "title": "discountable",
            "description": "Whether the product is discountable."
          },
          "images": {
            "type": "array",
            "description": "The product's images.",
            "items": {
              "type": "object",
              "description": "A product's image details.",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "url",
                  "description": "The image's URL."
                }
              }
            }
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The URL of the product's thumbnail."
          },
          "handle": {
            "type": "string",
            "title": "handle",
            "description": "The product's handle."
          },
          "status": {
            "type": "string",
            "description": "The product's status.",
            "enum": [
              "draft",
              "proposed",
              "published",
              "rejected"
            ]
          },
          "type_id": {
            "type": "string",
            "title": "type_id",
            "description": "The ID of the type the product belongs to."
          },
          "collection_id": {
            "type": "string",
            "title": "collection_id",
            "description": "The ID of the collection the product belongs to."
          },
          "categories": {
            "type": "array",
            "description": "The categories the product belongs to.",
            "items": {
              "type": "object",
              "description": "A category's details.",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The category's ID."
                }
              }
            }
          },
          "tags": {
            "type": "array",
            "description": "The product's tags.",
            "items": {
              "type": "object",
              "description": "A tag's details.",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The tag's ID."
                }
              }
            }
          },
          "options": {
            "type": "array",
            "description": "The product's options.",
            "items": {
              "$ref": "#/components/schemas/AdminCreateProductOption"
            }
          },
          "variants": {
            "type": "array",
            "description": "The product's variants.",
            "items": {
              "$ref": "#/components/schemas/AdminCreateProductVariant"
            }
          },
          "sales_channels": {
            "type": "array",
            "description": "The sales channels the product is available in.",
            "items": {
              "type": "object",
              "description": "A sales channel's details.",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The sales channel's ID."
                }
              }
            }
          },
          "weight": {
            "type": "number",
            "title": "weight",
            "description": "The product's weight."
          },
          "length": {
            "type": "number",
            "title": "length",
            "description": "The product's length."
          },
          "height": {
            "type": "number",
            "title": "height",
            "description": "The product's height."
          },
          "width": {
            "type": "number",
            "title": "width",
            "description": "The product's width."
          },
          "hs_code": {
            "type": "string",
            "title": "hs_code",
            "description": "The product's HS code."
          },
          "mid_code": {
            "type": "string",
            "title": "mid_code",
            "description": "The product's MID code."
          },
          "origin_country": {
            "type": "string",
            "title": "origin_country",
            "description": "The product's origin country."
          },
          "material": {
            "type": "string",
            "title": "material",
            "description": "The product's material."
          },
          "metadata": {
            "type": "object",
            "description": "The product's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "external_id": {
            "type": "string",
            "title": "external_id",
            "description": "The ID of the product in an external or third-party system."
          },
          "shipping_profile_id": {
            "type": "string",
            "title": "shipping_profile_id",
            "description": "The ID of the product's shipping profile."
          }
        }
      },
      "AdminCreateProductCategory": {
        "type": "object",
        "description": "The product category's details.",
        "x-schemaName": "AdminCreateProductCategory",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The product category's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The product category's description."
          },
          "handle": {
            "type": "string",
            "title": "handle",
            "description": "The product category's handle."
          },
          "is_internal": {
            "type": "boolean",
            "title": "is_internal",
            "description": "Whether the product category is only used and seen by admin users."
          },
          "is_active": {
            "type": "boolean",
            "title": "is_active",
            "description": "Whether the product category is active."
          },
          "parent_category_id": {
            "type": "string",
            "title": "parent_category_id",
            "description": "The ID of a category that's the parent of this one."
          },
          "rank": {
            "type": "number",
            "title": "rank",
            "description": "The sorting order of the product category among sibling categories."
          },
          "metadata": {
            "type": "object",
            "description": "The product category's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreateProductOption": {
        "type": "object",
        "description": "The product option's details.",
        "x-schemaName": "AdminCreateProductOption",
        "required": [
          "title",
          "values"
        ],
        "properties": {
          "title": {
            "type": "string",
            "title": "title",
            "description": "The product option's title."
          },
          "values": {
            "type": "array",
            "description": "The product option's values.",
            "items": {
              "type": "string",
              "title": "values",
              "description": "A value."
            }
          }
        }
      },
      "AdminCreateProductTag": {
        "type": "object",
        "description": "The product tag's details.",
        "x-schemaName": "AdminCreateProductTag",
        "required": [
          "value"
        ],
        "properties": {
          "value": {
            "type": "string",
            "title": "value",
            "description": "The product tag's value."
          },
          "metadata": {
            "type": "object",
            "description": "The product tag's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreateProductType": {
        "type": "object",
        "description": "The details of the product type to create.",
        "x-schemaName": "AdminCreateProductType",
        "required": [
          "value"
        ],
        "properties": {
          "metadata": {
            "type": "object",
            "description": "The product's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The product type's value."
          }
        }
      },
      "AdminCreateProductVariant": {
        "type": "object",
        "description": "The product variant's details.",
        "x-schemaName": "AdminCreateProductVariant",
        "required": [
          "title",
          "prices"
        ],
        "properties": {
          "title": {
            "type": "string",
            "title": "title",
            "description": "The variant's title."
          },
          "sku": {
            "type": "string",
            "title": "sku",
            "description": "The variant's SKU."
          },
          "ean": {
            "type": "string",
            "title": "ean",
            "description": "The variant's EAN."
          },
          "upc": {
            "type": "string",
            "title": "upc",
            "description": "The variant's UPC."
          },
          "barcode": {
            "type": "string",
            "title": "barcode",
            "description": "The variant's barcode."
          },
          "hs_code": {
            "type": "string",
            "title": "hs_code",
            "description": "The variant's HS code."
          },
          "mid_code": {
            "type": "string",
            "title": "mid_code",
            "description": "The variant's MID code."
          },
          "allow_backorder": {
            "type": "boolean",
            "title": "allow_backorder",
            "description": "Whether it's allowed to order this variant when it's out of stock."
          },
          "manage_inventory": {
            "type": "boolean",
            "title": "manage_inventory",
            "description": "Whether Medusa manages the variant's inventory quantity. If disabled, the product variant is always considered in stock."
          },
          "variant_rank": {
            "type": "number",
            "title": "variant_rank",
            "description": "The sorting order of the variant among other variants in the product."
          },
          "weight": {
            "type": "number",
            "title": "weight",
            "description": "The variant's weight."
          },
          "length": {
            "type": "number",
            "title": "length",
            "description": "The variant's length."
          },
          "height": {
            "type": "number",
            "title": "height",
            "description": "The variant's height."
          },
          "width": {
            "type": "number",
            "title": "width",
            "description": "The variant's width."
          },
          "origin_country": {
            "type": "string",
            "title": "origin_country",
            "description": "The variant's origin country."
          },
          "material": {
            "type": "string",
            "title": "material",
            "description": "The variant's material."
          },
          "metadata": {
            "type": "object",
            "description": "The variant's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "prices": {
            "type": "array",
            "description": "The variant's prices.",
            "items": {
              "$ref": "#/components/schemas/AdminCreateProductVariantPrice"
            }
          },
          "options": {
            "type": "object",
            "description": "The variant's options, where the key is an option's name, and the value is the option's value.",
            "example": {
              "Color": "Black"
            }
          },
          "inventory_items": {
            "type": "array",
            "description": "The variant's inventory items to create.",
            "items": {
              "$ref": "#/components/schemas/AdminCreateProductVariantInventoryKit"
            }
          }
        }
      },
      "AdminCreateProductVariantInventoryKit": {
        "type": "object",
        "description": "The details of a variant's inventory item.",
        "x-schemaName": "AdminCreateProductVariantInventoryKit",
        "required": [
          "inventory_item_id"
        ],
        "properties": {
          "inventory_item_id": {
            "type": "string",
            "title": "inventory_item_id",
            "description": "The inventory item's ID."
          },
          "required_quantity": {
            "type": "number",
            "title": "required_quantity",
            "description": "The number of units a single quantity is equivalent to. For example, if a customer orders one quantity of the variant, Medusa checks the availability of the quantity multiplied by the value set for `required_quantity`. When the customer orders the quantity, Medusa reserves the ordered quantity multiplied by the value set for `required_quantity`."
          }
        }
      },
      "AdminCreateProductVariantPrice": {
        "type": "object",
        "description": "The details of a variant's price.",
        "x-schemaName": "AdminCreateProductVariantPrice",
        "required": [
          "currency_code",
          "amount"
        ],
        "properties": {
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The price's currency code."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The price's amount."
          },
          "min_quantity": {
            "type": "number",
            "title": "min_quantity",
            "description": "The minimum quantity that must be available in the cart for this price to apply."
          },
          "max_quantity": {
            "type": "number",
            "title": "max_quantity",
            "description": "The maximum quantity that must not be surpassed in the cart for this price to apply."
          },
          "rules": {
            "type": "object",
            "description": "The price's rules.",
            "example": {
              "region_id": "reg_123"
            },
            "properties": {
              "region_id": {
                "type": "string",
                "title": "region_id",
                "description": "The ID of a region."
              }
            },
            "required": [
              "region_id"
            ]
          }
        }
      },
      "AdminCreatePromotionRule": {
        "type": "object",
        "description": "The promotion rule's details.",
        "x-schemaName": "AdminCreatePromotionRule",
        "required": [
          "operator",
          "attribute",
          "values"
        ],
        "properties": {
          "operator": {
            "type": "string",
            "description": "The operator used to check whether the buy rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value.",
            "enum": [
              "gte",
              "lte",
              "gt",
              "lt",
              "eq",
              "ne",
              "in"
            ]
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The rule's description."
          },
          "attribute": {
            "type": "string",
            "title": "attribute",
            "description": "The attribute to compare against when checking whether a promotion can be applied on a cart.",
            "example": "items.product.id"
          },
          "values": {
            "oneOf": [
              {
                "type": "string",
                "title": "values",
                "description": "The attribute's value.",
                "example": "prod_123"
              },
              {
                "type": "array",
                "description": "The allowed attribute values.",
                "items": {
                  "type": "string",
                  "title": "values",
                  "description": "An attribute value.",
                  "example": "prod_123"
                }
              }
            ]
          }
        }
      },
      "AdminCreateRefundReason": {
        "type": "object",
        "description": "The refund reason's details.",
        "x-schemaName": "AdminCreateRefundReason",
        "required": [
          "label",
          "code"
        ],
        "properties": {
          "label": {
            "type": "string",
            "title": "label",
            "description": "The refund reason's label."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The refund reason's description."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The refund reason's code."
          },
          "metadata": {
            "type": "object",
            "description": "The refund reason's metadata. Can hold custom key-value pairs."
          }
        }
      },
      "AdminCreateRegion": {
        "type": "object",
        "description": "The region's details.",
        "x-schemaName": "AdminCreateRegion",
        "required": [
          "name",
          "currency_code"
        ],
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The region's name."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The region's currency code.",
            "example": "usd"
          },
          "countries": {
            "type": "array",
            "description": "The region's countries.",
            "items": {
              "type": "string",
              "title": "countries",
              "description": "A country code.",
              "example": "us"
            }
          },
          "automatic_taxes": {
            "type": "boolean",
            "title": "automatic_taxes",
            "description": "Whether taxes are calculated automatically during checkout in this region."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether prices in this region are tax inclusive."
          },
          "payment_providers": {
            "type": "array",
            "description": "The payment providers enabled in this region.",
            "items": {
              "type": "string",
              "title": "payment_providers",
              "description": "A payment provider's ID.",
              "example": "pp_stripe_stripe"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The region's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreateReservation": {
        "type": "object",
        "description": "The reservation's details.",
        "x-schemaName": "AdminCreateReservation",
        "required": [
          "location_id",
          "inventory_item_id",
          "quantity"
        ],
        "properties": {
          "line_item_id": {
            "type": "string",
            "title": "line_item_id",
            "description": "The ID of the line item this reservation is created for."
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the location the quantity is reserved from."
          },
          "inventory_item_id": {
            "type": "string",
            "title": "inventory_item_id",
            "description": "The ID of the inventory item associated with the line item's variant."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The reserved quantity."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The reservation's description."
          },
          "metadata": {
            "type": "object",
            "description": "The reservation's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreateReturnReason": {
        "type": "object",
        "description": "The details of the return reason to create.",
        "x-schemaName": "AdminCreateReturnReason",
        "required": [
          "value",
          "label"
        ],
        "properties": {
          "value": {
            "type": "string",
            "title": "value",
            "description": "The return reason's value."
          },
          "label": {
            "type": "string",
            "title": "label",
            "description": "The return reason's label."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The return reason's description."
          },
          "parent_return_reason_id": {
            "type": "string",
            "title": "parent_return_reason_id",
            "description": "The ID of the parent return reason."
          },
          "metadata": {
            "type": "object",
            "description": "The return reason's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreateSalesChannel": {
        "type": "object",
        "description": "The sales channel's details.",
        "x-schemaName": "AdminCreateSalesChannel",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The sales channel's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The sales channel's description."
          },
          "is_disabled": {
            "type": "boolean",
            "title": "is_disabled",
            "description": "Whether the sales channel is disabled."
          },
          "metadata": {
            "type": "object",
            "description": "The sales channel's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreateShippingOptionRule": {
        "type": "object",
        "description": "The details of the shipping option rule.",
        "x-schemaName": "AdminCreateShippingOptionRule",
        "required": [
          "operator",
          "attribute",
          "value"
        ],
        "properties": {
          "operator": {
            "type": "string",
            "description": "The operator used to check whether a rule applies.",
            "enum": [
              "gt",
              "lt",
              "eq",
              "ne",
              "in",
              "lte",
              "gte",
              "nin"
            ]
          },
          "attribute": {
            "type": "string",
            "title": "attribute",
            "description": "The name of a property or table that the rule applies to.",
            "example": "customer_group"
          },
          "value": {
            "oneOf": [
              {
                "type": "string",
                "title": "value",
                "description": "A value of the attribute that enables this rule.",
                "example": "cusgroup_123"
              },
              {
                "type": "array",
                "description": "Values of the attribute that enable this rule.",
                "items": {
                  "type": "string",
                  "title": "value",
                  "description": "A value of the attribute that enables this rule.",
                  "example": "cusgroup_123"
                }
              }
            ]
          }
        }
      },
      "AdminCreateShippingOptionType": {
        "type": "object",
        "description": "The shipping option type's details.",
        "x-schemaName": "AdminCreateShippingOptionType",
        "required": [
          "label",
          "code"
        ],
        "properties": {
          "label": {
            "type": "string",
            "title": "label",
            "description": "The type's label."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The type's description."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The type's code."
          }
        }
      },
      "AdminCreateShippingProfile": {
        "type": "object",
        "description": "The shipping profile's details.",
        "x-schemaName": "AdminCreateShippingProfile",
        "required": [
          "name",
          "type"
        ],
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The shipping profile's name."
          },
          "type": {
            "type": "string",
            "title": "type",
            "description": "The shipping profile's type."
          },
          "metadata": {
            "type": "object",
            "description": "The shipping profile's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreateStockLocation": {
        "type": "object",
        "description": "The stock location's details.",
        "x-schemaName": "AdminCreateStockLocation",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The stock location's name."
          },
          "address_id": {
            "type": "string",
            "title": "address_id",
            "description": "The ID of the stock location's address."
          },
          "address": {
            "$ref": "#/components/schemas/AdminUpsertStockLocationAddress"
          },
          "metadata": {
            "type": "object",
            "description": "The stock location's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreateStockLocationFulfillmentSet": {
        "type": "object",
        "description": "The fulfillment set to create.",
        "required": [
          "name",
          "type"
        ],
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The fulfillment set's name."
          },
          "type": {
            "type": "string",
            "title": "type",
            "description": "The fulfillment set's type."
          }
        },
        "x-schemaName": "AdminCreateStockLocationFulfillmentSet"
      },
      "AdminCreateStoreCreditAccount": {
        "type": "object",
        "description": "The details of the store credit account to create.",
        "x-schemaName": "AdminCreateStoreCreditAccount",
        "required": [
          "currency_code",
          "customer_id"
        ],
        "properties": {
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The store credit account's currency code.",
            "example": "usd"
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that the store credit account belongs to."
          },
          "metadata": {
            "type": "object",
            "description": "The store credit account's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreateTaxRate": {
        "type": "object",
        "description": "The tax rate's details.",
        "x-schemaName": "AdminCreateTaxRate",
        "required": [
          "name",
          "tax_region_id",
          "code"
        ],
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The tax rate's name.",
            "example": "VAT"
          },
          "tax_region_id": {
            "type": "string",
            "title": "tax_region_id",
            "description": "The ID of the tax region this rate belongs to."
          },
          "rate": {
            "type": "number",
            "title": "rate",
            "description": "The rate to charge.",
            "example": 10
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The code the tax rate is identified by."
          },
          "rules": {
            "type": "array",
            "description": "The tax rate's rules.",
            "items": {
              "$ref": "#/components/schemas/AdminCreateTaxRateRule"
            }
          },
          "is_default": {
            "type": "boolean",
            "title": "is_default",
            "description": "Whether the tax rate is the default in its tax region."
          },
          "is_combinable": {
            "type": "boolean",
            "title": "is_combinable",
            "description": "Whether the tax rate should be combined with parent rates.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/tax/tax-rates-and-rules#combinable-tax-rates"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The tax rate's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminCreateTaxRateRule": {
        "type": "object",
        "description": "The tax rate rule's details.",
        "x-schemaName": "AdminCreateTaxRateRule",
        "required": [
          "reference",
          "reference_id"
        ],
        "properties": {
          "reference": {
            "type": "string",
            "title": "reference",
            "description": "The name of a table in the database that this rule points to.",
            "example": "product_type"
          },
          "reference_id": {
            "type": "string",
            "title": "reference_id",
            "description": "The ID of a record in the table specified in reference.",
            "example": "ptype_123"
          }
        }
      },
      "AdminCreateTaxRegion": {
        "type": "object",
        "description": "The tax region's details.",
        "x-schemaName": "AdminCreateTaxRegion",
        "required": [
          "country_code"
        ],
        "properties": {
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The tax region's country code.",
            "example": "us"
          },
          "province_code": {
            "type": "string",
            "title": "province_code",
            "description": "The tax region's ISO 3166-2 province code. Must be lower-case.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "parent_id": {
            "type": "string",
            "title": "parent_id",
            "description": "The ID of the parent tax region."
          },
          "default_tax_rate": {
            "type": "object",
            "description": "The tax region's default tax rate.",
            "required": [
              "code",
              "name"
            ],
            "properties": {
              "rate": {
                "type": "number",
                "title": "rate",
                "description": "The rate to charge.",
                "example": 10
              },
              "code": {
                "type": "string",
                "title": "code",
                "description": "The code the tax rate is identified by"
              },
              "name": {
                "type": "string",
                "title": "name",
                "description": "The default tax rate's name.",
                "example": "VAT"
              },
              "is_combinable": {
                "type": "boolean",
                "description": "Whether the tax rate should be combined with parent rates.",
                "externalDocs": {
                  "url": "https://docs.medusajs.com/resources/commerce-modules/tax/tax-rates-and-rules#combinable-tax-rates"
                }
              },
              "metadata": {
                "type": "object",
                "description": "The default tax rate's metadata, used to store custom key-value pairs.",
                "externalDocs": {
                  "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                  "description": "Learn how to manage metadata"
                }
              }
            }
          },
          "metadata": {
            "type": "object",
            "description": "The tax region's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the tax provider used to calculate the tax rate in this tax region."
          }
        }
      },
      "AdminCreateTranslationSettings": {
        "type": "object",
        "description": "The translation settings to create.",
        "x-schemaName": "AdminCreateTranslationSettings",
        "required": [
          "entity_type",
          "fields"
        ],
        "properties": {
          "entity_type": {
            "type": "string",
            "title": "entity_type",
            "description": "The entity type to create the translation settings for.",
            "example": "product"
          },
          "fields": {
            "type": "array",
            "description": "The fields to support translations for.",
            "items": {
              "type": "string",
              "title": "fields",
              "description": "A field to support translations for.",
              "example": "title"
            }
          },
          "is_active": {
            "type": "boolean",
            "title": "is_active",
            "description": "Whether translations are active for the given entity type."
          }
        }
      },
      "AdminCreateVariantInventoryItem": {
        "type": "object",
        "description": "The details of the variant-inventory item association.",
        "x-schemaName": "AdminCreateVariantInventoryItem",
        "required": [
          "required_quantity",
          "inventory_item_id"
        ],
        "properties": {
          "required_quantity": {
            "type": "number",
            "title": "required_quantity",
            "description": "The quantity of the variant in the inventory item."
          },
          "inventory_item_id": {
            "type": "string",
            "title": "inventory_item_id",
            "description": "The inventory item's ID."
          }
        }
      },
      "AdminCreateViewConfiguration": {
        "type": "object",
        "description": "The details of a view configuration to create.",
        "x-schemaName": "AdminCreateViewConfiguration",
        "properties": {
          "is_system_default": {
            "type": "boolean",
            "title": "is_system_default",
            "description": "Whether the view is the system default. If so, it will be used as the default view for all users that don't have a custom active view set."
          },
          "set_active": {
            "type": "boolean",
            "title": "set_active",
            "description": "Whether the view is set as active."
          },
          "configuration": {
            "type": "object",
            "description": "The view's configuration.",
            "required": [
              "visible_columns",
              "column_order"
            ],
            "properties": {
              "visible_columns": {
                "type": "array",
                "description": "The configuration's visible columns.",
                "items": {
                  "type": "string",
                  "title": "visible_columns",
                  "description": "The visible column's name."
                }
              },
              "column_order": {
                "type": "array",
                "description": "The columns in the order they should be displayed.",
                "items": {
                  "type": "string",
                  "title": "column_order",
                  "description": "The column's name."
                }
              },
              "search": {
                "type": "string",
                "title": "search",
                "description": "The search query used in the view."
              },
              "column_widths": {
                "type": "object",
                "description": "The column widths in the view."
              },
              "filters": {
                "type": "object",
                "description": "The filters applied to the view."
              },
              "sorting": {
                "type": "object",
                "description": "The sorting applied to the view.",
                "required": [
                  "id",
                  "desc"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "title": "id",
                    "description": "The ID of the sorting column."
                  },
                  "desc": {
                    "type": "boolean",
                    "title": "desc",
                    "description": "Whether the sorting is descending."
                  }
                }
              }
            }
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The view's name."
          }
        }
      },
      "AdminCreateWorkflowsAsyncResponse": {
        "type": "object",
        "description": "The details of changing a workflow execution's step status.",
        "x-schemaName": "AdminCreateWorkflowsAsyncResponse",
        "required": [
          "transaction_id",
          "step_id"
        ],
        "properties": {
          "transaction_id": {
            "type": "string",
            "title": "transaction_id",
            "description": "The workflows execution's transaction ID."
          },
          "step_id": {
            "type": "string",
            "title": "step_id",
            "description": "The ID of the step whose status was changed."
          },
          "response": {
            "description": "Sets the step's response. It accepts any type."
          },
          "compensate_input": {
            "description": "Sets the compensation function's input. It accepts any response."
          },
          "action": {
            "type": "string",
            "description": "Whether to invoke or compensate the step.",
            "enum": [
              "invoke",
              "compensate"
            ]
          }
        }
      },
      "AdminCreateWorkflowsRun": {
        "type": "object",
        "description": "The details of the workflow to execute.",
        "x-schemaName": "AdminCreateWorkflowsRun",
        "properties": {
          "input": {
            "description": "The input to pass to the workflow. Can be of any type."
          },
          "transaction_id": {
            "type": "string",
            "title": "transaction_id",
            "description": "The ID of the workflow execution's transaction."
          }
        }
      },
      "AdminCurrency": {
        "type": "object",
        "description": "The currency's currencies.",
        "x-schemaName": "AdminCurrency",
        "required": [
          "code",
          "symbol",
          "symbol_native",
          "name",
          "decimal_digits",
          "rounding",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "code": {
            "type": "string",
            "title": "code",
            "description": "The currency's code.",
            "example": "usd"
          },
          "symbol": {
            "type": "string",
            "title": "symbol",
            "description": "The currency's symbol.",
            "example": "$"
          },
          "symbol_native": {
            "type": "string",
            "title": "symbol_native",
            "description": "The currency's native symbol, if different than the symbol.",
            "example": "$"
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The currency's name."
          },
          "decimal_digits": {
            "type": "number",
            "title": "decimal_digits",
            "description": "The number of digits after the decimal for prices in this currency."
          },
          "rounding": {
            "type": "number",
            "title": "rounding",
            "description": "The rounding percision applied on prices in this currency."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The currency's creation date."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The currency's update date."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The currency's deletion date."
          }
        }
      },
      "AdminCurrencyListResponse": {
        "type": "object",
        "description": "The paginated list of currencies.",
        "x-schemaName": "AdminCurrencyListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "currencies"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items."
          },
          "currencies": {
            "type": "array",
            "description": "The list of currencies.",
            "items": {
              "$ref": "#/components/schemas/AdminCurrency"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminCurrencyResponse": {
        "type": "object",
        "description": "The currency's details.",
        "x-schemaName": "AdminCurrencyResponse",
        "required": [
          "currency"
        ],
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/AdminCurrency"
          }
        }
      },
      "AdminCustomer": {
        "type": "object",
        "description": "The customer's details.",
        "x-schemaName": "AdminCustomer",
        "required": [
          "has_account",
          "addresses",
          "id",
          "email",
          "default_billing_address_id",
          "default_shipping_address_id",
          "company_name",
          "first_name",
          "last_name"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The customer's ID."
          },
          "has_account": {
            "type": "boolean",
            "title": "has_account",
            "description": "Whether the customer is registered."
          },
          "groups": {
            "type": "array",
            "description": "The customer's groups.",
            "items": {
              "$ref": "#/components/schemas/AdminCustomerGroup"
            }
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The customer's email.",
            "format": "email"
          },
          "default_billing_address_id": {
            "type": "string",
            "title": "default_billing_address_id",
            "description": "The ID of the address used as the default billing address."
          },
          "default_shipping_address_id": {
            "type": "string",
            "title": "default_shipping_address_id",
            "description": "The ID of the address used as the default shipping address."
          },
          "company_name": {
            "type": "string",
            "title": "company_name",
            "description": "The customer's company name."
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The customer's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The customer's last name."
          },
          "addresses": {
            "type": "array",
            "description": "The customer's addresses.",
            "items": {
              "$ref": "#/components/schemas/AdminCustomerAddress"
            }
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The customer's phone."
          },
          "metadata": {
            "type": "object",
            "description": "The customer's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_by": {
            "type": "string",
            "title": "created_by",
            "description": "The ID of the user that created this customer, if available."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The customer's creation date."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The customer's update date."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The customer's deletion date."
          }
        }
      },
      "AdminCustomerAddress": {
        "type": "object",
        "description": "The customer's address.",
        "x-schemaName": "AdminCustomerAddress",
        "required": [
          "id",
          "address_name",
          "is_default_shipping",
          "is_default_billing",
          "customer_id",
          "company",
          "first_name",
          "last_name",
          "address_1",
          "address_2",
          "city",
          "country_code",
          "province",
          "postal_code",
          "phone",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The address's ID."
          },
          "address_name": {
            "type": "string",
            "title": "address_name",
            "description": "The address's name."
          },
          "is_default_shipping": {
            "type": "boolean",
            "title": "is_default_shipping",
            "description": "Whether the address is the default shipping address."
          },
          "is_default_billing": {
            "type": "boolean",
            "title": "is_default_billing",
            "description": "Whether the address is the default billing address."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that this address belongs to."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The customer's company."
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The customer's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The customer's last name."
          },
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The address's second line."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The address's city."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The address's country code.",
            "example": "us"
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The address's lower-case ISO 3166-2 province code.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The address's postal code."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The address's phone."
          },
          "metadata": {
            "type": "object",
            "description": "The address's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The address's creation date."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The address's update date."
          }
        }
      },
      "AdminCustomerAddressResponse": {
        "type": "object",
        "description": "The address's details.",
        "x-schemaName": "AdminCustomerAddressResponse",
        "required": [
          "address"
        ],
        "properties": {
          "address": {
            "$ref": "#/components/schemas/AdminCustomerAddress"
          }
        }
      },
      "AdminCustomerGroup": {
        "type": "object",
        "description": "The customer group's details.",
        "x-schemaName": "AdminCustomerGroup",
        "required": [
          "customers",
          "id",
          "name",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The customer group's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The customer group's name."
          },
          "customers": {
            "type": "array",
            "description": "The customer group's customers.",
            "items": {
              "type": "object"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The customer group's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The customer group's creation date."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The customer group's update date."
          }
        }
      },
      "AdminCustomerGroupResponse": {
        "type": "object",
        "description": "The customer group's details.",
        "x-schemaName": "AdminCustomerGroupResponse",
        "required": [
          "customer_group"
        ],
        "properties": {
          "customer_group": {
            "$ref": "#/components/schemas/AdminCustomerGroup"
          }
        }
      },
      "AdminCustomerInGroupFilters": {
        "type": "object",
        "description": "Filters to apply on customers to retrieve their groups.",
        "x-schemaName": "AdminCustomerInGroupFilters",
        "properties": {
          "id": {
            "oneOf": [
              {
                "type": "string",
                "title": "id",
                "description": "Filter by a customer's ID."
              },
              {
                "type": "array",
                "description": "Filter by customer IDs.",
                "items": {
                  "type": "string",
                  "title": "id",
                  "description": "A customer's ID."
                }
              }
            ]
          },
          "email": {
            "oneOf": [
              {
                "type": "string",
                "title": "email",
                "description": "Filter by a customer's email.",
                "format": "email"
              },
              {
                "type": "array",
                "description": "Filter by customer emails.",
                "items": {
                  "type": "string",
                  "title": "email",
                  "description": "A customer's email.",
                  "format": "email"
                }
              },
              {
                "type": "object",
                "description": "Apply filters on the customer's email.",
                "properties": {
                  "$and": {
                    "type": "array",
                    "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                    "items": {
                      "type": "object"
                    },
                    "title": "$and"
                  },
                  "$or": {
                    "type": "array",
                    "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                    "items": {
                      "type": "object"
                    },
                    "title": "$or"
                  },
                  "$eq": {
                    "oneOf": [
                      {
                        "type": "string",
                        "title": "$eq",
                        "description": "Filter by an exact match."
                      },
                      {
                        "type": "array",
                        "description": "Filter by exact matches",
                        "items": {
                          "type": "string",
                          "title": "$eq",
                          "description": "Filter by an exact match."
                        }
                      }
                    ]
                  },
                  "$ne": {
                    "type": "string",
                    "title": "$ne",
                    "description": "Filter by values not equal to this parameter."
                  },
                  "$in": {
                    "type": "array",
                    "description": "Filter by values in this array.",
                    "items": {
                      "type": "string",
                      "title": "$in",
                      "description": "Filter by values in this array."
                    }
                  },
                  "$nin": {
                    "type": "array",
                    "description": "Filter by values not in this array.",
                    "items": {
                      "type": "string",
                      "title": "$nin",
                      "description": "Filter by values not in this array."
                    }
                  },
                  "$not": {
                    "oneOf": [
                      {
                        "type": "string",
                        "title": "$not",
                        "description": "Filter by values not matching the conditions in this parameter."
                      },
                      {
                        "type": "object",
                        "description": "Filter by values not matching the conditions in this parameter."
                      },
                      {
                        "type": "array",
                        "description": "Filter by values not matching the conditions in this parameter.",
                        "items": {
                          "type": "string",
                          "title": "$not",
                          "description": "Filter by values not matching the conditions in this parameter."
                        }
                      }
                    ]
                  },
                  "$gt": {
                    "type": "string",
                    "title": "$gt",
                    "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
                  },
                  "$gte": {
                    "type": "string",
                    "title": "$gte",
                    "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
                  },
                  "$lt": {
                    "type": "string",
                    "title": "$lt",
                    "description": "Filter by values less than this parameter. Useful for numbers and dates only."
                  },
                  "$lte": {
                    "type": "string",
                    "title": "$lte",
                    "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
                  },
                  "$like": {
                    "type": "string",
                    "title": "$like",
                    "description": "Apply a `like` filter. Useful for strings only."
                  },
                  "$re": {
                    "type": "string",
                    "title": "$re",
                    "description": "Apply a regex filter. Useful for strings only."
                  },
                  "$ilike": {
                    "type": "string",
                    "title": "$ilike",
                    "description": "Apply a case-insensitive `like` filter. Useful for strings only."
                  },
                  "$fulltext": {
                    "type": "string",
                    "title": "$fulltext",
                    "description": "Filter to apply on full-text properties."
                  },
                  "$overlap": {
                    "type": "array",
                    "description": "Filter arrays that have overlapping values with this parameter.",
                    "items": {
                      "type": "string",
                      "title": "$overlap",
                      "description": "Filter arrays that have overlapping values with this parameter."
                    }
                  },
                  "$contains": {
                    "type": "array",
                    "description": "Filter arrays that contain some of the values of this parameter.",
                    "items": {
                      "type": "string",
                      "title": "$contains",
                      "description": "Filter arrays that contain some of the values of this parameter."
                    }
                  },
                  "$contained": {
                    "type": "array",
                    "description": "Filter arrays that contain all values of this parameter.",
                    "items": {
                      "type": "string",
                      "title": "$contained",
                      "description": "Filter arrays that contain all values of this parameter."
                    }
                  },
                  "$exists": {
                    "type": "boolean",
                    "title": "$exists",
                    "description": "Filter by whether a value for this parameter exists (not `null`)."
                  }
                }
              }
            ]
          },
          "default_billing_address_id": {
            "oneOf": [
              {
                "type": "string",
                "title": "default_billing_address_id",
                "description": "Filter by the ID of a customer's default billing address."
              },
              {
                "type": "array",
                "description": "Filter by the IDs of a customers' default billing address.",
                "items": {
                  "type": "string",
                  "title": "default_billing_address_id",
                  "description": "The ID of a customer's default billing address."
                }
              }
            ]
          },
          "default_shipping_address_id": {
            "oneOf": [
              {
                "type": "string",
                "title": "default_shipping_address_id",
                "description": "Filter by the ID of a customer's default shipping address."
              },
              {
                "type": "array",
                "description": "Filter by the IDs of a customers' default shipping address.",
                "items": {
                  "type": "string",
                  "title": "default_shipping_address_id",
                  "description": "The ID of a customer's default shipping address."
                }
              }
            ]
          },
          "company_name": {
            "oneOf": [
              {
                "type": "string",
                "title": "company_name",
                "description": "Filter by a customer's company name."
              },
              {
                "type": "array",
                "description": "Filter by customers' company names.",
                "items": {
                  "type": "string",
                  "title": "company_name",
                  "description": "A company name."
                }
              }
            ]
          },
          "first_name": {
            "oneOf": [
              {
                "type": "string",
                "title": "first_name",
                "description": "Filter by a customer's first name."
              },
              {
                "type": "array",
                "description": "Filter by customers' first names.",
                "items": {
                  "type": "string",
                  "title": "first_name",
                  "description": "A first name."
                }
              }
            ]
          },
          "last_name": {
            "oneOf": [
              {
                "type": "string",
                "title": "last_name",
                "description": "Filter by a customer's last name."
              },
              {
                "type": "array",
                "description": "Filter by customers' last names.",
                "items": {
                  "type": "string",
                  "title": "last_name",
                  "description": "A last name."
                }
              }
            ]
          },
          "created_by": {
            "oneOf": [
              {
                "type": "string",
                "title": "created_by",
                "description": "Filter by the ID of a user to retrieve the groups of the customers they created."
              },
              {
                "type": "array",
                "description": "Filter by the ID of users to retrieve the groups of the customers they created.",
                "items": {
                  "type": "string",
                  "title": "created_by",
                  "description": "A user's ID."
                }
              }
            ]
          },
          "created_at": {
            "type": "object",
            "description": "Filter the customer's creation date.",
            "properties": {
              "$and": {
                "type": "array",
                "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                "items": {
                  "type": "object"
                },
                "title": "$and"
              },
              "$or": {
                "type": "array",
                "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                "items": {
                  "type": "object"
                },
                "title": "$or"
              },
              "$eq": {
                "oneOf": [
                  {
                    "type": "string",
                    "title": "$eq",
                    "description": "Filter by an exact match."
                  },
                  {
                    "type": "array",
                    "description": "Filter by exact matches",
                    "items": {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    }
                  }
                ]
              },
              "$ne": {
                "type": "string",
                "title": "$ne",
                "description": "Filter by values not equal to this parameter."
              },
              "$in": {
                "type": "array",
                "description": "Filter by values in this array.",
                "items": {
                  "type": "string",
                  "title": "$in",
                  "description": "Filter by values in this array."
                }
              },
              "$nin": {
                "type": "array",
                "description": "Filter by values not in this array.",
                "items": {
                  "type": "string",
                  "title": "$nin",
                  "description": "Filter by values not in this array."
                }
              },
              "$not": {
                "oneOf": [
                  {
                    "type": "string",
                    "title": "$not",
                    "description": "Filter by values not matching the conditions in this parameter."
                  },
                  {
                    "type": "object",
                    "description": "Filter by values not matching the conditions in this parameter."
                  },
                  {
                    "type": "array",
                    "description": "Filter by values not matching the conditions in this parameter.",
                    "items": {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    }
                  }
                ]
              },
              "$gt": {
                "type": "string",
                "title": "$gt",
                "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
              },
              "$gte": {
                "type": "string",
                "title": "$gte",
                "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
              },
              "$lt": {
                "type": "string",
                "title": "$lt",
                "description": "Filter by values less than this parameter. Useful for numbers and dates only."
              },
              "$lte": {
                "type": "string",
                "title": "$lte",
                "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
              },
              "$like": {
                "type": "string",
                "title": "$like",
                "description": "Apply a `like` filter. Useful for strings only."
              },
              "$re": {
                "type": "string",
                "title": "$re",
                "description": "Apply a regex filter. Useful for strings only."
              },
              "$ilike": {
                "type": "string",
                "title": "$ilike",
                "description": "Apply a case-insensitive `like` filter. Useful for strings only."
              },
              "$fulltext": {
                "type": "string",
                "title": "$fulltext",
                "description": "Filter to apply on full-text properties."
              },
              "$overlap": {
                "type": "array",
                "description": "Filter arrays that have overlapping values with this parameter.",
                "items": {
                  "type": "string",
                  "title": "$overlap",
                  "description": "Filter arrays that have overlapping values with this parameter."
                }
              },
              "$contains": {
                "type": "array",
                "description": "Filter arrays that contain some of the values of this parameter.",
                "items": {
                  "type": "string",
                  "title": "$contains",
                  "description": "Filter arrays that contain some of the values of this parameter."
                }
              },
              "$contained": {
                "type": "array",
                "description": "Filter arrays that contain all values of this parameter.",
                "items": {
                  "type": "string",
                  "title": "$contained",
                  "description": "Filter arrays that contain all values of this parameter."
                }
              },
              "$exists": {
                "type": "boolean",
                "title": "$exists",
                "description": "Filter by whether a value for this parameter exists (not `null`)."
              }
            }
          },
          "updated_at": {
            "type": "object",
            "description": "Filter the customer's update date.",
            "properties": {
              "$and": {
                "type": "array",
                "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                "items": {
                  "type": "object"
                },
                "title": "$and"
              },
              "$or": {
                "type": "array",
                "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                "items": {
                  "type": "object"
                },
                "title": "$or"
              },
              "$eq": {
                "oneOf": [
                  {
                    "type": "string",
                    "title": "$eq",
                    "description": "Filter by an exact match."
                  },
                  {
                    "type": "array",
                    "description": "Filter by an exact match.",
                    "items": {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    }
                  }
                ]
              },
              "$ne": {
                "type": "string",
                "title": "$ne",
                "description": "Filter by values not equal to this parameter."
              },
              "$in": {
                "type": "array",
                "description": "Filter by values in this array.",
                "items": {
                  "type": "string",
                  "title": "$in",
                  "description": "Filter by values in this array."
                }
              },
              "$nin": {
                "type": "array",
                "description": "Filter by values not in this array.",
                "items": {
                  "type": "string",
                  "title": "$nin",
                  "description": "Filter by values not in this array."
                }
              },
              "$not": {
                "oneOf": [
                  {
                    "type": "string",
                    "title": "$not",
                    "description": "Filter by values not matching the conditions in this parameter."
                  },
                  {
                    "type": "object",
                    "description": "Filter by values not matching the conditions in this parameter."
                  },
                  {
                    "type": "array",
                    "description": "Filter by values not matching the conditions in this parameter.",
                    "items": {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    }
                  }
                ]
              },
              "$gt": {
                "type": "string",
                "title": "$gt",
                "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
              },
              "$gte": {
                "type": "string",
                "title": "$gte",
                "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
              },
              "$lt": {
                "type": "string",
                "title": "$lt",
                "description": "Filter by values less than this parameter. Useful for numbers and dates only."
              },
              "$lte": {
                "type": "string",
                "title": "$lte",
                "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
              },
              "$like": {
                "type": "string",
                "title": "$like",
                "description": "Apply a `like` filter. Useful for strings only."
              },
              "$re": {
                "type": "string",
                "title": "$re",
                "description": "Apply a regex filter. Useful for strings only."
              },
              "$ilike": {
                "type": "string",
                "title": "$ilike",
                "description": "Apply a case-insensitive `like` filter. Useful for strings only."
              },
              "$fulltext": {
                "type": "string",
                "title": "$fulltext",
                "description": "Filter to apply on full-text properties."
              },
              "$overlap": {
                "type": "array",
                "description": "Filter arrays that have overlapping values with this parameter.",
                "items": {
                  "type": "string",
                  "title": "$overlap",
                  "description": "Filter arrays that have overlapping values with this parameter."
                }
              },
              "$contains": {
                "type": "array",
                "description": "Filter arrays that contain some of the values of this parameter.",
                "items": {
                  "type": "string",
                  "title": "$contains",
                  "description": "Filter arrays that contain some of the values of this parameter."
                }
              },
              "$contained": {
                "type": "array",
                "description": "Filter arrays that contain all values of this parameter.",
                "items": {
                  "type": "string",
                  "title": "$contained",
                  "description": "Filter arrays that contain all values of this parameter."
                }
              },
              "$exists": {
                "type": "boolean",
                "title": "$exists",
                "description": "Filter by whether a value for this parameter exists (not `null`)."
              }
            }
          },
          "deleted_at": {
            "type": "object",
            "description": "Filter the customer's deletion date.",
            "properties": {
              "$and": {
                "type": "array",
                "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                "items": {
                  "type": "object"
                },
                "title": "$and"
              },
              "$or": {
                "type": "array",
                "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                "items": {
                  "type": "object"
                },
                "title": "$or"
              },
              "$eq": {
                "oneOf": [
                  {
                    "type": "string",
                    "title": "$eq",
                    "description": "Filter by an exact match."
                  },
                  {
                    "type": "array",
                    "description": "Filter by an exact match.",
                    "items": {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    }
                  }
                ]
              },
              "$ne": {
                "type": "string",
                "title": "$ne",
                "description": "Filter by values not equal to this parameter."
              },
              "$in": {
                "type": "array",
                "description": "Filter by values in this array.",
                "items": {
                  "type": "string",
                  "title": "$in",
                  "description": "Filter by values in this array."
                }
              },
              "$nin": {
                "type": "array",
                "description": "Filter by values not in this array.",
                "items": {
                  "type": "string",
                  "title": "$nin",
                  "description": "Filter by values not in this array."
                }
              },
              "$not": {
                "oneOf": [
                  {
                    "type": "string",
                    "title": "$not",
                    "description": "Filter by values not matching the conditions in this parameter."
                  },
                  {
                    "type": "object",
                    "description": "Filter by values not matching the conditions in this parameter."
                  },
                  {
                    "type": "array",
                    "description": "Filter by values not matching the conditions in this parameter.",
                    "items": {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    }
                  }
                ]
              },
              "$gt": {
                "type": "string",
                "title": "$gt",
                "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
              },
              "$gte": {
                "type": "string",
                "title": "$gte",
                "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
              },
              "$lt": {
                "type": "string",
                "title": "$lt",
                "description": "Filter by values less than this parameter. Useful for numbers and dates only."
              },
              "$lte": {
                "type": "string",
                "title": "$lte",
                "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
              },
              "$like": {
                "type": "string",
                "title": "$like",
                "description": "Apply a `like` filter. Useful for strings only."
              },
              "$re": {
                "type": "string",
                "title": "$re",
                "description": "Apply a regex filter. Useful for strings only."
              },
              "$ilike": {
                "type": "string",
                "title": "$ilike",
                "description": "Apply a case-insensitive `like` filter. Useful for strings only."
              },
              "$fulltext": {
                "type": "string",
                "title": "$fulltext",
                "description": "Filter to apply on full-text properties."
              },
              "$overlap": {
                "type": "array",
                "description": "Filter arrays that have overlapping values with this parameter.",
                "items": {
                  "type": "string",
                  "title": "$overlap",
                  "description": "Filter arrays that have overlapping values with this parameter."
                }
              },
              "$contains": {
                "type": "array",
                "description": "Filter arrays that contain some of the values of this parameter.",
                "items": {
                  "type": "string",
                  "title": "$contains",
                  "description": "Filter arrays that contain some of the values of this parameter."
                }
              },
              "$contained": {
                "type": "array",
                "description": "Filter arrays that contain all values of this parameter.",
                "items": {
                  "type": "string",
                  "title": "$contained",
                  "description": "Filter arrays that contain all values of this parameter."
                }
              },
              "$exists": {
                "type": "boolean",
                "title": "$exists",
                "description": "Filter by whether a value for this parameter exists (not `null`)."
              }
            }
          }
        }
      },
      "AdminCustomerResponse": {
        "type": "object",
        "description": "The customer's details.",
        "x-schemaName": "AdminCustomerResponse",
        "required": [
          "customer"
        ],
        "properties": {
          "customer": {
            "$ref": "#/components/schemas/AdminCustomer"
          }
        }
      },
      "AdminDeletePaymentCollectionResponse": {
        "type": "object",
        "description": "The result of deleting the payment collection.",
        "x-schemaName": "AdminDeletePaymentCollectionResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The payment collection's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the object that was deleted.",
            "default": "payment-collection"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the object was deleted."
          }
        }
      },
      "AdminDismissItems": {
        "type": "object",
        "description": "The items details.",
        "x-schemaName": "AdminDismissItems",
        "properties": {
          "items": {
            "type": "array",
            "description": "The items details.",
            "items": {
              "type": "object",
              "description": "An item's details.",
              "required": [
                "id",
                "quantity"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The ID of the item in the order."
                },
                "quantity": {
                  "type": "number",
                  "title": "quantity",
                  "description": "The item's quantity."
                },
                "internal_note": {
                  "type": "string",
                  "title": "internal_note",
                  "description": "A note viewed only by admin users."
                }
              }
            }
          }
        }
      },
      "AdminDraftOrder": {
        "type": "object",
        "description": "The draft order's details.",
        "x-schemaName": "AdminDraftOrder",
        "required": [
          "payment_collections",
          "items",
          "shipping_methods",
          "status",
          "id",
          "version",
          "region_id",
          "customer_id",
          "sales_channel_id",
          "email",
          "currency_code",
          "payment_status",
          "fulfillment_status",
          "summary",
          "created_at",
          "updated_at",
          "original_item_total",
          "original_item_subtotal",
          "original_item_tax_total",
          "item_total",
          "item_subtotal",
          "item_tax_total",
          "item_discount_total",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_total",
          "discount_tax_total",
          "gift_card_total",
          "gift_card_tax_total",
          "shipping_total",
          "shipping_subtotal",
          "shipping_tax_total",
          "shipping_discount_total",
          "original_shipping_total",
          "original_shipping_subtotal",
          "original_shipping_tax_total",
          "credit_line_total"
        ],
        "properties": {
          "payment_collections": {
            "type": "array",
            "description": "The draft order's payment collections.",
            "items": {
              "$ref": "#/components/schemas/AdminPaymentCollection"
            }
          },
          "fulfillments": {
            "type": "array",
            "description": "The draft order's fulfillments.",
            "items": {
              "$ref": "#/components/schemas/AdminOrderFulfillment"
            }
          },
          "sales_channel": {
            "$ref": "#/components/schemas/AdminSalesChannel"
          },
          "customer": {
            "$ref": "#/components/schemas/AdminCustomer"
          },
          "shipping_address": {
            "$ref": "#/components/schemas/AdminOrderAddress"
          },
          "billing_address": {
            "$ref": "#/components/schemas/AdminOrderAddress"
          },
          "items": {
            "type": "array",
            "description": "The draft order's items.",
            "items": {
              "$ref": "#/components/schemas/AdminOrderLineItem"
            }
          },
          "shipping_methods": {
            "type": "array",
            "description": "The draft order's shipping methods.",
            "items": {
              "$ref": "#/components/schemas/AdminOrderShippingMethod"
            }
          },
          "status": {
            "type": "string",
            "title": "status",
            "description": "The draft order's status."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The draft order's currency code.",
            "example": "usd"
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The draft order's ID."
          },
          "version": {
            "type": "number",
            "title": "version",
            "description": "The draft order's version."
          },
          "region_id": {
            "type": "string",
            "title": "region_id",
            "description": "The ID of the region associated with the draft order."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that the draft order belongs to."
          },
          "sales_channel_id": {
            "type": "string",
            "title": "sales_channel_id",
            "description": "The ID of the sales channel that the draft order is placed in."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The customer email associated with the draft order.",
            "format": "email"
          },
          "display_id": {
            "type": "number",
            "title": "display_id",
            "description": "The draft order's display ID."
          },
          "payment_status": {
            "type": "string",
            "description": "The draft order's payment status.",
            "enum": [
              "not_paid",
              "awaiting",
              "authorized",
              "partially_authorized",
              "canceled",
              "captured",
              "partially_captured",
              "partially_refunded",
              "refunded",
              "requires_action"
            ]
          },
          "fulfillment_status": {
            "type": "string",
            "description": "The draft order's fulfillment status.",
            "enum": [
              "canceled",
              "not_fulfilled",
              "partially_fulfilled",
              "fulfilled",
              "partially_shipped",
              "shipped",
              "partially_delivered",
              "delivered"
            ]
          },
          "transactions": {
            "type": "array",
            "description": "The draft order's transactions.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderTransaction"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/BaseOrderSummary"
          },
          "metadata": {
            "type": "object",
            "description": "The draft order's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the draft order was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the draft order was updated."
          },
          "original_item_total": {
            "type": "number",
            "title": "original_item_total",
            "description": "The total of the draft order's items including taxes, excluding promotions."
          },
          "original_item_subtotal": {
            "type": "number",
            "title": "original_item_subtotal",
            "description": "The total of the draft order's items excluding taxes, including promotions."
          },
          "original_item_tax_total": {
            "type": "number",
            "title": "original_item_tax_total",
            "description": "The tax total of the draft order's items excluding promotions."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The total of the draft order's items including taxes and promotions."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The total of the draft order's items excluding taxes, including promotions."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The tax total of the draft order's items including promotions."
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The draft order's total excluding promotions, including taxes."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The draft order's total excluding taxes, including promotions."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The draft order's tax total, excluding promotions."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The draft order's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The draft order's total excluding taxes, including promotions."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The draft order's tax total including promotions."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The draft order's discount or promotions total."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The tax total of draft order's discount or promotion."
          },
          "gift_card_total": {
            "type": "number",
            "title": "gift_card_total",
            "description": "The draft order's gift card total."
          },
          "gift_card_tax_total": {
            "type": "number",
            "title": "gift_card_tax_total",
            "description": "The tax total of the draft order's gift card."
          },
          "shipping_total": {
            "type": "number",
            "title": "shipping_total",
            "description": "The draft order's shipping total including taxes and promotions."
          },
          "shipping_subtotal": {
            "type": "number",
            "title": "shipping_subtotal",
            "description": "The draft order's shipping total excluding taxes, including promotions."
          },
          "shipping_tax_total": {
            "type": "number",
            "title": "shipping_tax_total",
            "description": "The tax total of the draft order's shipping."
          },
          "original_shipping_total": {
            "type": "number",
            "title": "original_shipping_total",
            "description": "The draft order's shipping total including taxes, excluding promotions."
          },
          "original_shipping_subtotal": {
            "type": "number",
            "title": "original_shipping_subtotal",
            "description": "The draft order's shipping total excluding taxes, including promotions."
          },
          "original_shipping_tax_total": {
            "type": "number",
            "title": "original_shipping_tax_total",
            "description": "The tax total of the draft order's shipping excluding promotions."
          },
          "region": {
            "$ref": "#/components/schemas/AdminRegion"
          },
          "credit_lines": {
            "type": "array",
            "description": "The draft order's credit lines.",
            "items": {
              "$ref": "#/components/schemas/OrderCreditLine"
            }
          },
          "credit_line_total": {
            "type": "number",
            "title": "credit_line_total",
            "description": "The draft order's credit line total."
          },
          "item_discount_total": {
            "type": "number",
            "title": "item_discount_total",
            "description": "The total discount amount applied on the draft order's items."
          },
          "shipping_discount_total": {
            "type": "number",
            "title": "shipping_discount_total",
            "description": "The total discount amount applied on the draft order's shipping."
          },
          "custom_display_id": {
            "type": "string",
            "title": "custom_display_id",
            "description": "The custom display ID of the draft order.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/order/custom-display-id"
            }
          }
        }
      },
      "AdminDraftOrderListResponse": {
        "type": "object",
        "description": "The list of draft orders with pagination fields.",
        "x-schemaName": "AdminDraftOrderListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "draft_orders"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items retrieved."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total count of items available."
          },
          "draft_orders": {
            "type": "array",
            "description": "The list of draft orders.",
            "items": {
              "$ref": "#/components/schemas/AdminDraftOrder"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminDraftOrderParams": {
        "type": "object",
        "description": "The parameters for retrieving draft orders.",
        "x-schemaName": "AdminDraftOrderParams",
        "properties": {
          "fields": {
            "type": "string",
            "title": "fields",
            "description": "Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields."
          }
        }
      },
      "AdminDraftOrderPreview": {
        "type": "object",
        "description": "The draft order preview's details.",
        "x-schemaName": "AdminDraftOrderPreview",
        "required": [
          "return_requested_total",
          "order_change",
          "status",
          "id",
          "version",
          "region_id",
          "customer_id",
          "sales_channel_id",
          "email",
          "currency_code",
          "payment_collections",
          "payment_status",
          "fulfillment_status",
          "summary",
          "created_at",
          "updated_at",
          "original_item_total",
          "original_item_subtotal",
          "original_item_tax_total",
          "item_total",
          "item_subtotal",
          "item_tax_total",
          "item_discount_total",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_total",
          "discount_tax_total",
          "gift_card_total",
          "gift_card_tax_total",
          "shipping_total",
          "shipping_subtotal",
          "shipping_tax_total",
          "shipping_discount_total",
          "original_shipping_total",
          "original_shipping_subtotal",
          "original_shipping_tax_total",
          "credit_line_total"
        ],
        "properties": {
          "return_requested_total": {
            "type": "number",
            "title": "return_requested_total",
            "description": "The total of the requested return."
          },
          "order_change": {
            "$ref": "#/components/schemas/AdminOrderChange"
          },
          "items": {
            "type": "array",
            "description": "The order's items.",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "description": "An order's item.",
                  "x-schemaName": "BaseOrderLineItem",
                  "required": [
                    "id",
                    "title",
                    "subtitle",
                    "thumbnail",
                    "variant_id",
                    "product_id",
                    "product_title",
                    "product_description",
                    "product_subtitle",
                    "product_type",
                    "product_collection",
                    "product_handle",
                    "variant_sku",
                    "variant_barcode",
                    "variant_title",
                    "variant_option_values",
                    "requires_shipping",
                    "is_discountable",
                    "is_tax_inclusive",
                    "unit_price",
                    "quantity",
                    "detail",
                    "created_at",
                    "updated_at",
                    "metadata",
                    "original_total",
                    "original_subtotal",
                    "original_tax_total",
                    "item_total",
                    "item_subtotal",
                    "item_tax_total",
                    "total",
                    "subtotal",
                    "tax_total",
                    "discount_total",
                    "discount_tax_total",
                    "refundable_total",
                    "refundable_total_per_unit"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The item's ID."
                    },
                    "title": {
                      "type": "string",
                      "title": "title",
                      "description": "The item's title."
                    },
                    "subtitle": {
                      "type": "string",
                      "title": "subtitle",
                      "description": "The item's subtitle."
                    },
                    "thumbnail": {
                      "type": "string",
                      "title": "thumbnail",
                      "description": "The URL of the item's thumbnail."
                    },
                    "variant": {
                      "$ref": "#/components/schemas/BaseProductVariant"
                    },
                    "variant_id": {
                      "type": "string",
                      "title": "variant_id",
                      "description": "The ID of the associated variant."
                    },
                    "product": {
                      "$ref": "#/components/schemas/AdminProduct"
                    },
                    "product_id": {
                      "type": "string",
                      "title": "product_id",
                      "description": "The ID of the associated product."
                    },
                    "product_title": {
                      "type": "string",
                      "title": "product_title",
                      "description": "The title of the item's product."
                    },
                    "product_description": {
                      "type": "string",
                      "title": "product_description",
                      "description": "The description of the item's product."
                    },
                    "product_subtitle": {
                      "type": "string",
                      "title": "product_subtitle",
                      "description": "The subtitle of the item's product."
                    },
                    "product_type": {
                      "type": "string",
                      "title": "product_type",
                      "description": "The ID of type of the item's product."
                    },
                    "product_collection": {
                      "type": "string",
                      "title": "product_collection",
                      "description": "The ID of collection of the item's product."
                    },
                    "product_handle": {
                      "type": "string",
                      "title": "product_handle",
                      "description": "The handle of the item's product."
                    },
                    "variant_sku": {
                      "type": "string",
                      "title": "variant_sku",
                      "description": "The SKU of the item's variant."
                    },
                    "variant_barcode": {
                      "type": "string",
                      "title": "variant_barcode",
                      "description": "The barcode of the item's variant."
                    },
                    "variant_title": {
                      "type": "string",
                      "title": "variant_title",
                      "description": "The title of the item's variant."
                    },
                    "variant_option_values": {
                      "type": "object",
                      "description": "The option values of the item's variant as key-value pairs. The key is the title of an option, and the value is the option's value."
                    },
                    "requires_shipping": {
                      "type": "boolean",
                      "title": "requires_shipping",
                      "description": "Whether the item requires shipping."
                    },
                    "is_discountable": {
                      "type": "boolean",
                      "title": "is_discountable",
                      "description": "Whether the item is discountable."
                    },
                    "is_tax_inclusive": {
                      "type": "boolean",
                      "title": "is_tax_inclusive",
                      "description": "Whether the item's price includes taxes."
                    },
                    "compare_at_unit_price": {
                      "type": "number",
                      "title": "compare_at_unit_price",
                      "description": "The original price of the item before a promotion or sale."
                    },
                    "unit_price": {
                      "type": "number",
                      "title": "unit_price",
                      "description": "The item's unit price."
                    },
                    "quantity": {
                      "type": "number",
                      "title": "quantity",
                      "description": "The item's quantity."
                    },
                    "tax_lines": {
                      "type": "array",
                      "description": "The item's tax lines.",
                      "items": {
                        "$ref": "#/components/schemas/BaseOrderLineItemTaxLine"
                      }
                    },
                    "adjustments": {
                      "type": "array",
                      "description": "The item's adjustments.",
                      "items": {
                        "$ref": "#/components/schemas/BaseOrderLineItemAdjustment"
                      }
                    },
                    "detail": {
                      "$ref": "#/components/schemas/BaseOrderItemDetail"
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "created_at",
                      "description": "The date the item was created."
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "updated_at",
                      "description": "The date the item was updated."
                    },
                    "metadata": {
                      "type": "object",
                      "description": "The item's metadata, can hold custom key-value pairs.",
                      "externalDocs": {
                        "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                        "description": "Learn how to manage metadata"
                      }
                    },
                    "original_total": {
                      "type": "number",
                      "title": "original_total",
                      "description": "The item's total including taxes, excluding promotions."
                    },
                    "original_subtotal": {
                      "type": "number",
                      "title": "original_subtotal",
                      "description": "The item's total excluding taxes, including promotions."
                    },
                    "original_tax_total": {
                      "type": "number",
                      "title": "original_tax_total",
                      "description": "The tax total of the item excluding promotions."
                    },
                    "item_total": {
                      "type": "number",
                      "title": "item_total",
                      "description": "The item's total for a single unit including taxes and promotions."
                    },
                    "item_subtotal": {
                      "type": "number",
                      "title": "item_subtotal",
                      "description": "The item's total for a single unit excluding taxes, including promotions."
                    },
                    "item_tax_total": {
                      "type": "number",
                      "title": "item_tax_total",
                      "description": "The tax total for a single unit of the item including promotions."
                    },
                    "total": {
                      "type": "number",
                      "title": "total",
                      "description": "The item's total including taxes and promotions."
                    },
                    "subtotal": {
                      "type": "number",
                      "title": "subtotal",
                      "description": "The item's total excluding taxes, including promotions."
                    },
                    "tax_total": {
                      "type": "number",
                      "title": "tax_total",
                      "description": "The tax total of the item including promotions."
                    },
                    "discount_total": {
                      "type": "number",
                      "title": "discount_total",
                      "description": "The total of the item's discount / promotion."
                    },
                    "discount_tax_total": {
                      "type": "number",
                      "title": "discount_tax_total",
                      "description": "The tax total of the item's discount / promotion"
                    },
                    "refundable_total": {
                      "type": "number",
                      "title": "refundable_total",
                      "description": "The total refundable amount of the item's total."
                    },
                    "refundable_total_per_unit": {
                      "type": "number",
                      "title": "refundable_total_per_unit",
                      "description": "The total refundable amount of the item's total for a single unit."
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "An order's item.",
                  "properties": {
                    "actions": {
                      "type": "array",
                      "description": "The actions applied on an item.",
                      "items": {
                        "type": "object",
                        "description": "The action's details.",
                        "x-schemaName": "BaseOrderChangeAction"
                      }
                    }
                  }
                }
              ]
            }
          },
          "shipping_methods": {
            "type": "array",
            "description": "The order's shipping methods.",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "description": "The shipping method's details.",
                  "x-schemaName": "BaseOrderShippingMethod",
                  "required": [
                    "id",
                    "order_id",
                    "name",
                    "amount",
                    "is_tax_inclusive",
                    "shipping_option_id",
                    "data",
                    "metadata",
                    "original_total",
                    "original_subtotal",
                    "original_tax_total",
                    "total",
                    "subtotal",
                    "tax_total",
                    "discount_total",
                    "discount_tax_total",
                    "created_at",
                    "updated_at"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The shipping method's ID."
                    },
                    "order_id": {
                      "type": "string",
                      "title": "order_id",
                      "description": "The ID of the order this shipping method belongs to."
                    },
                    "name": {
                      "type": "string",
                      "title": "name",
                      "description": "The shipping method's name."
                    },
                    "description": {
                      "type": "string",
                      "title": "description",
                      "description": "The shipping method's description."
                    },
                    "amount": {
                      "type": "number",
                      "title": "amount",
                      "description": "The shipping method's amount."
                    },
                    "is_tax_inclusive": {
                      "type": "boolean",
                      "title": "is_tax_inclusive",
                      "description": "Whether the shipping method's amount is tax inclusive."
                    },
                    "shipping_option_id": {
                      "type": "string",
                      "title": "shipping_option_id",
                      "description": "The ID of the shipping option this method was created from."
                    },
                    "data": {
                      "type": "object",
                      "description": "The data relevant for the fulfillment provider to process this shipment.",
                      "externalDocs": {
                        "url": "https://docs.medusajs.com/resources/commerce-modules/order/concepts#data-property"
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "description": "The shipping method's metadata, can hold custom key-value pairs.",
                      "externalDocs": {
                        "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                        "description": "Learn how to manage metadata"
                      }
                    },
                    "tax_lines": {
                      "type": "array",
                      "description": "The shipping method's tax lines.",
                      "items": {
                        "$ref": "#/components/schemas/BaseOrderShippingMethodTaxLine"
                      }
                    },
                    "adjustments": {
                      "type": "array",
                      "description": "The shipping method's adjustments.",
                      "items": {
                        "$ref": "#/components/schemas/BaseOrderShippingMethodAdjustment"
                      }
                    },
                    "original_total": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "original_total",
                          "description": "The shipping method's total including taxes, excluding promotions."
                        },
                        {
                          "type": "number",
                          "title": "original_total",
                          "description": "The shipping method's total including taxes, excluding promotions."
                        }
                      ]
                    },
                    "original_subtotal": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "original_subtotal",
                          "description": "The shipping method's total excluding taxes, including promotions."
                        },
                        {
                          "type": "number",
                          "title": "original_subtotal",
                          "description": "The shipping method's total excluding taxes, including promotions."
                        }
                      ]
                    },
                    "original_tax_total": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "original_tax_total",
                          "description": "The tax total of the shipping method excluding promotions."
                        },
                        {
                          "type": "number",
                          "title": "original_tax_total",
                          "description": "The tax total of the shipping method excluding promotions."
                        }
                      ]
                    },
                    "total": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "total",
                          "description": "The shipping method's total including taxes and promotions."
                        },
                        {
                          "type": "number",
                          "title": "total",
                          "description": "The shipping method's total including taxes and promotions."
                        }
                      ]
                    },
                    "subtotal": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "subtotal",
                          "description": "The shipping method's total excluding taxes, including promotions."
                        },
                        {
                          "type": "number",
                          "title": "subtotal",
                          "description": "The shipping method's total excluding taxes, including promotions."
                        }
                      ]
                    },
                    "tax_total": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "tax_total",
                          "description": "The tax total of the shipping method including promotions."
                        },
                        {
                          "type": "number",
                          "title": "tax_total",
                          "description": "The tax total of the shipping method including promotions."
                        }
                      ]
                    },
                    "discount_total": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "discount_total",
                          "description": "The total of the shipping method's promotion."
                        },
                        {
                          "type": "number",
                          "title": "discount_total",
                          "description": "The total of the shipping method's promotion."
                        }
                      ]
                    },
                    "discount_tax_total": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "discount_tax_total",
                          "description": "The tax total of the shipping method's promotion."
                        },
                        {
                          "type": "number",
                          "title": "discount_tax_total",
                          "description": "The shipping method's discount tax total."
                        }
                      ]
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "created_at",
                      "description": "The date the shipping method was created."
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "updated_at",
                      "description": "The date the shipping method was updated."
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "The shipping method's details.",
                  "properties": {
                    "actions": {
                      "type": "array",
                      "description": "The actions applied on the shipping method.",
                      "items": {
                        "type": "object",
                        "description": "The action's details.",
                        "x-schemaName": "BaseOrderChangeAction"
                      }
                    }
                  }
                }
              ]
            }
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The order's currency code."
          },
          "version": {
            "type": "number",
            "title": "version",
            "description": "The order's version when this preview is applied."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The order's ID."
          },
          "region_id": {
            "type": "string",
            "title": "region_id",
            "description": "The ID of the order's associated region."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that placed the order."
          },
          "sales_channel_id": {
            "type": "string",
            "title": "sales_channel_id",
            "description": "The ID of the sales channel that the order was placed in."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The email of the customer that placed the order.",
            "format": "email"
          },
          "display_id": {
            "type": "number",
            "title": "display_id",
            "description": "The order's display ID."
          },
          "shipping_address": {
            "$ref": "#/components/schemas/AdminOrderAddress"
          },
          "billing_address": {
            "$ref": "#/components/schemas/AdminOrderAddress"
          },
          "payment_collections": {
            "type": "array",
            "description": "The order's payment collections.",
            "items": {
              "$ref": "#/components/schemas/AdminPaymentCollection"
            }
          },
          "payment_status": {
            "type": "string",
            "description": "The order's payment status.",
            "enum": [
              "canceled",
              "not_paid",
              "awaiting",
              "authorized",
              "partially_authorized",
              "captured",
              "partially_captured",
              "partially_refunded",
              "refunded",
              "requires_action"
            ]
          },
          "fulfillments": {
            "type": "array",
            "description": "The order's fulfillments.",
            "items": {
              "$ref": "#/components/schemas/AdminOrderFulfillment"
            }
          },
          "fulfillment_status": {
            "type": "string",
            "description": "The order's fulfillment status.",
            "enum": [
              "canceled",
              "not_fulfilled",
              "partially_fulfilled",
              "fulfilled",
              "partially_shipped",
              "shipped",
              "partially_delivered",
              "delivered"
            ]
          },
          "transactions": {
            "type": "array",
            "description": "The order's transactions.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderTransaction"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/BaseOrderSummary"
          },
          "metadata": {
            "type": "object",
            "description": "The order's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the order was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the order was updated."
          },
          "original_item_total": {
            "type": "number",
            "title": "original_item_total",
            "description": "The total of the order's items including taxes, excluding promotions."
          },
          "original_item_subtotal": {
            "type": "number",
            "title": "original_item_subtotal",
            "description": "The total of the order's items excluding taxes, including promotions."
          },
          "original_item_tax_total": {
            "type": "number",
            "title": "original_item_tax_total",
            "description": "The tax total of the order's items excluding promotions."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The total of the order's items including taxes and promotions."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The total of the order's items excluding taxes, including promotions."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The tax total of the order's items including promotions."
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The order's total excluding promotions, including taxes."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The order's total excluding taxes, including promotions."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The order's tax total, excluding promotions."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The order's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The order's total excluding taxes, including promotions."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The order's tax total including promotions."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The order's discount or promotions total."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The tax total of order's discount or promotion."
          },
          "gift_card_total": {
            "type": "number",
            "title": "gift_card_total",
            "description": "The order's gift card total."
          },
          "gift_card_tax_total": {
            "type": "number",
            "title": "gift_card_tax_total",
            "description": "The tax total of the order's gift card."
          },
          "shipping_total": {
            "type": "number",
            "title": "shipping_total",
            "description": "The order's shipping total including taxes and promotions."
          },
          "shipping_subtotal": {
            "type": "number",
            "title": "shipping_subtotal",
            "description": "The order's shipping total excluding taxes, including promotions."
          },
          "shipping_tax_total": {
            "type": "number",
            "title": "shipping_tax_total",
            "description": "The tax total of the order's shipping."
          },
          "original_shipping_total": {
            "type": "number",
            "title": "original_shipping_total",
            "description": "The order's shipping total including taxes, excluding promotions."
          },
          "original_shipping_subtotal": {
            "type": "number",
            "title": "original_shipping_subtotal",
            "description": "The order's shipping total excluding taxes, including promotions."
          },
          "original_shipping_tax_total": {
            "type": "number",
            "title": "original_shipping_tax_total",
            "description": "The tax total of the order's shipping excluding promotions."
          },
          "customer": {
            "$ref": "#/components/schemas/AdminCustomer"
          },
          "sales_channel": {
            "$ref": "#/components/schemas/AdminSalesChannel"
          },
          "status": {
            "type": "string",
            "title": "status",
            "description": "The order's status."
          },
          "region": {
            "$ref": "#/components/schemas/AdminRegion"
          },
          "credit_lines": {
            "type": "array",
            "description": "The order preview's credit lines.",
            "items": {
              "$ref": "#/components/schemas/OrderCreditLine"
            }
          },
          "credit_line_total": {
            "type": "number",
            "title": "credit_line_total",
            "description": "The draft order preview's credit line total."
          },
          "item_discount_total": {
            "type": "number",
            "title": "item_discount_total",
            "description": "The total discount amount applied on the draft order's items."
          },
          "shipping_discount_total": {
            "type": "number",
            "title": "shipping_discount_total",
            "description": "The total discount amount applied on the draft order's shipping."
          },
          "custom_display_id": {
            "type": "string",
            "title": "custom_display_id",
            "description": "The custom display ID of the draft order.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/order/custom-display-id"
            }
          }
        }
      },
      "AdminDraftOrderPreviewResponse": {
        "type": "object",
        "description": "The details of the preview on the draft order.",
        "x-schemaName": "AdminDraftOrderPreviewResponse",
        "required": [
          "draft_order_preview"
        ],
        "properties": {
          "draft_order_preview": {
            "$ref": "#/components/schemas/AdminDraftOrderPreview"
          }
        }
      },
      "AdminDraftOrderResponse": {
        "type": "object",
        "description": "The draft order's details.",
        "x-schemaName": "AdminDraftOrderResponse",
        "required": [
          "draft_order"
        ],
        "properties": {
          "draft_order": {
            "$ref": "#/components/schemas/AdminDraftOrder"
          }
        }
      },
      "AdminExchange": {
        "type": "object",
        "description": "The exchange's details.",
        "x-schemaName": "AdminExchange",
        "required": [
          "id",
          "order_id",
          "created_at",
          "updated_at",
          "canceled_at",
          "deleted_at",
          "additional_items",
          "return_items"
        ],
        "properties": {
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order the exchange is created for."
          },
          "return_items": {
            "type": "array",
            "description": "The items returned (inbound) by the exchange.",
            "items": {
              "$ref": "#/components/schemas/AdminReturnItem"
            }
          },
          "additional_items": {
            "type": "array",
            "description": "The new items (outbound) sent by the exchange.",
            "items": {
              "$ref": "#/components/schemas/BaseExchangeItem"
            }
          },
          "no_notification": {
            "type": "boolean",
            "title": "no_notification",
            "description": "Whether to send the customer notifications when the exchange is updated."
          },
          "difference_due": {
            "type": "number",
            "title": "difference_due",
            "description": "The amount to be exchanged or refunded. If the amount is negative, it must be refunded. If positive, additional payment is required from the customer."
          },
          "return": {
            "$ref": "#/components/schemas/AdminReturn"
          },
          "return_id": {
            "type": "string",
            "title": "return_id",
            "description": "The ID of the associated exchange."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The exchange's ID."
          },
          "display_id": {
            "type": "string",
            "title": "display_id",
            "description": "The exchange's display ID."
          },
          "shipping_methods": {
            "type": "array",
            "description": "The shipping methods used to send the new (outbound) items.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderShippingMethod"
            }
          },
          "transactions": {
            "type": "array",
            "description": "The exchange's transactions.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/order/transactions"
            },
            "items": {
              "$ref": "#/components/schemas/BaseOrderTransaction"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The exchange's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date that the exchange was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date that the exchange was updated."
          },
          "order_version": {
            "type": "string",
            "title": "order_version",
            "description": "The version of the order once the exchange is applied."
          },
          "created_by": {
            "type": "string",
            "title": "created_by",
            "description": "The ID of the user that created the exchange."
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date the exchange was canceled.",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the exchange was deleted."
          },
          "order": {
            "$ref": "#/components/schemas/BaseOrder"
          },
          "allow_backorder": {
            "type": "boolean",
            "title": "allow_backorder",
            "description": "Whether variants that are out-of-stock can still be added as additional or outbound items."
          }
        }
      },
      "AdminExchangeAddOutboundShipping": {
        "type": "object",
        "description": "The outbound shipping method's details.",
        "x-schemaName": "AdminExchangeAddOutboundShipping",
        "required": [
          "shipping_option_id"
        ],
        "properties": {
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the associated shipping option."
          },
          "custom_amount": {
            "type": "number",
            "title": "custom_amount",
            "description": "Set a custom amount for the shipping method."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The shipping method's description."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed by admin users only."
          },
          "metadata": {
            "type": "object",
            "description": "The exchange's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminExchangeDeleteResponse": {
        "type": "object",
        "description": "The details of deleting an exchange.",
        "x-schemaName": "AdminExchangeDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The exchange's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "exchange"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the exchange was deleted."
          }
        }
      },
      "AdminExchangeOrderResponse": {
        "type": "object",
        "description": "The exchange's details.",
        "x-schemaName": "AdminExchangeOrderResponse",
        "required": [
          "order",
          "exchange"
        ],
        "properties": {
          "order": {
            "$ref": "#/components/schemas/Order"
          },
          "exchange": {
            "$ref": "#/components/schemas/AdminExchange"
          }
        }
      },
      "AdminExchangePreviewResponse": {
        "type": "object",
        "description": "A preview of the order once the exchange is applied.",
        "x-schemaName": "AdminExchangePreviewResponse",
        "required": [
          "order_preview",
          "exchange"
        ],
        "properties": {
          "order_preview": {
            "$ref": "#/components/schemas/AdminOrderPreview"
          },
          "exchange": {
            "$ref": "#/components/schemas/AdminExchange"
          }
        }
      },
      "AdminExchangeRequestResponse": {
        "type": "object",
        "description": "The details of a requested exchange.",
        "x-schemaName": "AdminExchangeRequestResponse",
        "required": [
          "return",
          "order_preview",
          "exchange"
        ],
        "properties": {
          "return": {
            "$ref": "#/components/schemas/AdminReturn"
          },
          "order_preview": {
            "$ref": "#/components/schemas/AdminOrderPreview"
          },
          "exchange": {
            "$ref": "#/components/schemas/AdminExchange"
          }
        }
      },
      "AdminExchangeResponse": {
        "type": "object",
        "description": "The exchange's details.",
        "x-schemaName": "AdminExchangeResponse",
        "required": [
          "exchange"
        ],
        "properties": {
          "exchange": {
            "$ref": "#/components/schemas/AdminExchange"
          }
        }
      },
      "AdminExchangeReturnResponse": {
        "type": "object",
        "description": "The details of an exchange's return.",
        "x-schemaName": "AdminExchangeReturnResponse",
        "required": [
          "order_preview",
          "return"
        ],
        "properties": {
          "order_preview": {
            "$ref": "#/components/schemas/AdminOrderPreview"
          },
          "return": {
            "$ref": "#/components/schemas/AdminReturn"
          }
        }
      },
      "AdminExchangeUpdateInboundShipping": {
        "type": "object",
        "description": "The details of the shipping method to update.",
        "x-schemaName": "AdminExchangeUpdateInboundShipping",
        "properties": {
          "custom_amount": {
            "type": "number",
            "title": "custom_amount",
            "description": "The shipping method's custom amount."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed by admin users only."
          },
          "metadata": {
            "type": "object",
            "description": "The exchange's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminExchangeUpdateOutboundShipping": {
        "type": "object",
        "description": "The details of the shipping method to update.",
        "x-schemaName": "AdminExchangeUpdateOutboundShipping",
        "properties": {
          "custom_amount": {
            "type": "number",
            "title": "custom_amount",
            "description": "The shipping method's custom amount."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed by admin users only."
          },
          "metadata": {
            "type": "object",
            "description": "The exchange's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminExportOrderResponse": {
        "type": "object",
        "description": "The details of the order export.",
        "x-schemaName": "AdminExportOrderResponse",
        "required": [
          "transaction_id"
        ],
        "properties": {
          "transaction_id": {
            "type": "string",
            "title": "transaction_id",
            "description": "The ID of the workflow execution's transaction. Use it to check the status of the export by sending a GET request to `/admin/workflows-executions/export-orders/:transaction-id`"
          }
        }
      },
      "AdminExportProductResponse": {
        "type": "object",
        "description": "The details of the product export.",
        "x-schemaName": "AdminExportProductResponse",
        "required": [
          "transaction_id"
        ],
        "properties": {
          "transaction_id": {
            "type": "string",
            "title": "transaction_id",
            "description": "The ID of the workflow execution's transaction. Use it to check the status of the export by sending a GET request to `/admin/workflows-executions/export-products/:transaction-id`"
          }
        }
      },
      "AdminFile": {
        "type": "object",
        "description": "A file's details.",
        "x-schemaName": "AdminFile",
        "required": [
          "id",
          "url"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The file's ID."
          },
          "url": {
            "type": "string",
            "title": "url",
            "description": "The file's URL."
          }
        }
      },
      "AdminFileListResponse": {
        "type": "object",
        "description": "The list of uploaded files.",
        "x-schemaName": "AdminFileListResponse",
        "required": [
          "files"
        ],
        "properties": {
          "files": {
            "type": "array",
            "description": "The list of uploaded files.",
            "items": {
              "$ref": "#/components/schemas/AdminFile"
            }
          }
        }
      },
      "AdminFileResponse": {
        "type": "object",
        "description": "A file's details.",
        "x-schemaName": "AdminFileResponse",
        "required": [
          "file"
        ],
        "properties": {
          "file": {
            "$ref": "#/components/schemas/AdminFile"
          }
        }
      },
      "AdminFulfillment": {
        "type": "object",
        "description": "The fulfillment's details.",
        "x-schemaName": "AdminFulfillment",
        "required": [
          "id",
          "location_id",
          "provider_id",
          "shipping_option_id",
          "provider",
          "delivery_address",
          "items",
          "labels",
          "packed_at",
          "shipped_at",
          "delivered_at",
          "canceled_at",
          "data",
          "metadata",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The fulfillment's ID."
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the location the fulfillment's items are shipped from."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the fulfillment provider handling this fulfillment."
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the shipping option this fulfillment is created for."
          },
          "provider": {
            "$ref": "#/components/schemas/AdminFulfillmentProvider"
          },
          "delivery_address": {
            "$ref": "#/components/schemas/AdminFulfillmentAddress"
          },
          "items": {
            "type": "array",
            "description": "The fulfillment's items.",
            "items": {
              "$ref": "#/components/schemas/AdminFulfillmentItem"
            }
          },
          "labels": {
            "type": "array",
            "description": "The fulfillment's shipment labels.",
            "items": {
              "$ref": "#/components/schemas/AdminFulfillmentLabel"
            }
          },
          "packed_at": {
            "type": "string",
            "title": "packed_at",
            "description": "The date the fulfillment was packed at."
          },
          "shipped_at": {
            "type": "string",
            "title": "shipped_at",
            "description": "The date the fulfillment was shipped at."
          },
          "delivered_at": {
            "type": "string",
            "title": "delivered_at",
            "description": "The date the fulfillment was delivered at."
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date the fulfillment was canceled at."
          },
          "data": {
            "type": "object",
            "description": "The fulfillment's data, useful for the third-party provider handling the fulfillment.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The fulfillment's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the fulfillment was created at."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the fulfillment was updated at."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the fulfillment was deleted at."
          }
        }
      },
      "AdminFulfillmentAddress": {
        "type": "object",
        "description": "An address's details.",
        "x-schemaName": "AdminFulfillmentAddress",
        "required": [
          "id",
          "fulfillment_id",
          "company",
          "first_name",
          "last_name",
          "address_1",
          "address_2",
          "city",
          "country_code",
          "province",
          "postal_code",
          "phone",
          "metadata",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The address's ID."
          },
          "fulfillment_id": {
            "type": "string",
            "title": "fulfillment_id",
            "description": "The ID of the fulfillment that the address belongs to."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The address's company."
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The address's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The address's last name."
          },
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The address's second line."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The address's city."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The address's country code."
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The address's lower-case ISO 3166-2 province code.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The address's postal code."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The address's phone."
          },
          "metadata": {
            "type": "object",
            "description": "The address's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the address was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the address was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the address was deleted."
          }
        }
      },
      "AdminFulfillmentDeliveryAddress": {
        "type": "object",
        "description": "The address to deliver the items to.",
        "properties": {
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The customer's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The customer's last name."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The customer's phone."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The delivery address's company."
          },
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The delivery address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The delivery address's second line."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The delivery address's city."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The delivery address's country code."
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The delivery address's ISO 3166-2 province code. Must be lower-case.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The delivery address's postal code."
          },
          "metadata": {
            "type": "object",
            "description": "The delivery address's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        },
        "x-schemaName": "AdminFulfillmentDeliveryAddress"
      },
      "AdminFulfillmentItem": {
        "type": "object",
        "description": "The details of a fulfillment's item.",
        "x-schemaName": "AdminFulfillmentItem",
        "required": [
          "id",
          "title",
          "quantity",
          "sku",
          "barcode",
          "line_item_id",
          "inventory_item_id",
          "fulfillment_id",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The item's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The item's title."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity to be fulfilled."
          },
          "sku": {
            "type": "string",
            "title": "sku",
            "description": "The item's SKU."
          },
          "barcode": {
            "type": "string",
            "title": "barcode",
            "description": "The item's barcode."
          },
          "line_item_id": {
            "type": "string",
            "title": "line_item_id",
            "description": "The ID of the order's line item to be fulfilled."
          },
          "inventory_item_id": {
            "type": "string",
            "title": "inventory_item_id",
            "description": "The ID of the inventory item of the underlying product variant."
          },
          "fulfillment_id": {
            "type": "string",
            "title": "fulfillment_id",
            "description": "The ID of the fulfillment the item belongs to."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the item was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the item was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the item was deleted."
          }
        }
      },
      "AdminFulfillmentLabel": {
        "type": "object",
        "description": "The details of a fulfillmet's shipment label.",
        "x-schemaName": "AdminFulfillmentLabel",
        "required": [
          "id",
          "tracking_number",
          "tracking_url",
          "label_url",
          "fulfillment_id",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The label's ID."
          },
          "tracking_number": {
            "type": "string",
            "title": "tracking_number",
            "description": "The label's tracking number."
          },
          "tracking_url": {
            "type": "string",
            "title": "tracking_url",
            "description": "The label's tracking URL."
          },
          "label_url": {
            "type": "string",
            "title": "label_url",
            "description": "The label's URL."
          },
          "fulfillment_id": {
            "type": "string",
            "title": "fulfillment_id",
            "description": "The ID of the fulfillment the label is associated with."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the label was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the label was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the label was deleted."
          }
        }
      },
      "AdminFulfillmentProvider": {
        "type": "object",
        "description": "The fulfillment provider's details.",
        "x-schemaName": "AdminFulfillmentProvider",
        "required": [
          "id",
          "is_enabled"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The provider's ID."
          },
          "is_enabled": {
            "type": "boolean",
            "title": "is_enabled",
            "description": "The provider's is enabled."
          }
        }
      },
      "AdminFulfillmentProviderListResponse": {
        "type": "object",
        "description": "The paginated list of fulfillment providers.",
        "x-schemaName": "AdminFulfillmentProviderListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "fulfillment_providers"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total count of items."
          },
          "fulfillment_providers": {
            "type": "array",
            "description": "The list of fulfillment providers.",
            "items": {
              "$ref": "#/components/schemas/AdminFulfillmentProvider"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminFulfillmentProviderOption": {
        "type": "object",
        "description": "The fulfillment option's details.",
        "x-schemaName": "AdminFulfillmentProviderOption",
        "required": [
          "id",
          "is_return"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The fulfillment option's ID."
          },
          "is_return": {
            "type": "boolean",
            "title": "is_return",
            "description": "Whether the fulfillment option is used for returns."
          }
        }
      },
      "AdminFulfillmentProviderOptionsListResponse": {
        "type": "object",
        "description": "The paginated list of fulfillment options.",
        "x-schemaName": "AdminFulfillmentProviderOptionsListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "fulfillment_options"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items."
          },
          "fulfillment_options": {
            "type": "array",
            "description": "The list of fulfillment options.",
            "items": {
              "$ref": "#/components/schemas/AdminFulfillmentProviderOption"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminFulfillmentResponse": {
        "type": "object",
        "description": "A fulfillment's details.",
        "x-schemaName": "AdminFulfillmentResponse",
        "required": [
          "fulfillment"
        ],
        "properties": {
          "fulfillment": {
            "$ref": "#/components/schemas/AdminFulfillment"
          }
        }
      },
      "AdminFulfillmentSet": {
        "type": "object",
        "description": "The service zone's fulfillment set.",
        "x-schemaName": "AdminFulfillmentSet",
        "required": [
          "id",
          "name",
          "type",
          "location",
          "service_zones",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The fulfillment set's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The fulfillment set's name."
          },
          "type": {
            "type": "string",
            "title": "type",
            "description": "The fulfillment set's type."
          },
          "location": {
            "$ref": "#/components/schemas/AdminStockLocation"
          },
          "service_zones": {
            "type": "array",
            "description": "The fulfillment set's service zones.",
            "items": {
              "$ref": "#/components/schemas/AdminServiceZone"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The fulfillment set's created at."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The fulfillment set's updated at."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The fulfillment set's deleted at."
          }
        }
      },
      "AdminFulfillmentSetDeleteResponse": {
        "type": "object",
        "description": "The deletion details.",
        "x-schemaName": "AdminFulfillmentSetDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The fulfillment set's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "fulfillment_set"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the fulfillment set was deleted."
          }
        }
      },
      "AdminFulfillmentSetResponse": {
        "type": "object",
        "description": "The fulfillment set's details.",
        "x-schemaName": "AdminFulfillmentSetResponse",
        "required": [
          "fulfillment_set"
        ],
        "properties": {
          "fulfillment_set": {
            "$ref": "#/components/schemas/AdminFulfillmentSet"
          }
        }
      },
      "AdminGeoZone": {
        "type": "object",
        "description": "The geo zone's geo zones.",
        "x-schemaName": "AdminGeoZone",
        "required": [
          "id",
          "type",
          "country_code",
          "province_code",
          "city",
          "postal_expression",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The geo zone's ID."
          },
          "type": {
            "type": "string",
            "description": "The geo zone's type.",
            "enum": [
              "country",
              "province",
              "city",
              "zip"
            ]
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The geo zone's country code."
          },
          "province_code": {
            "type": "string",
            "title": "province_code",
            "description": "The geo zone's lower-case ISO 3166-2 province code.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The geo zone's city."
          },
          "postal_expression": {
            "type": "object",
            "description": "The geo zone's postal expression."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The geo zone's created at."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The geo zone's updated at."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The geo zone's deleted at."
          }
        }
      },
      "AdminGiftCard": {
        "type": "object",
        "description": "The gift card's details.",
        "x-schemaName": "AdminGiftCard",
        "required": [
          "line_item",
          "customer",
          "id",
          "code",
          "status",
          "value",
          "currency_code",
          "customer_id",
          "reference_id",
          "note",
          "reference",
          "expires_at",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "line_item": {
            "$ref": "#/components/schemas/AdminOrderLineItem"
          },
          "customer": {
            "$ref": "#/components/schemas/AdminCustomer"
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The gift card's ID."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The gift card's code."
          },
          "status": {
            "type": "string",
            "description": "The gift card's status.",
            "enum": [
              "pending",
              "redeemed"
            ]
          },
          "value": {
            "type": "number",
            "title": "value",
            "description": "The gift card's amount."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The gift card's currency code.",
            "example": "usd"
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer associated with the gift card."
          },
          "reference_id": {
            "type": "string",
            "title": "reference_id",
            "description": "The gift card's reference ID."
          },
          "note": {
            "type": "string",
            "title": "note",
            "description": "The gift card's note."
          },
          "reference": {
            "type": "string",
            "title": "reference",
            "description": "The gift card's reference."
          },
          "expires_at": {
            "type": "string",
            "title": "expires_at",
            "description": "The date the gift card expires at."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the gift card was created at."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the gift card was updated at."
          }
        }
      },
      "AdminGiftCardResponse": {
        "type": "object",
        "description": "The gift card's details.",
        "x-schemaName": "AdminGiftCardResponse",
        "required": [
          "gift_card"
        ],
        "properties": {
          "gift_card": {
            "$ref": "#/components/schemas/AdminGiftCard"
          }
        }
      },
      "AdminGiftCardsResponse": {
        "type": "object",
        "description": "The paginated list of gift cards.",
        "x-schemaName": "AdminGiftCardsResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "gift_cards"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of gift cards to return."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of gift cards to skip before retrieving the results."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of gift cards available."
          },
          "gift_cards": {
            "type": "array",
            "description": "The list of gift cards.",
            "items": {
              "$ref": "#/components/schemas/AdminGiftCard"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The gift card's estimate count.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminImportProductRequest": {
        "type": "object",
        "description": "The import's details.",
        "x-schemaName": "AdminImportProductRequest",
        "required": [
          "file"
        ],
        "properties": {
          "file": {
            "type": "object",
            "description": "A File to upload.",
            "externalDocs": {
              "url": "https://developer.mozilla.org/en-US/docs/Web/API/File",
              "description": "Learn more about the File API"
            },
            "title": "file"
          }
        }
      },
      "AdminImportProductResponse": {
        "type": "object",
        "description": "The import process's details.",
        "x-schemaName": "AdminImportProductResponse",
        "required": [
          "transaction_id",
          "summary"
        ],
        "properties": {
          "transaction_id": {
            "type": "string",
            "title": "transaction_id",
            "description": "The ID of the workflow execution's transaction. This is useful to confirm the import using the `/admin/products/:transaction-id/import` API route."
          },
          "summary": {
            "type": "object",
            "description": "The import's summary.",
            "required": [
              "toCreate",
              "toUpdate"
            ],
            "properties": {
              "toCreate": {
                "type": "number",
                "title": "toCreate",
                "description": "The number of products that will be created by this import."
              },
              "toUpdate": {
                "type": "number",
                "title": "toUpdate",
                "description": "The number of products that will be updated by this import."
              }
            }
          }
        }
      },
      "AdminImportProducts": {
        "type": "object",
        "description": "The details of the product's import file.",
        "x-schemaName": "AdminImportProducts",
        "required": [
          "file_key",
          "originalname",
          "extension",
          "size",
          "mime_type"
        ],
        "properties": {
          "file_key": {
            "type": "string",
            "title": "file_key",
            "description": "The name of the file as stored in the configured File Module Provider."
          },
          "originalname": {
            "type": "string",
            "title": "originalname",
            "description": "The file's original name."
          },
          "extension": {
            "type": "string",
            "title": "extension",
            "description": "The file's extension.",
            "example": "csv"
          },
          "size": {
            "type": "number",
            "title": "size",
            "description": "The file's size in bytes."
          },
          "mime_type": {
            "type": "string",
            "title": "mime_type",
            "description": "The file's mime type.",
            "example": "text/csv"
          }
        }
      },
      "AdminIndexDetailsResponse": {
        "type": "object",
        "description": "The index's metadata details.",
        "x-schemaName": "AdminIndexDetailsResponse",
        "required": [
          "metadata"
        ],
        "properties": {
          "metadata": {
            "type": "array",
            "description": "The index's metadata.",
            "items": {
              "$ref": "#/components/schemas/IndexInfo"
            }
          }
        }
      },
      "AdminIndexSyncPayload": {
        "type": "object",
        "description": "The details of the index sync.",
        "x-schemaName": "AdminIndexSyncPayload",
        "required": [
          "strategy"
        ],
        "properties": {
          "strategy": {
            "type": "string",
            "description": "The syncing strategy. `full` indicates a full reindex, while `reset` truncates tables and performs a fresh sync.",
            "enum": [
              "full",
              "reset"
            ]
          }
        }
      },
      "AdminInitiateReceiveReturn": {
        "type": "object",
        "description": "The return receival details.",
        "x-schemaName": "AdminInitiateReceiveReturn",
        "properties": {
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The return's description."
          },
          "metadata": {
            "type": "object",
            "description": "The return's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminInitiateReturnRequest": {
        "type": "object",
        "description": "The return's details.",
        "x-schemaName": "AdminInitiateReturnRequest",
        "required": [
          "order_id"
        ],
        "properties": {
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order the return belongs to."
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the location the items are returned to."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The return's description."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          },
          "no_notification": {
            "type": "boolean",
            "title": "no_notification",
            "description": "Whether to send the customer a notification about the created return."
          },
          "metadata": {
            "type": "object",
            "description": "The return's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminInventoryItem": {
        "type": "object",
        "description": "The inventory item's details.",
        "x-schemaName": "AdminInventoryItem",
        "required": [
          "id",
          "requires_shipping"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The inventory item's ID."
          },
          "sku": {
            "type": "string",
            "title": "sku",
            "description": "The inventory item's sku."
          },
          "origin_country": {
            "type": "string",
            "title": "origin_country",
            "description": "The inventory item's origin country."
          },
          "hs_code": {
            "type": "string",
            "title": "hs_code",
            "description": "The inventory item's HS code."
          },
          "requires_shipping": {
            "type": "boolean",
            "title": "requires_shipping",
            "description": "Whether the inventory item requires shipping."
          },
          "mid_code": {
            "type": "string",
            "title": "mid_code",
            "description": "The inventory item's MID code."
          },
          "material": {
            "type": "string",
            "title": "material",
            "description": "The inventory item's material."
          },
          "weight": {
            "type": "number",
            "title": "weight",
            "description": "The inventory item's weight."
          },
          "length": {
            "type": "number",
            "title": "length",
            "description": "The inventory item's length."
          },
          "height": {
            "type": "number",
            "title": "height",
            "description": "The inventory item's height."
          },
          "width": {
            "type": "number",
            "title": "width",
            "description": "The inventory item's width."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The inventory item's title."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The inventory item's description."
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The thumbnail URL of the inventory item."
          },
          "metadata": {
            "type": "object",
            "description": "Custom key-value pairs, used to store additional information about the inventory item."
          },
          "location_levels": {
            "type": "array",
            "description": "The inventory item's location levels.",
            "items": {
              "$ref": "#/components/schemas/AdminInventoryLevel"
            }
          }
        }
      },
      "AdminInventoryItemResponse": {
        "type": "object",
        "description": "The inventory item's details.",
        "x-schemaName": "AdminInventoryItemResponse",
        "required": [
          "inventory_item"
        ],
        "properties": {
          "inventory_item": {
            "$ref": "#/components/schemas/AdminInventoryItem"
          }
        }
      },
      "AdminInventoryLevel": {
        "type": "object",
        "description": "The location level's location levels.",
        "x-schemaName": "AdminInventoryLevel",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "deleted_at",
          "inventory_item_id",
          "location_id",
          "stocked_quantity",
          "reserved_quantity",
          "incoming_quantity",
          "metadata",
          "available_quantity"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The location level's ID."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The location level's created at."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The location level's updated at."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The location level's deleted at."
          },
          "inventory_item_id": {
            "type": "string",
            "title": "inventory_item_id",
            "description": "The location level's inventory item id."
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The location level's location id."
          },
          "stocked_quantity": {
            "type": "number",
            "title": "stocked_quantity",
            "description": "The location level's stocked quantity."
          },
          "reserved_quantity": {
            "type": "number",
            "title": "reserved_quantity",
            "description": "The location level's reserved quantity."
          },
          "incoming_quantity": {
            "type": "number",
            "title": "incoming_quantity",
            "description": "The location level's incoming quantity."
          },
          "metadata": {
            "type": "object",
            "description": "The location level's metadata.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "inventory_item": {
            "type": "object"
          },
          "available_quantity": {
            "type": "number",
            "title": "available_quantity",
            "description": "The location level's available quantity."
          }
        }
      },
      "AdminInvite": {
        "type": "object",
        "description": "The invite's details.",
        "x-schemaName": "AdminInvite",
        "required": [
          "id",
          "email",
          "accepted",
          "token",
          "expires_at",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The invite's ID."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The invite's email.",
            "format": "email"
          },
          "accepted": {
            "type": "boolean",
            "title": "accepted",
            "description": "Whether the invite has been accepted."
          },
          "token": {
            "type": "string",
            "title": "token",
            "description": "The invite's token."
          },
          "expires_at": {
            "type": "string",
            "title": "expires_at",
            "description": "The invite's expiry date.",
            "format": "date-time"
          },
          "metadata": {
            "type": "object",
            "description": "The invite's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the invite was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the invite was updated."
          }
        }
      },
      "AdminInviteAccept": {
        "type": "object",
        "description": "The details of the user to be created.",
        "properties": {
          "email": {
            "type": "string",
            "title": "email",
            "description": "The user's email.",
            "format": "email"
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The user's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The user's last name."
          }
        },
        "x-schemaName": "AdminInviteAccept"
      },
      "AdminInviteResponse": {
        "type": "object",
        "description": "The invite's details.",
        "x-schemaName": "AdminInviteResponse",
        "required": [
          "invite"
        ],
        "properties": {
          "invite": {
            "$ref": "#/components/schemas/AdminInvite"
          }
        }
      },
      "AdminLinkPriceListProducts": {
        "type": "object",
        "description": "The products removal details.",
        "properties": {
          "remove": {
            "type": "array",
            "description": "The products to remove from the price list.",
            "items": {
              "type": "string",
              "title": "remove",
              "description": "The ID of a product."
            }
          }
        },
        "x-schemaName": "AdminLinkPriceListProducts"
      },
      "AdminLocale": {
        "type": "object",
        "description": "The locale's details.",
        "x-schemaName": "AdminLocale",
        "required": [
          "code",
          "name",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "code": {
            "type": "string",
            "title": "code",
            "description": "The locale's code in BCP 47 format.",
            "example": "fr-FR"
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The locale's display name."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date and time at which the locale was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date and time at which the locale was last updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date and time at which the locale was deleted."
          }
        }
      },
      "AdminLocaleListResponse": {
        "type": "object",
        "description": "The list of locales with pagination details.",
        "x-schemaName": "AdminLocaleListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "locales"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of locales returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of locales skipped before retrieving the returned locales."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of locales matching the query."
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          },
          "locales": {
            "type": "array",
            "description": "The list of locales.",
            "items": {
              "$ref": "#/components/schemas/AdminLocale"
            }
          }
        }
      },
      "AdminLocaleResponse": {
        "type": "object",
        "description": "The locale's details.",
        "x-schemaName": "AdminLocaleResponse",
        "required": [
          "locale"
        ],
        "properties": {
          "locale": {
            "$ref": "#/components/schemas/AdminLocale"
          }
        }
      },
      "AdminMarkPaymentCollectionAsPaid": {
        "type": "object",
        "description": "The payment details.",
        "required": [
          "order_id"
        ],
        "properties": {
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order associated with the payment collection."
          }
        },
        "x-schemaName": "AdminMarkPaymentCollectionAsPaid"
      },
      "AdminNotification": {
        "title": "Notification",
        "description": "Notification object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the notification."
          },
          "to": {
            "type": "string",
            "description": "The recipient of the notification."
          },
          "channel": {
            "type": "string",
            "description": "The channel through which the notification is sent (e.g., 'feed', 'email', 'seller_feed')."
          },
          "template": {
            "type": "string",
            "description": "The template used for the notification."
          },
          "data": {
            "type": "object",
            "description": "Additional data associated with the notification."
          },
          "content": {
            "type": "object",
            "description": "The content of the notification."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          }
        }
      },
      "AdminNotificationListResponse": {
        "type": "object",
        "description": "The paginated list of notifications.",
        "x-schemaName": "AdminNotificationListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "notifications"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total count of items."
          },
          "notifications": {
            "type": "array",
            "description": "The list of notifications.",
            "items": {
              "$ref": "#/components/schemas/AdminNotification"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminNotificationResponse": {
        "type": "object",
        "description": "The notification's details.",
        "x-schemaName": "AdminNotificationResponse",
        "required": [
          "notification"
        ],
        "properties": {
          "notification": {
            "$ref": "#/components/schemas/AdminNotification"
          }
        }
      },
      "AdminOrder": {
        "type": "object",
        "description": "The order's details.",
        "x-schemaName": "AdminOrder",
        "required": [
          "payment_collections",
          "items",
          "shipping_methods",
          "status",
          "id",
          "version",
          "region_id",
          "customer_id",
          "sales_channel_id",
          "email",
          "currency_code",
          "payment_status",
          "fulfillment_status",
          "summary",
          "created_at",
          "updated_at",
          "original_item_total",
          "original_item_subtotal",
          "original_item_tax_total",
          "item_total",
          "item_subtotal",
          "item_tax_total",
          "item_discount_total",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_total",
          "discount_tax_total",
          "gift_card_total",
          "gift_card_tax_total",
          "shipping_total",
          "shipping_subtotal",
          "shipping_tax_total",
          "shipping_discount_total",
          "original_shipping_total",
          "original_shipping_subtotal",
          "original_shipping_tax_total",
          "credit_line_total"
        ],
        "properties": {
          "payment_collections": {
            "type": "array",
            "description": "The order's payment collections.",
            "items": {
              "$ref": "#/components/schemas/AdminPaymentCollection"
            }
          },
          "fulfillments": {
            "type": "array",
            "description": "The order's fulfillments.",
            "items": {
              "$ref": "#/components/schemas/AdminOrderFulfillment"
            }
          },
          "sales_channel": {
            "$ref": "#/components/schemas/AdminSalesChannel"
          },
          "customer": {
            "$ref": "#/components/schemas/AdminCustomer"
          },
          "shipping_address": {
            "$ref": "#/components/schemas/AdminOrderAddress"
          },
          "billing_address": {
            "$ref": "#/components/schemas/AdminOrderAddress"
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The order's ID."
          },
          "version": {
            "type": "number",
            "title": "version",
            "description": "The order's version."
          },
          "region_id": {
            "type": "string",
            "title": "region_id",
            "description": "The ID of the region associated with the order."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that placed the order."
          },
          "sales_channel_id": {
            "type": "string",
            "title": "sales_channel_id",
            "description": "The ID of the sales channel the order is placed in."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The email of the customer that placed the order.",
            "format": "email"
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The order's currency code."
          },
          "display_id": {
            "type": "number",
            "title": "display_id",
            "description": "The order's display ID."
          },
          "items": {
            "type": "array",
            "description": "The order's items.",
            "items": {
              "$ref": "#/components/schemas/AdminOrderLineItem"
            }
          },
          "shipping_methods": {
            "type": "array",
            "description": "The order's shipping methods.",
            "items": {
              "$ref": "#/components/schemas/AdminOrderShippingMethod"
            }
          },
          "payment_status": {
            "type": "string",
            "description": "The order's payment status.",
            "enum": [
              "canceled",
              "not_paid",
              "awaiting",
              "authorized",
              "partially_authorized",
              "captured",
              "partially_captured",
              "partially_refunded",
              "refunded",
              "requires_action"
            ]
          },
          "fulfillment_status": {
            "type": "string",
            "description": "The order's fulfillment status.",
            "enum": [
              "canceled",
              "not_fulfilled",
              "partially_fulfilled",
              "fulfilled",
              "partially_shipped",
              "shipped",
              "partially_delivered",
              "delivered"
            ]
          },
          "transactions": {
            "type": "array",
            "description": "The order's transactions.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderTransaction"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/BaseOrderSummary"
          },
          "metadata": {
            "type": "object",
            "description": "The order's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the order was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the order was updated."
          },
          "original_item_total": {
            "type": "number",
            "title": "original_item_total",
            "description": "The total of the order's items including taxes, excluding promotions."
          },
          "original_item_subtotal": {
            "type": "number",
            "title": "original_item_subtotal",
            "description": "The total of the order's items excluding taxes, including promotions."
          },
          "original_item_tax_total": {
            "type": "number",
            "title": "original_item_tax_total",
            "description": "The tax total of the order's items excluding promotions."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The total of the order's items including taxes and promotions."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The total of the order's items excluding taxes, including promotions."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The tax total of the order's items including promotions."
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The order's total excluding promotions, including taxes."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The order's total excluding taxes, including promotions."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The order's tax total, excluding promotions."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The order's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The order's total excluding taxes, including promotions."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The order's tax total including promotions."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The order's discount or promotions total."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The tax total of order's discount or promotion."
          },
          "gift_card_total": {
            "type": "number",
            "title": "gift_card_total",
            "description": "The order's gift card total."
          },
          "gift_card_tax_total": {
            "type": "number",
            "title": "gift_card_tax_total",
            "description": "The tax total of the order's gift card."
          },
          "shipping_total": {
            "type": "number",
            "title": "shipping_total",
            "description": "The order's shipping total including taxes and promotions."
          },
          "shipping_subtotal": {
            "type": "number",
            "title": "shipping_subtotal",
            "description": "The order's shipping total excluding taxes, including promotions."
          },
          "shipping_tax_total": {
            "type": "number",
            "title": "shipping_tax_total",
            "description": "The tax total of the order's shipping."
          },
          "original_shipping_total": {
            "type": "number",
            "title": "original_shipping_total",
            "description": "The order's shipping total including taxes, excluding promotions."
          },
          "original_shipping_subtotal": {
            "type": "number",
            "title": "original_shipping_subtotal",
            "description": "The order's shipping total excluding taxes, including promotions."
          },
          "original_shipping_tax_total": {
            "type": "number",
            "title": "original_shipping_tax_total",
            "description": "The tax total of the order's shipping excluding promotions."
          },
          "status": {
            "type": "string",
            "title": "status",
            "description": "The order's status."
          },
          "region": {
            "$ref": "#/components/schemas/AdminRegion"
          },
          "credit_lines": {
            "type": "array",
            "description": "The order's credit lines.",
            "items": {
              "$ref": "#/components/schemas/OrderCreditLine"
            }
          },
          "credit_line_total": {
            "type": "number",
            "title": "credit_line_total",
            "description": "The order's credit line total."
          },
          "item_discount_total": {
            "type": "number",
            "title": "item_discount_total",
            "description": "The total discount amount applied on the order's items."
          },
          "shipping_discount_total": {
            "type": "number",
            "title": "shipping_discount_total",
            "description": "The total discount amount applied on the order's shipping."
          },
          "custom_display_id": {
            "type": "string",
            "title": "custom_display_id",
            "description": "The custom display ID of the order.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/order/custom-display-id"
            }
          }
        }
      },
      "AdminOrderAddress": {
        "type": "object",
        "description": "An order address.",
        "x-schemaName": "AdminOrderAddress",
        "required": [
          "id",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The address's ID."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer this address belongs to."
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The address's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The address's last name."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The address's phone."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The address's company."
          },
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The address's second line."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The address's city."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The address's country code.",
            "example": "us"
          },
          "country": {
            "$ref": "#/components/schemas/AdminRegionCountry"
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The address's lower-case ISO 3166-2 province code.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The address's postal code."
          },
          "metadata": {
            "type": "object",
            "description": "The address's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the address was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the address was updated."
          }
        }
      },
      "AdminOrderChange": {
        "type": "object",
        "description": "The order change's details.",
        "x-schemaName": "AdminOrderChange",
        "required": [
          "order",
          "claim",
          "return_order",
          "exchange",
          "actions",
          "status",
          "id",
          "version",
          "metadata",
          "created_at",
          "updated_at",
          "order_id",
          "return_id",
          "exchange_id",
          "claim_id",
          "requested_by",
          "requested_at",
          "confirmed_by",
          "confirmed_at",
          "declined_by",
          "declined_reason",
          "declined_at",
          "canceled_by",
          "canceled_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The order change's ID."
          },
          "version": {
            "type": "number",
            "title": "version",
            "description": "The order change's version. This will be the order's version when the change is applied."
          },
          "change_type": {
            "type": "string",
            "description": "The order change's type.",
            "enum": [
              "return",
              "exchange",
              "claim",
              "edit"
            ]
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order this change applies on."
          },
          "return_id": {
            "type": "string",
            "title": "return_id",
            "description": "The ID of the associated return."
          },
          "exchange_id": {
            "type": "string",
            "title": "exchange_id",
            "description": "The ID of the associated exchange."
          },
          "claim_id": {
            "type": "string",
            "title": "claim_id",
            "description": "The ID of the associated claim."
          },
          "order": {
            "$ref": "#/components/schemas/AdminOrder"
          },
          "return_order": {
            "$ref": "#/components/schemas/AdminReturn"
          },
          "exchange": {
            "$ref": "#/components/schemas/AdminExchange"
          },
          "claim": {
            "$ref": "#/components/schemas/AdminClaim"
          },
          "actions": {
            "type": "array",
            "description": "The order change's actions.",
            "items": {
              "$ref": "#/components/schemas/AdminOrderChangeAction"
            }
          },
          "status": {
            "type": "string",
            "description": "The order change's status.",
            "enum": [
              "canceled",
              "requested",
              "pending",
              "confirmed",
              "declined"
            ]
          },
          "requested_by": {
            "type": "string",
            "title": "requested_by",
            "description": "The ID of the user that requested the change."
          },
          "requested_at": {
            "type": "string",
            "title": "requested_at",
            "description": "The date the order change was requested.",
            "format": "date-time"
          },
          "confirmed_by": {
            "type": "string",
            "title": "confirmed_by",
            "description": "The ID of the user that confirmed the order change."
          },
          "confirmed_at": {
            "type": "string",
            "title": "confirmed_at",
            "description": "The date the order change was confirmed.",
            "format": "date-time"
          },
          "declined_by": {
            "type": "string",
            "title": "declined_by",
            "description": "The ID of the user that declined the order change."
          },
          "declined_reason": {
            "type": "string",
            "title": "declined_reason",
            "description": "The reason the order change was declined."
          },
          "metadata": {
            "type": "object",
            "description": "The order change's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "declined_at": {
            "type": "string",
            "title": "declined_at",
            "description": "The date the order change was declined.",
            "format": "date-time"
          },
          "canceled_by": {
            "type": "string",
            "title": "canceled_by",
            "description": "The ID of the user that canceled the order change."
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date the order change was canceled.",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the order change was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the order change was updated."
          },
          "carry_over_promotions": {
            "type": "boolean",
            "title": "carry_over_promotions",
            "description": "Whether promotions from the original order should be carried over to the order change (specifically, exchanges)."
          }
        }
      },
      "AdminOrderChangeAction": {
        "type": "object",
        "description": "The order change action's details.",
        "x-schemaName": "AdminOrderChangeAction",
        "required": [
          "order_change",
          "order",
          "id",
          "created_at",
          "updated_at",
          "order_id",
          "internal_note",
          "return_id",
          "exchange_id",
          "claim_id",
          "ordering",
          "order_change_id",
          "reference",
          "reference_id",
          "action",
          "details"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The action's ID."
          },
          "order_change_id": {
            "type": "string",
            "title": "order_change_id",
            "description": "The ID of the order change that the action belongs to."
          },
          "order_change": {
            "type": "object"
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order the associated change is for."
          },
          "return_id": {
            "type": "string",
            "title": "return_id",
            "description": "The ID of the associated return."
          },
          "claim_id": {
            "type": "string",
            "title": "claim_id",
            "description": "The ID of the associated claim."
          },
          "exchange_id": {
            "type": "string",
            "title": "exchange_id",
            "description": "The ID of the associated exchange."
          },
          "order": {
            "$ref": "#/components/schemas/AdminOrder"
          },
          "reference": {
            "type": "string",
            "title": "reference",
            "description": "The name of the table this action applies on.",
            "enum": [
              "claim",
              "exchange",
              "return",
              "order_shipping_method"
            ]
          },
          "reference_id": {
            "type": "string",
            "title": "reference_id",
            "description": "The ID of the record in the referenced table."
          },
          "action": {
            "type": "string",
            "description": "The applied action.",
            "enum": [
              "CANCEL_RETURN_ITEM",
              "FULFILL_ITEM",
              "DELIVER_ITEM",
              "CANCEL_ITEM_FULFILLMENT",
              "ITEM_ADD",
              "ITEM_REMOVE",
              "ITEM_UPDATE",
              "RECEIVE_DAMAGED_RETURN_ITEM",
              "RECEIVE_RETURN_ITEM",
              "RETURN_ITEM",
              "SHIPPING_ADD",
              "SHIPPING_REMOVE",
              "SHIP_ITEM",
              "WRITE_OFF_ITEM",
              "REINSTATE_ITEM"
            ]
          },
          "details": {
            "type": "object",
            "description": "The action's details.",
            "example": {
              "reference_id": 123,
              "quantity": 1
            }
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note that's viewed only by admin users."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the action was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the action was updated."
          },
          "ordering": {
            "type": "number",
            "title": "ordering",
            "description": "The action's order in the sequence of actions."
          }
        }
      },
      "AdminOrderChangeResponse": {
        "type": "object",
        "description": "The details of the order change.",
        "x-schemaName": "AdminOrderChangeResponse",
        "required": [
          "order_change"
        ],
        "properties": {
          "order_change": {
            "$ref": "#/components/schemas/AdminOrderChange"
          }
        }
      },
      "AdminOrderChangesResponse": {
        "type": "object",
        "description": "The details of an order's changes.",
        "x-schemaName": "AdminOrderChangesResponse",
        "required": [
          "order_changes"
        ],
        "properties": {
          "order_changes": {
            "type": "array",
            "description": "An order's changes.",
            "items": {
              "$ref": "#/components/schemas/AdminOrderChange"
            }
          }
        }
      },
      "AdminOrderEditPreviewResponse": {
        "type": "object",
        "description": "The preview of an order edit.",
        "x-schemaName": "AdminOrderEditPreviewResponse",
        "required": [
          "order_preview"
        ],
        "properties": {
          "order_preview": {
            "$ref": "#/components/schemas/AdminOrderPreview"
          }
        }
      },
      "AdminOrderEditResponse": {
        "type": "object",
        "description": "An order edit's details.",
        "x-schemaName": "AdminOrderEditResponse",
        "required": [
          "order_change"
        ],
        "properties": {
          "order_change": {
            "$ref": "#/components/schemas/AdminOrderChange"
          }
        }
      },
      "AdminOrderFulfillment": {
        "type": "object",
        "description": "The fulfillment's details.",
        "x-schemaName": "AdminOrderFulfillment",
        "required": [
          "id",
          "location_id",
          "packed_at",
          "shipped_at",
          "delivered_at",
          "canceled_at",
          "requires_shipping",
          "data",
          "provider_id",
          "shipping_option_id",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The fulfillment's ID."
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the location the items are fulfilled from."
          },
          "packed_at": {
            "type": "string",
            "title": "packed_at",
            "description": "The date the items were packed.",
            "format": "date-time"
          },
          "shipped_at": {
            "type": "string",
            "title": "shipped_at",
            "description": "The date the items were shipped.",
            "format": "date-time"
          },
          "delivered_at": {
            "type": "string",
            "title": "delivered_at",
            "description": "The date the items were delivered.",
            "format": "date-time"
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date the items were canceled.",
            "format": "date-time"
          },
          "data": {
            "type": "object",
            "description": "Data useful for the fulfillment provider handling it. This is taken from the associated shipping option.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property"
            }
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the fulfillment provider used to handle the fulfillment."
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the associated shipping option."
          },
          "metadata": {
            "type": "object",
            "description": "The fulfillment's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the fulfillment was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the fulfillment was updated."
          },
          "requires_shipping": {
            "type": "boolean",
            "title": "requires_shipping",
            "description": "Whether the fulfillment requires shipping."
          }
        }
      },
      "AdminOrderItem": {
        "type": "object",
        "description": "The order item's details.",
        "x-schemaName": "AdminOrderItem",
        "required": [
          "order_id",
          "item_id",
          "version",
          "history",
          "item"
        ],
        "properties": {
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order this item belongs to."
          },
          "item_id": {
            "type": "string",
            "title": "item_id",
            "description": "The ID of the associated line item."
          },
          "version": {
            "type": "number",
            "title": "version",
            "description": "The order item's version."
          },
          "history": {
            "type": "object",
            "description": "The order item's history.",
            "required": [
              "version"
            ],
            "properties": {
              "version": {
                "type": "object",
                "description": "The version changes of the item.",
                "required": [
                  "from",
                  "to"
                ],
                "properties": {
                  "from": {
                    "type": "number",
                    "title": "from",
                    "description": "The original version."
                  },
                  "to": {
                    "type": "number",
                    "title": "to",
                    "description": "The new version."
                  }
                }
              }
            }
          },
          "item": {
            "$ref": "#/components/schemas/AdminOrderLineItem"
          }
        }
      },
      "AdminOrderLineItem": {
        "type": "object",
        "description": "The item's details.",
        "x-schemaName": "AdminOrderLineItem",
        "required": [
          "title",
          "id",
          "metadata",
          "created_at",
          "updated_at",
          "item_total",
          "item_subtotal",
          "item_tax_total",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_total",
          "discount_tax_total",
          "subtitle",
          "thumbnail",
          "variant_id",
          "product_id",
          "product_title",
          "product_description",
          "product_subtitle",
          "product_type_id",
          "product_type",
          "product_collection",
          "product_handle",
          "variant_sku",
          "variant_barcode",
          "variant_title",
          "variant_option_values",
          "requires_shipping",
          "is_discountable",
          "is_tax_inclusive",
          "unit_price",
          "quantity",
          "detail",
          "refundable_total",
          "refundable_total_per_unit"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The item's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The item's title."
          },
          "subtitle": {
            "type": "string",
            "title": "subtitle",
            "description": "The item's subtitle."
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The URL of the item's thumbnail."
          },
          "variant": {
            "$ref": "#/components/schemas/AdminProductVariant"
          },
          "variant_id": {
            "type": "string",
            "title": "variant_id",
            "description": "The ID of the associated variant."
          },
          "product": {
            "$ref": "#/components/schemas/AdminProduct"
          },
          "product_id": {
            "type": "string",
            "title": "product_id",
            "description": "The ID of the associated product."
          },
          "product_title": {
            "type": "string",
            "title": "product_title",
            "description": "The item's product title."
          },
          "product_description": {
            "type": "string",
            "title": "product_description",
            "description": "The item's product description."
          },
          "product_subtitle": {
            "type": "string",
            "title": "product_subtitle",
            "description": "The item's product subtitle."
          },
          "product_type": {
            "type": "string",
            "title": "product_type",
            "description": "The item's product type."
          },
          "product_collection": {
            "type": "string",
            "title": "product_collection",
            "description": "The ID of the collection the item's product belongs to."
          },
          "product_handle": {
            "type": "string",
            "title": "product_handle",
            "description": "The item's product handle."
          },
          "variant_sku": {
            "type": "string",
            "title": "variant_sku",
            "description": "The item's variant SKU."
          },
          "variant_barcode": {
            "type": "string",
            "title": "variant_barcode",
            "description": "The item's variant barcode."
          },
          "variant_title": {
            "type": "string",
            "title": "variant_title",
            "description": "The item's variant title."
          },
          "variant_option_values": {
            "type": "object",
            "description": "The values of the item variant's options.",
            "example": {
              "Color": "Blue"
            }
          },
          "requires_shipping": {
            "type": "boolean",
            "title": "requires_shipping",
            "description": "Whether the item requires shipping."
          },
          "is_discountable": {
            "type": "boolean",
            "title": "is_discountable",
            "description": "Whether the item is discountable."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the item is tax inclusive."
          },
          "compare_at_unit_price": {
            "type": "number",
            "title": "compare_at_unit_price",
            "description": "The original price of the item before a promotion or sale."
          },
          "unit_price": {
            "type": "number",
            "title": "unit_price",
            "description": "The item's unit price."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "tax_lines": {
            "type": "array",
            "description": "The item's tax lines.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderLineItemTaxLine"
            }
          },
          "adjustments": {
            "type": "array",
            "description": "The item's adjustments.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderLineItemAdjustment"
            }
          },
          "detail": {
            "type": "object"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the item was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the item was updated."
          },
          "metadata": {
            "type": "object",
            "description": "The item's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The item's total including taxes, excluding promotions."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The item's total excluding taxes, including promotions."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The total taxes of the item, excluding promotions."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The total taxes of the item, including promotions."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The item's total excluding taxes, including promotions."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The total taxes of the item, including promotions."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The item's total, including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The item's subtotal excluding taxes, including promotions."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The tax total of the item including promotions."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total discount amount of the item."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The total taxes applied on the discounted amount."
          },
          "refundable_total": {
            "type": "number",
            "title": "refundable_total",
            "description": "The total refundable amount of the item's total."
          },
          "refundable_total_per_unit": {
            "type": "number",
            "title": "refundable_total_per_unit",
            "description": "The total refundable amount of the item's total for a single quantity."
          },
          "product_type_id": {
            "type": "string",
            "title": "product_type_id",
            "description": "The ID of the associated product's type."
          }
        }
      },
      "AdminOrderPreview": {
        "type": "object",
        "description": "A preview of an order if a change, such as exchange, return, edit, or claim is applied on it.",
        "x-schemaName": "AdminOrderPreview",
        "required": [
          "return_requested_total",
          "order_change",
          "status",
          "id",
          "version",
          "region_id",
          "customer_id",
          "sales_channel_id",
          "email",
          "currency_code",
          "payment_collections",
          "payment_status",
          "fulfillment_status",
          "summary",
          "created_at",
          "updated_at",
          "original_item_total",
          "original_item_subtotal",
          "original_item_tax_total",
          "item_total",
          "item_subtotal",
          "item_tax_total",
          "item_discount_total",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_total",
          "discount_tax_total",
          "gift_card_total",
          "gift_card_tax_total",
          "shipping_total",
          "shipping_subtotal",
          "shipping_tax_total",
          "shipping_discount_total",
          "original_shipping_total",
          "original_shipping_subtotal",
          "original_shipping_tax_total",
          "credit_line_total"
        ],
        "properties": {
          "return_requested_total": {
            "type": "number",
            "title": "return_requested_total",
            "description": "The total of the requested return."
          },
          "order_change": {
            "$ref": "#/components/schemas/AdminOrderChange"
          },
          "items": {
            "type": "array",
            "description": "The order's items.",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "description": "An order's item.",
                  "x-schemaName": "BaseOrderLineItem",
                  "required": [
                    "id",
                    "title",
                    "subtitle",
                    "thumbnail",
                    "variant_id",
                    "product_id",
                    "product_title",
                    "product_description",
                    "product_subtitle",
                    "product_type",
                    "product_collection",
                    "product_handle",
                    "variant_sku",
                    "variant_barcode",
                    "variant_title",
                    "variant_option_values",
                    "requires_shipping",
                    "is_discountable",
                    "is_tax_inclusive",
                    "unit_price",
                    "quantity",
                    "detail",
                    "created_at",
                    "updated_at",
                    "metadata",
                    "original_total",
                    "original_subtotal",
                    "original_tax_total",
                    "item_total",
                    "item_subtotal",
                    "item_tax_total",
                    "total",
                    "subtotal",
                    "tax_total",
                    "discount_total",
                    "discount_tax_total",
                    "refundable_total",
                    "refundable_total_per_unit"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The item's ID."
                    },
                    "title": {
                      "type": "string",
                      "title": "title",
                      "description": "The item's title."
                    },
                    "subtitle": {
                      "type": "string",
                      "title": "subtitle",
                      "description": "The item's subtitle."
                    },
                    "thumbnail": {
                      "type": "string",
                      "title": "thumbnail",
                      "description": "The URL of the item's thumbnail."
                    },
                    "variant": {
                      "$ref": "#/components/schemas/BaseProductVariant"
                    },
                    "variant_id": {
                      "type": "string",
                      "title": "variant_id",
                      "description": "The ID of the associated variant."
                    },
                    "product": {
                      "$ref": "#/components/schemas/AdminProduct"
                    },
                    "product_id": {
                      "type": "string",
                      "title": "product_id",
                      "description": "The ID of the associated product."
                    },
                    "product_title": {
                      "type": "string",
                      "title": "product_title",
                      "description": "The title of the item's product."
                    },
                    "product_description": {
                      "type": "string",
                      "title": "product_description",
                      "description": "The description of the item's product."
                    },
                    "product_subtitle": {
                      "type": "string",
                      "title": "product_subtitle",
                      "description": "The subtitle of the item's product."
                    },
                    "product_type": {
                      "type": "string",
                      "title": "product_type",
                      "description": "The ID of type of the item's product."
                    },
                    "product_collection": {
                      "type": "string",
                      "title": "product_collection",
                      "description": "The ID of collection of the item's product."
                    },
                    "product_handle": {
                      "type": "string",
                      "title": "product_handle",
                      "description": "The handle of the item's product."
                    },
                    "variant_sku": {
                      "type": "string",
                      "title": "variant_sku",
                      "description": "The SKU of the item's variant."
                    },
                    "variant_barcode": {
                      "type": "string",
                      "title": "variant_barcode",
                      "description": "The barcode of the item's variant."
                    },
                    "variant_title": {
                      "type": "string",
                      "title": "variant_title",
                      "description": "The title of the item's variant."
                    },
                    "variant_option_values": {
                      "type": "object",
                      "description": "The option values of the item's variant as key-value pairs. The key is the title of an option, and the value is the option's value."
                    },
                    "requires_shipping": {
                      "type": "boolean",
                      "title": "requires_shipping",
                      "description": "Whether the item requires shipping."
                    },
                    "is_discountable": {
                      "type": "boolean",
                      "title": "is_discountable",
                      "description": "Whether the item is discountable."
                    },
                    "is_tax_inclusive": {
                      "type": "boolean",
                      "title": "is_tax_inclusive",
                      "description": "Whether the item's price includes taxes."
                    },
                    "compare_at_unit_price": {
                      "type": "number",
                      "title": "compare_at_unit_price",
                      "description": "The original price of the item before a promotion or sale."
                    },
                    "unit_price": {
                      "type": "number",
                      "title": "unit_price",
                      "description": "The item's unit price."
                    },
                    "quantity": {
                      "type": "number",
                      "title": "quantity",
                      "description": "The item's quantity."
                    },
                    "tax_lines": {
                      "type": "array",
                      "description": "The item's tax lines.",
                      "items": {
                        "$ref": "#/components/schemas/BaseOrderLineItemTaxLine"
                      }
                    },
                    "adjustments": {
                      "type": "array",
                      "description": "The item's adjustments.",
                      "items": {
                        "$ref": "#/components/schemas/BaseOrderLineItemAdjustment"
                      }
                    },
                    "detail": {
                      "$ref": "#/components/schemas/BaseOrderItemDetail"
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "created_at",
                      "description": "The date the item was created."
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "updated_at",
                      "description": "The date the item was updated."
                    },
                    "metadata": {
                      "type": "object",
                      "description": "The item's metadata, can hold custom key-value pairs.",
                      "externalDocs": {
                        "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                        "description": "Learn how to manage metadata"
                      }
                    },
                    "original_total": {
                      "type": "number",
                      "title": "original_total",
                      "description": "The item's total including taxes, excluding promotions."
                    },
                    "original_subtotal": {
                      "type": "number",
                      "title": "original_subtotal",
                      "description": "The item's total excluding taxes, including promotions."
                    },
                    "original_tax_total": {
                      "type": "number",
                      "title": "original_tax_total",
                      "description": "The tax total of the item excluding promotions."
                    },
                    "item_total": {
                      "type": "number",
                      "title": "item_total",
                      "description": "The item's total for a single unit including taxes and promotions."
                    },
                    "item_subtotal": {
                      "type": "number",
                      "title": "item_subtotal",
                      "description": "The item's total for a single unit excluding taxes, including promotions."
                    },
                    "item_tax_total": {
                      "type": "number",
                      "title": "item_tax_total",
                      "description": "The tax total for a single unit of the item including promotions."
                    },
                    "total": {
                      "type": "number",
                      "title": "total",
                      "description": "The item's total including taxes and promotions."
                    },
                    "subtotal": {
                      "type": "number",
                      "title": "subtotal",
                      "description": "The item's total excluding taxes, including promotions."
                    },
                    "tax_total": {
                      "type": "number",
                      "title": "tax_total",
                      "description": "The tax total of the item including promotions."
                    },
                    "discount_total": {
                      "type": "number",
                      "title": "discount_total",
                      "description": "The total of the item's discount / promotion."
                    },
                    "discount_tax_total": {
                      "type": "number",
                      "title": "discount_tax_total",
                      "description": "The tax total of the item's discount / promotion"
                    },
                    "refundable_total": {
                      "type": "number",
                      "title": "refundable_total",
                      "description": "The total refundable amount of the item's total."
                    },
                    "refundable_total_per_unit": {
                      "type": "number",
                      "title": "refundable_total_per_unit",
                      "description": "The total refundable amount of the item's total for a single unit."
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "An order's item.",
                  "properties": {
                    "actions": {
                      "type": "array",
                      "description": "The actions applied on an item.",
                      "items": {
                        "type": "object",
                        "description": "The action's details.",
                        "x-schemaName": "BaseOrderChangeAction"
                      }
                    }
                  }
                }
              ]
            }
          },
          "shipping_methods": {
            "type": "array",
            "description": "The order's shipping methods.",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "description": "The shipping method's details.",
                  "x-schemaName": "BaseOrderShippingMethod",
                  "required": [
                    "id",
                    "order_id",
                    "name",
                    "amount",
                    "is_tax_inclusive",
                    "shipping_option_id",
                    "data",
                    "metadata",
                    "original_total",
                    "original_subtotal",
                    "original_tax_total",
                    "total",
                    "subtotal",
                    "tax_total",
                    "discount_total",
                    "discount_tax_total",
                    "created_at",
                    "updated_at"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The shipping method's ID."
                    },
                    "order_id": {
                      "type": "string",
                      "title": "order_id",
                      "description": "The ID of the order this shipping method belongs to."
                    },
                    "name": {
                      "type": "string",
                      "title": "name",
                      "description": "The shipping method's name."
                    },
                    "description": {
                      "type": "string",
                      "title": "description",
                      "description": "The shipping method's description."
                    },
                    "amount": {
                      "type": "number",
                      "title": "amount",
                      "description": "The shipping method's amount."
                    },
                    "is_tax_inclusive": {
                      "type": "boolean",
                      "title": "is_tax_inclusive",
                      "description": "Whether the shipping method's amount is tax inclusive."
                    },
                    "shipping_option_id": {
                      "type": "string",
                      "title": "shipping_option_id",
                      "description": "The ID of the shipping option this method was created from."
                    },
                    "data": {
                      "type": "object",
                      "description": "The data relevant for the fulfillment provider to process this shipment.",
                      "externalDocs": {
                        "url": "https://docs.medusajs.com/resources/commerce-modules/order/concepts#data-property"
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "description": "The shipping method's metadata, can hold custom key-value pairs.",
                      "externalDocs": {
                        "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                        "description": "Learn how to manage metadata"
                      }
                    },
                    "tax_lines": {
                      "type": "array",
                      "description": "The shipping method's tax lines.",
                      "items": {
                        "$ref": "#/components/schemas/BaseOrderShippingMethodTaxLine"
                      }
                    },
                    "adjustments": {
                      "type": "array",
                      "description": "The shipping method's adjustments.",
                      "items": {
                        "$ref": "#/components/schemas/BaseOrderShippingMethodAdjustment"
                      }
                    },
                    "original_total": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "original_total",
                          "description": "The shipping method's total including taxes, excluding promotions."
                        },
                        {
                          "type": "number",
                          "title": "original_total",
                          "description": "The shipping method's total including taxes, excluding promotions."
                        }
                      ]
                    },
                    "original_subtotal": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "original_subtotal",
                          "description": "The shipping method's total excluding taxes, including promotions."
                        },
                        {
                          "type": "number",
                          "title": "original_subtotal",
                          "description": "The shipping method's total excluding taxes, including promotions."
                        }
                      ]
                    },
                    "original_tax_total": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "original_tax_total",
                          "description": "The tax total of the shipping method excluding promotions."
                        },
                        {
                          "type": "number",
                          "title": "original_tax_total",
                          "description": "The tax total of the shipping method excluding promotions."
                        }
                      ]
                    },
                    "total": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "total",
                          "description": "The shipping method's total including taxes and promotions."
                        },
                        {
                          "type": "number",
                          "title": "total",
                          "description": "The shipping method's total including taxes and promotions."
                        }
                      ]
                    },
                    "subtotal": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "subtotal",
                          "description": "The shipping method's total excluding taxes, including promotions."
                        },
                        {
                          "type": "number",
                          "title": "subtotal",
                          "description": "The shipping method's total excluding taxes, including promotions."
                        }
                      ]
                    },
                    "tax_total": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "tax_total",
                          "description": "The tax total of the shipping method including promotions."
                        },
                        {
                          "type": "number",
                          "title": "tax_total",
                          "description": "The tax total of the shipping method including promotions."
                        }
                      ]
                    },
                    "discount_total": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "discount_total",
                          "description": "The total of the shipping method's promotion."
                        },
                        {
                          "type": "number",
                          "title": "discount_total",
                          "description": "The total of the shipping method's promotion."
                        }
                      ]
                    },
                    "discount_tax_total": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "discount_tax_total",
                          "description": "The tax total of the shipping method's promotion."
                        },
                        {
                          "type": "number",
                          "title": "discount_tax_total",
                          "description": "The shipping method's discount tax total."
                        }
                      ]
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "created_at",
                      "description": "The date the shipping method was created."
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "updated_at",
                      "description": "The date the shipping method was updated."
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "The shipping method's details.",
                  "properties": {
                    "actions": {
                      "type": "array",
                      "description": "The actions applied on the shipping method.",
                      "items": {
                        "type": "object",
                        "description": "The action's details.",
                        "x-schemaName": "BaseOrderChangeAction"
                      }
                    }
                  }
                }
              ]
            }
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The order's currency code."
          },
          "version": {
            "type": "number",
            "title": "version",
            "description": "The order's version when this preview is applied."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The order's ID."
          },
          "region_id": {
            "type": "string",
            "title": "region_id",
            "description": "The ID of the order's associated region."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that placed the order."
          },
          "sales_channel_id": {
            "type": "string",
            "title": "sales_channel_id",
            "description": "The ID of the sales channel that the order was placed in."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The email of the customer that placed the order.",
            "format": "email"
          },
          "display_id": {
            "type": "number",
            "title": "display_id",
            "description": "The order's display ID."
          },
          "shipping_address": {
            "$ref": "#/components/schemas/AdminOrderAddress"
          },
          "billing_address": {
            "$ref": "#/components/schemas/AdminOrderAddress"
          },
          "payment_collections": {
            "type": "array",
            "description": "The order's payment collections.",
            "items": {
              "$ref": "#/components/schemas/AdminPaymentCollection"
            }
          },
          "payment_status": {
            "type": "string",
            "description": "The order's payment status.",
            "enum": [
              "canceled",
              "not_paid",
              "awaiting",
              "authorized",
              "partially_authorized",
              "captured",
              "partially_captured",
              "partially_refunded",
              "refunded",
              "requires_action"
            ]
          },
          "fulfillments": {
            "type": "array",
            "description": "The order's fulfillments.",
            "items": {
              "$ref": "#/components/schemas/AdminOrderFulfillment"
            }
          },
          "fulfillment_status": {
            "type": "string",
            "description": "The order's fulfillment status.",
            "enum": [
              "canceled",
              "not_fulfilled",
              "partially_fulfilled",
              "fulfilled",
              "partially_shipped",
              "shipped",
              "partially_delivered",
              "delivered"
            ]
          },
          "transactions": {
            "type": "array",
            "description": "The order's transactions.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderTransaction"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/BaseOrderSummary"
          },
          "metadata": {
            "type": "object",
            "description": "The order's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the order was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the order was updated."
          },
          "original_item_total": {
            "type": "number",
            "title": "original_item_total",
            "description": "The total of the order's items including taxes, excluding promotions."
          },
          "original_item_subtotal": {
            "type": "number",
            "title": "original_item_subtotal",
            "description": "The total of the order's items excluding taxes, including promotions."
          },
          "original_item_tax_total": {
            "type": "number",
            "title": "original_item_tax_total",
            "description": "The tax total of the order's items excluding promotions."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The total of the order's items including taxes and promotions."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The total of the order's items excluding taxes, including promotions."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The tax total of the order's items including promotions."
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The order's total excluding promotions, including taxes."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The order's total excluding taxes, including promotions."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The order's tax total, excluding promotions."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The order's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The order's total excluding taxes, including promotions."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The order's tax total including promotions."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The order's discount or promotions total."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The tax total of order's discount or promotion."
          },
          "gift_card_total": {
            "type": "number",
            "title": "gift_card_total",
            "description": "The order's gift card total."
          },
          "gift_card_tax_total": {
            "type": "number",
            "title": "gift_card_tax_total",
            "description": "The tax total of the order's gift card."
          },
          "shipping_total": {
            "type": "number",
            "title": "shipping_total",
            "description": "The order's shipping total including taxes and promotions."
          },
          "shipping_subtotal": {
            "type": "number",
            "title": "shipping_subtotal",
            "description": "The order's shipping total excluding taxes, including promotions."
          },
          "shipping_tax_total": {
            "type": "number",
            "title": "shipping_tax_total",
            "description": "The tax total of the order's shipping."
          },
          "original_shipping_total": {
            "type": "number",
            "title": "original_shipping_total",
            "description": "The order's shipping total including taxes, excluding promotions."
          },
          "original_shipping_subtotal": {
            "type": "number",
            "title": "original_shipping_subtotal",
            "description": "The order's shipping total excluding taxes, including promotions."
          },
          "original_shipping_tax_total": {
            "type": "number",
            "title": "original_shipping_tax_total",
            "description": "The tax total of the order's shipping excluding promotions."
          },
          "customer": {
            "$ref": "#/components/schemas/AdminCustomer"
          },
          "sales_channel": {
            "$ref": "#/components/schemas/AdminSalesChannel"
          },
          "status": {
            "type": "string",
            "title": "status",
            "description": "The order's status."
          },
          "region": {
            "$ref": "#/components/schemas/AdminRegion"
          },
          "credit_lines": {
            "type": "array",
            "description": "The order preview's credit lines.",
            "items": {
              "$ref": "#/components/schemas/OrderCreditLine"
            }
          },
          "credit_line_total": {
            "type": "number",
            "title": "credit_line_total",
            "description": "The order preview's credit line total."
          },
          "item_discount_total": {
            "type": "number",
            "title": "item_discount_total",
            "description": "The total discount amount applied on the order's items."
          },
          "shipping_discount_total": {
            "type": "number",
            "title": "shipping_discount_total",
            "description": "The total discount amount applied on the order's shipping."
          },
          "custom_display_id": {
            "type": "string",
            "title": "custom_display_id",
            "description": "The custom display ID of the order.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/order/custom-display-id"
            }
          }
        }
      },
      "AdminOrderPreviewResponse": {
        "type": "object",
        "description": "The preview of an order.",
        "x-schemaName": "AdminOrderPreviewResponse",
        "required": [
          "order"
        ],
        "properties": {
          "order": {
            "$ref": "#/components/schemas/AdminOrderPreview"
          }
        }
      },
      "AdminOrderResponse": {
        "type": "object",
        "description": "An order's details.",
        "x-schemaName": "AdminOrderResponse",
        "required": [
          "order"
        ],
        "properties": {
          "order": {
            "$ref": "#/components/schemas/AdminOrder"
          }
        }
      },
      "AdminOrderReturnResponse": {
        "type": "object",
        "description": "The order return details.",
        "x-schemaName": "AdminOrderReturnResponse",
        "required": [
          "order",
          "return"
        ],
        "properties": {
          "order": {
            "$ref": "#/components/schemas/Order"
          },
          "return": {
            "$ref": "#/components/schemas/AdminReturn"
          }
        }
      },
      "AdminOrderShippingMethod": {
        "type": "object",
        "description": "The shipping method's details.",
        "x-schemaName": "AdminOrderShippingMethod",
        "required": [
          "id",
          "order_id",
          "name",
          "amount",
          "is_tax_inclusive",
          "shipping_option_id",
          "data",
          "metadata",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_total",
          "discount_tax_total",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping method's ID."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order the shipping method belongs to."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The shipping method's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The shipping method's description."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The shipping method's amount."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the shipping method's amount includes applied taxes."
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the shipping option this method was created from."
          },
          "data": {
            "type": "object",
            "description": "The shipping method's data, useful for fulfillment provider handling its fulfillment.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The shipping method's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "tax_lines": {
            "type": "array",
            "description": "The shipping method's tax lines.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderShippingMethodTaxLine"
            }
          },
          "adjustments": {
            "type": "array",
            "description": "The shipping method's adjustments.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderShippingMethodAdjustment"
            }
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The shipping method's total including taxes, excluding promotions."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The shipping method's total excluding taxes, including promotions."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The shipping method's total taxes excluding promotions."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The shipping method's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The shipping method's total excluding taxes, including promotions."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The shipping method's tax total including promotions."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total discounts applied on the shipping method."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The taxes applied on the discount amount."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the shipping method was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the shipping method was updated."
          },
          "detail": {
            "$ref": "#/components/schemas/BaseOrderShippingDetail"
          }
        }
      },
      "AdminPayment": {
        "type": "object",
        "description": "The payment's details.",
        "x-schemaName": "AdminPayment",
        "required": [
          "id",
          "amount",
          "currency_code",
          "provider_id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The payment's ID."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The payment's amount."
          },
          "authorized_amount": {
            "type": "number",
            "title": "authorized_amount",
            "description": "The amount authorized of the payment."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The payment's currency code."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the payment provider used to process this payment."
          },
          "data": {
            "type": "object",
            "description": "The payment's data, useful for processing by the payment provider.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/payment/payment#whats-a-payment"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the payment was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the payment was updated."
          },
          "captured_at": {
            "type": "string",
            "format": "date-time",
            "title": "captured_at",
            "description": "The date the payment was captured."
          },
          "canceled_at": {
            "type": "string",
            "format": "date-time",
            "title": "canceled_at",
            "description": "The date the payment was canceled."
          },
          "captured_amount": {
            "type": "number",
            "title": "captured_amount",
            "description": "The captured amount of the payment."
          },
          "refunded_amount": {
            "type": "number",
            "title": "captured_amount",
            "description": "The refunded amount of the payment."
          },
          "captures": {
            "type": "array",
            "description": "The details of payment captures.",
            "items": {
              "$ref": "#/components/schemas/BaseCapture"
            }
          },
          "refunds": {
            "type": "array",
            "description": "The details of payment refunds.",
            "items": {
              "$ref": "#/components/schemas/AdminRefund"
            }
          },
          "payment_collection": {
            "type": "object"
          },
          "payment_session": {
            "$ref": "#/components/schemas/AdminPaymentSession"
          }
        }
      },
      "AdminPaymentCollection": {
        "type": "object",
        "description": "The payment collection's details.",
        "x-schemaName": "AdminPaymentCollection",
        "required": [
          "payment_providers",
          "id",
          "currency_code",
          "amount",
          "status"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The payment collection's ID."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The payment collection's currency code."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The total amount to be paid."
          },
          "authorized_amount": {
            "type": "number",
            "title": "authorized_amount",
            "description": "The total authorized amount of the collection's payments."
          },
          "captured_amount": {
            "type": "number",
            "title": "captured_amount",
            "description": "The total captured amount of the collection's payments."
          },
          "refunded_amount": {
            "type": "number",
            "title": "refunded_amount",
            "description": "The total refunded amount of the collection's payments."
          },
          "completed_at": {
            "type": "string",
            "format": "date-time",
            "title": "completed_at",
            "description": "The date the payment collection was completed."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the payment collection was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the payment collection was updated."
          },
          "metadata": {
            "type": "object",
            "description": "The payment collection's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "status": {
            "type": "string",
            "description": "The payment collection's status.",
            "enum": [
              "canceled",
              "not_paid",
              "awaiting",
              "authorized",
              "partially_authorized"
            ]
          },
          "payment_providers": {
            "type": "array",
            "description": "The payment provider used to process the collection's payments and sessions.",
            "items": {
              "$ref": "#/components/schemas/AdminPaymentProvider"
            }
          },
          "payment_sessions": {
            "type": "array",
            "description": "The payment collection's payment sessions.",
            "items": {
              "$ref": "#/components/schemas/AdminPaymentSession"
            }
          },
          "payments": {
            "type": "array",
            "description": "The payment collection's payments.",
            "items": {
              "$ref": "#/components/schemas/AdminPayment"
            }
          }
        }
      },
      "AdminPaymentCollectionResponse": {
        "type": "object",
        "description": "The payment collection's details.",
        "x-schemaName": "AdminPaymentCollectionResponse",
        "required": [
          "payment_collection"
        ],
        "properties": {
          "payment_collection": {
            "$ref": "#/components/schemas/AdminPaymentCollection"
          }
        }
      },
      "AdminPaymentProvider": {
        "type": "object",
        "description": "The payment provider's details.",
        "x-schemaName": "AdminPaymentProvider",
        "required": [
          "is_enabled",
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The payment provider's ID."
          },
          "is_enabled": {
            "type": "boolean",
            "title": "is_enabled",
            "description": "Whether the payment provider is enabled."
          }
        }
      },
      "AdminPaymentResponse": {
        "type": "object",
        "description": "The payment's details.",
        "x-schemaName": "AdminPaymentResponse",
        "required": [
          "payment"
        ],
        "properties": {
          "payment": {
            "$ref": "#/components/schemas/AdminPayment"
          }
        }
      },
      "AdminPaymentSession": {
        "type": "object",
        "description": "The payment session's details.",
        "x-schemaName": "AdminPaymentSession",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The payment session's ID."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The payment session's amount."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The payment session's currency code.",
            "example": "usd"
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the payment provider processing this session."
          },
          "data": {
            "type": "object",
            "description": "The payment session's data, useful for the payment provider processing the payment.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/payment/payment-session#data-property"
            }
          },
          "context": {
            "type": "object",
            "description": "The context around the payment, such as the customer's details.",
            "example": {
              "customer": {
                "id": "cus_123"
              }
            }
          },
          "status": {
            "type": "string",
            "description": "The payment session's status.",
            "enum": [
              "authorized",
              "captured",
              "canceled",
              "pending",
              "requires_more",
              "error"
            ]
          },
          "authorized_at": {
            "type": "string",
            "title": "authorized_at",
            "description": "The date the payment session was authorized.",
            "format": "date-time"
          },
          "payment_collection": {
            "type": "object"
          },
          "payment": {
            "$ref": "#/components/schemas/BasePayment"
          }
        },
        "required": [
          "id",
          "amount",
          "currency_code",
          "provider_id",
          "data",
          "status"
        ]
      },
      "AdminPlugin": {
        "type": "object",
        "description": "The plugin's details.",
        "x-schemaName": "AdminPlugin",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The plugin's name."
          }
        }
      },
      "AdminPluginsListResponse": {
        "type": "object",
        "description": "The list of plugins.",
        "x-schemaName": "AdminPluginsListResponse",
        "required": [
          "plugins"
        ],
        "properties": {
          "plugins": {
            "type": "array",
            "description": "The list of plugins.",
            "items": {
              "$ref": "#/components/schemas/AdminPlugin"
            }
          }
        }
      },
      "AdminPostCancelClaimReqSchema": {
        "type": "object",
        "description": "The details of canceling a claim.",
        "x-schemaName": "AdminPostCancelClaimReqSchema",
        "properties": {
          "no_notification": {
            "type": "boolean",
            "title": "no_notification",
            "description": "Whether to send the customer a notification about the claim's cancelation."
          }
        }
      },
      "AdminPostCancelExchangeReqSchema": {
        "type": "object",
        "description": "The details of canceling an exchange.",
        "x-schemaName": "AdminPostCancelExchangeReqSchema",
        "properties": {
          "no_notification": {
            "type": "boolean",
            "title": "no_notification",
            "description": "Whether to send a notification to the customer about the exchange's cancelation."
          }
        }
      },
      "AdminPostCancelReturnReqSchema": {
        "type": "object",
        "description": "The details of canceling a return.",
        "x-schemaName": "AdminPostCancelReturnReqSchema",
        "properties": {
          "no_notification": {
            "type": "boolean",
            "title": "no_notification",
            "description": "Whether to send the customer a notification about the return's cancelation."
          }
        }
      },
      "AdminPostExchangesRequestItemsReturnActionReqSchema": {
        "type": "object",
        "description": "The details to update in an inbound (returned) item.",
        "x-schemaName": "AdminPostExchangesRequestItemsReturnActionReqSchema",
        "properties": {
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          },
          "reason_id": {
            "type": "string",
            "title": "reason_id",
            "description": "The ID of the associated return reason."
          },
          "metadata": {
            "type": "object",
            "description": "The exchange's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminPostOrderEditsAddItemsReqSchema": {
        "type": "object",
        "description": "The details of items to be edited.",
        "x-schemaName": "AdminPostOrderEditsAddItemsReqSchema",
        "properties": {
          "items": {
            "type": "array",
            "description": "The details of items to be edited.",
            "items": {
              "type": "object",
              "description": "An item's details.",
              "required": [
                "variant_id",
                "quantity"
              ],
              "properties": {
                "variant_id": {
                  "type": "string",
                  "title": "variant_id",
                  "description": "The ID of the associated product variant."
                },
                "quantity": {
                  "type": "number",
                  "title": "quantity",
                  "description": "The item's quantity."
                },
                "unit_price": {
                  "type": "number",
                  "title": "unit_price",
                  "description": "The item's unit price."
                },
                "internal_note": {
                  "type": "string",
                  "title": "internal_note",
                  "description": "A note viewed only by admin users."
                },
                "allow_backorder": {
                  "type": "boolean",
                  "title": "allow_backorder",
                  "description": "Whether the item can be added even if there's no available invenotory quantity of the variant."
                },
                "metadata": {
                  "type": "object",
                  "description": "The item's metadata, can hold custom key-value pairs.",
                  "externalDocs": {
                    "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                    "description": "Learn how to manage metadata"
                  }
                },
                "compare_at_unit_price": {
                  "type": "number",
                  "title": "compare_at_unit_price",
                  "description": "The original price of the item before a promotion or sale."
                }
              }
            }
          }
        }
      },
      "AdminPostOrderEditsItemsActionReqSchema": {
        "type": "object",
        "description": "The details to update in the item.",
        "x-schemaName": "AdminPostOrderEditsItemsActionReqSchema",
        "properties": {
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          },
          "unit_price": {
            "type": "number",
            "title": "unit_price",
            "description": "The item's unit price."
          },
          "compare_at_unit_price": {
            "type": "number",
            "title": "compare_at_unit_price",
            "description": "The original price of the item before a promotion or sale."
          }
        }
      },
      "AdminPostOrderEditsReqSchema": {
        "type": "object",
        "description": "The order edit's details.",
        "x-schemaName": "AdminPostOrderEditsReqSchema",
        "required": [
          "order_id"
        ],
        "properties": {
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order this edit is for."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The order edit's description."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          },
          "metadata": {
            "type": "object",
            "description": "The order edit's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminPostOrderEditsShippingActionReqSchema": {
        "type": "object",
        "description": "The shipping method's details.",
        "x-schemaName": "AdminPostOrderEditsShippingActionReqSchema",
        "properties": {
          "custom_amount": {
            "type": "number",
            "title": "custom_amount",
            "description": "Set a custom price for the shipping method."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          },
          "metadata": {
            "type": "object",
            "description": "The order edit's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminPostOrderEditsShippingReqSchema": {
        "type": "object",
        "description": "The shipping method's details.",
        "x-schemaName": "AdminPostOrderEditsShippingReqSchema",
        "required": [
          "shipping_option_id"
        ],
        "properties": {
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the associated shipping option."
          },
          "custom_amount": {
            "type": "number",
            "title": "custom_amount",
            "description": "Set a custom price for the shipping method."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The shipping method's description."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          },
          "metadata": {
            "type": "object",
            "description": "The shipping method's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminPostOrderEditsUpdateItemQuantityReqSchema": {
        "type": "object",
        "description": "The order item's details to update.",
        "x-schemaName": "AdminPostOrderEditsUpdateItemQuantityReqSchema",
        "required": [
          "quantity"
        ],
        "properties": {
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          },
          "unit_price": {
            "type": "number",
            "title": "unit_price",
            "description": "The item's unit price."
          },
          "compare_at_unit_price": {
            "type": "number",
            "title": "compare_at_unit_price",
            "description": "The original price of the item before a promotion or sale."
          }
        }
      },
      "AdminPostReturnsDismissItemsActionReqSchema": {
        "type": "object",
        "description": "The details to update of the damaged item.",
        "x-schemaName": "AdminPostReturnsDismissItemsActionReqSchema",
        "properties": {
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          }
        }
      },
      "AdminPostReturnsReceiveItemsActionReqSchema": {
        "type": "object",
        "description": "The details of the received item.",
        "x-schemaName": "AdminPostReturnsReceiveItemsActionReqSchema",
        "properties": {
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          }
        }
      },
      "AdminPostReturnsRequestItemsActionReqSchema": {
        "type": "object",
        "description": "The details to update in the item.",
        "x-schemaName": "AdminPostReturnsRequestItemsActionReqSchema",
        "properties": {
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          },
          "reason_id": {
            "type": "string",
            "title": "reason_id",
            "description": "The ID of the associated return reason."
          },
          "metadata": {
            "type": "object",
            "description": "The claim's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminPostReturnsRequestItemsReqSchema": {
        "type": "object",
        "description": "The items' details.",
        "x-schemaName": "AdminPostReturnsRequestItemsReqSchema",
        "properties": {
          "items": {
            "type": "array",
            "description": "The items' details.",
            "items": {
              "type": "object",
              "description": "An item's details.",
              "required": [
                "id",
                "quantity"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The item's ID."
                },
                "quantity": {
                  "type": "number",
                  "title": "quantity",
                  "description": "The item's quantity."
                },
                "description": {
                  "type": "string",
                  "title": "description",
                  "description": "The item's description."
                },
                "internal_note": {
                  "type": "string",
                  "title": "internal_note",
                  "description": "A note viewed only by admin users."
                },
                "reason_id": {
                  "type": "string",
                  "title": "reason_id",
                  "description": "The ID of the associated return reason."
                },
                "metadata": {
                  "type": "object",
                  "description": "The item's metadata, can hold custom key-value pairs.",
                  "externalDocs": {
                    "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                    "description": "Learn how to manage metadata"
                  }
                }
              }
            }
          }
        }
      },
      "AdminPostReturnsShippingReqSchema": {
        "type": "object",
        "description": "The shipping method's details.",
        "x-schemaName": "AdminPostReturnsShippingReqSchema",
        "required": [
          "shipping_option_id"
        ],
        "properties": {
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the associated shipping option."
          },
          "custom_amount": {
            "type": "number",
            "title": "custom_amount",
            "description": "Set the price of the shipping method."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The shipping method's description."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          },
          "metadata": {
            "type": "object",
            "description": "The exchange's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminPrice": {
        "type": "object",
        "description": "The price's details.",
        "x-schemaName": "AdminPrice",
        "required": [
          "id",
          "title",
          "currency_code",
          "amount",
          "raw_amount",
          "min_quantity",
          "max_quantity",
          "price_set_id",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The price's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The price's title."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The price's currency code.",
            "example": "usd"
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The price's amount."
          },
          "raw_amount": {
            "type": "object",
            "description": "The price's raw amount."
          },
          "min_quantity": {
            "type": "number",
            "title": "min_quantity",
            "description": "The minimum quantity that must be available in the cart for the price to be applied."
          },
          "max_quantity": {
            "type": "number",
            "title": "max_quantity",
            "description": "The maximum quantity allowed to be available in the cart for the price to be applied."
          },
          "price_set_id": {
            "type": "string",
            "title": "price_set_id",
            "description": "The ID of the associated price set."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the price was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the price was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the price was deleted."
          }
        }
      },
      "AdminPriceList": {
        "type": "object",
        "description": "The price list's details.",
        "x-schemaName": "AdminPriceList",
        "required": [
          "id",
          "title",
          "description",
          "rules",
          "starts_at",
          "ends_at",
          "status",
          "type",
          "prices",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The price list's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The price list's title."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The price list's description."
          },
          "rules": {
            "type": "object",
            "description": "The price list's rules."
          },
          "starts_at": {
            "type": "string",
            "title": "starts_at",
            "description": "The date the price list starts."
          },
          "ends_at": {
            "type": "string",
            "title": "ends_at",
            "description": "The date the price list ends."
          },
          "status": {
            "type": "string",
            "description": "The price list's status.",
            "enum": [
              "draft",
              "active"
            ]
          },
          "type": {
            "type": "string",
            "description": "The price list's type.",
            "enum": [
              "sale",
              "override"
            ]
          },
          "prices": {
            "type": "array",
            "description": "The price list's prices.",
            "items": {
              "$ref": "#/components/schemas/AdminPriceListPrice"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the price list was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the price list was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the price list was deleted."
          }
        }
      },
      "AdminPriceListBatchResponse": {
        "type": "object",
        "description": "The details of the created, updated, and deleted prices in a price list.",
        "x-schemaName": "AdminPriceListBatchResponse",
        "required": [
          "created",
          "updated",
          "deleted"
        ],
        "properties": {
          "created": {
            "type": "array",
            "description": "The created prices.",
            "items": {
              "$ref": "#/components/schemas/AdminPrice"
            }
          },
          "updated": {
            "type": "array",
            "description": "The updated prices.",
            "items": {
              "$ref": "#/components/schemas/AdminPrice"
            }
          },
          "deleted": {
            "type": "object",
            "description": "The details of the deleted prices.",
            "required": [
              "ids",
              "object",
              "deleted"
            ],
            "properties": {
              "ids": {
                "type": "array",
                "description": "The IDs of the deleted prices.",
                "items": {
                  "type": "string",
                  "title": "ids",
                  "description": "A price's ID."
                }
              },
              "object": {
                "type": "string",
                "title": "object",
                "description": "The name of the deleted object.",
                "default": "price"
              },
              "deleted": {
                "type": "boolean",
                "title": "deleted",
                "description": "Whether the prices were deleted."
              }
            }
          }
        }
      },
      "AdminPriceListDeleteResponse": {
        "type": "object",
        "description": "The details of the deleted price list.",
        "x-schemaName": "AdminPriceListDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The price list's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "price_list"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the price list was deleted."
          }
        }
      },
      "AdminPriceListListResponse": {
        "type": "object",
        "description": "The paginated list of price lists.",
        "x-schemaName": "AdminPriceListListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "price_lists"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items."
          },
          "price_lists": {
            "type": "array",
            "description": "The list of price lists.",
            "items": {
              "$ref": "#/components/schemas/AdminPriceList"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminPriceListPrice": {
        "type": "object",
        "description": "The details of a price list's price.",
        "x-schemaName": "AdminPriceListPrice",
        "required": [
          "variant_id",
          "rules",
          "id",
          "title",
          "currency_code",
          "amount",
          "raw_amount",
          "min_quantity",
          "max_quantity",
          "price_set_id",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "variant_id": {
            "type": "string",
            "title": "variant_id",
            "description": "The ID of the product variant this price list is for."
          },
          "rules": {
            "type": "object",
            "description": "The price's rules."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The price's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The price's title."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The price's currency code.",
            "example": "usd"
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The price's amount."
          },
          "raw_amount": {
            "type": "object",
            "description": "The price's raw amount."
          },
          "min_quantity": {
            "type": "number",
            "title": "min_quantity",
            "description": "The minimum quantity that must be available in the cart for the price to be applied."
          },
          "max_quantity": {
            "type": "number",
            "title": "max_quantity",
            "description": "The maximum quantity allowed to be available in the cart for the price to be applied."
          },
          "price_set_id": {
            "type": "string",
            "title": "price_set_id",
            "description": "The ID of the price set this price belongs to."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the price was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the price was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the price was deleted."
          }
        }
      },
      "AdminPriceListPriceListResponse": {
        "type": "object",
        "description": "The list of prices.",
        "x-schemaName": "AdminPriceListPriceListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "prices"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of prices returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the prices."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of prices."
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          },
          "prices": {
            "type": "array",
            "description": "The list of prices.",
            "items": {
              "$ref": "#/components/schemas/AdminPrice"
            }
          }
        }
      },
      "AdminPriceListResponse": {
        "type": "object",
        "description": "The price list's details.",
        "x-schemaName": "AdminPriceListResponse",
        "required": [
          "price_list"
        ],
        "properties": {
          "price_list": {
            "$ref": "#/components/schemas/AdminPriceList"
          }
        }
      },
      "AdminPricePreference": {
        "type": "object",
        "description": "The price preference's details.",
        "x-schemaName": "AdminPricePreference",
        "required": [
          "id",
          "attribute",
          "value",
          "is_tax_inclusive",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The price preference's ID."
          },
          "attribute": {
            "type": "string",
            "title": "attribute",
            "description": "The price preference's attribute.",
            "example": "region_id"
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The price preference's value.",
            "example": "reg_123"
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether prices matching this preference include taxes."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the price preference was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the price preference was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the price preference was deleted."
          }
        }
      },
      "AdminPricePreferenceDeleteResponse": {
        "type": "object",
        "description": "The details of the deleted price preference.",
        "x-schemaName": "AdminPricePreferenceDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The price preference's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "price_preference"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the price preference was deleted."
          }
        }
      },
      "AdminPricePreferenceListResponse": {
        "type": "object",
        "description": "The paginated list of price preferences.",
        "x-schemaName": "AdminPricePreferenceListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "price_preferences"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total count of items."
          },
          "price_preferences": {
            "type": "array",
            "description": "The list of price preferences.",
            "items": {
              "$ref": "#/components/schemas/AdminPricePreference"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminPricePreferenceResponse": {
        "type": "object",
        "description": "The price preference's details.",
        "x-schemaName": "AdminPricePreferenceResponse",
        "required": [
          "price_preference"
        ],
        "properties": {
          "price_preference": {
            "$ref": "#/components/schemas/AdminPricePreference"
          }
        }
      },
      "AdminProduct": {
        "type": "object",
        "description": "The product's details.",
        "x-schemaName": "AdminProduct",
        "required": [
          "variants",
          "type",
          "options",
          "images",
          "title",
          "status",
          "length",
          "id",
          "created_at",
          "updated_at",
          "subtitle",
          "thumbnail",
          "handle",
          "description",
          "is_giftcard",
          "width",
          "weight",
          "height",
          "origin_country",
          "hs_code",
          "mid_code",
          "material",
          "collection_id",
          "type_id",
          "discountable",
          "external_id",
          "deleted_at"
        ],
        "properties": {
          "collection": {
            "$ref": "#/components/schemas/AdminCollection"
          },
          "categories": {
            "type": "array",
            "description": "The product's categories.",
            "items": {
              "$ref": "#/components/schemas/AdminProductCategory"
            }
          },
          "sales_channels": {
            "type": "array",
            "description": "The sales channels that the product is available in.",
            "items": {
              "$ref": "#/components/schemas/AdminSalesChannel"
            }
          },
          "variants": {
            "type": "array",
            "description": "The product's variants.",
            "items": {
              "$ref": "#/components/schemas/AdminProductVariant"
            }
          },
          "type": {
            "$ref": "#/components/schemas/AdminProductType"
          },
          "tags": {
            "type": "array",
            "description": "The product's tags.",
            "items": {
              "$ref": "#/components/schemas/AdminProductTag"
            }
          },
          "length": {
            "type": "number",
            "title": "length",
            "description": "The product's length."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The product's title."
          },
          "status": {
            "type": "string",
            "description": "The product's status.",
            "enum": [
              "draft",
              "proposed",
              "published",
              "rejected"
            ]
          },
          "options": {
            "type": "array",
            "description": "The product's options.",
            "items": {
              "$ref": "#/components/schemas/AdminProductOption"
            }
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The product's description."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The product's ID."
          },
          "metadata": {
            "type": "object",
            "description": "The product's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the product was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the product was updated."
          },
          "handle": {
            "type": "string",
            "title": "handle",
            "description": "The product's unique handle."
          },
          "subtitle": {
            "type": "string",
            "title": "subtitle",
            "description": "The product's subtitle."
          },
          "is_giftcard": {
            "type": "boolean",
            "title": "is_giftcard",
            "description": "Whether the product is a gift card."
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The product's thumbnail."
          },
          "width": {
            "type": "number",
            "title": "width",
            "description": "The product's width."
          },
          "weight": {
            "type": "number",
            "title": "weight",
            "description": "The product's weight."
          },
          "height": {
            "type": "number",
            "title": "height",
            "description": "The product's height."
          },
          "origin_country": {
            "type": "string",
            "title": "origin_country",
            "description": "The product's origin country."
          },
          "hs_code": {
            "type": "string",
            "title": "hs_code",
            "description": "The product's HS code."
          },
          "mid_code": {
            "type": "string",
            "title": "mid_code",
            "description": "The product's MID code."
          },
          "material": {
            "type": "string",
            "title": "material",
            "description": "The product's material."
          },
          "collection_id": {
            "type": "string",
            "title": "collection_id",
            "description": "The ID of the collection that the product belongs to."
          },
          "type_id": {
            "type": "string",
            "title": "type_id",
            "description": "The ID of the product's type."
          },
          "images": {
            "type": "array",
            "description": "The product's images.",
            "items": {
              "$ref": "#/components/schemas/AdminProductImage"
            }
          },
          "discountable": {
            "type": "boolean",
            "title": "discountable",
            "description": "Whether discounts can be applied on the product."
          },
          "external_id": {
            "type": "string",
            "title": "external_id",
            "description": "The ID of a product in an external system, such as an ERP or CMS."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the product was deleted."
          },
          "shipping_profile": {
            "$ref": "#/components/schemas/AdminShippingProfile"
          },
          "translations": {
            "type": "array",
            "description": "The product's translations.",
            "items": {
              "$ref": "#/components/schemas/AdminTranslation"
            }
          }
        }
      },
      "AdminProductCategory": {
        "type": "object",
        "description": "The product category's details.",
        "x-schemaName": "AdminProductCategory",
        "required": [
          "category_children",
          "parent_category",
          "name",
          "description",
          "id",
          "created_at",
          "updated_at",
          "handle",
          "deleted_at",
          "is_active",
          "is_internal",
          "rank",
          "parent_category_id"
        ],
        "properties": {
          "category_children": {
            "type": "array",
            "description": "The category's children.",
            "items": {
              "type": "object"
            }
          },
          "parent_category": {
            "type": "object"
          },
          "products": {
            "type": "array",
            "description": "The category's products.",
            "items": {
              "type": "object"
            }
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The category's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The category's description."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The category's ID."
          },
          "metadata": {
            "type": "object",
            "description": "The category's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the category was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the category was updated."
          },
          "handle": {
            "type": "string",
            "title": "handle",
            "description": "The category's unique handle."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the category was deleted."
          },
          "is_active": {
            "type": "boolean",
            "title": "is_active",
            "description": "Whether the category is active. If disabled, the category isn't shown in the storefront."
          },
          "is_internal": {
            "type": "boolean",
            "title": "is_internal",
            "description": "Whether the category is internal. If enabled, the category is only seen by admin users."
          },
          "rank": {
            "type": "number",
            "title": "rank",
            "description": "The category's rank among sibling categories."
          },
          "parent_category_id": {
            "type": "string",
            "title": "parent_category_id",
            "description": "The ID of the category's parent."
          }
        }
      },
      "AdminProductCategoryDeleteResponse": {
        "type": "object",
        "description": "The details of deleting the category.",
        "x-schemaName": "AdminProductCategoryDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The product category's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "product_category"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the product category was deleted."
          }
        }
      },
      "AdminProductCategoryListResponse": {
        "type": "object",
        "description": "The paginated list of product categories.",
        "x-schemaName": "AdminProductCategoryListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "product_categories"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items."
          },
          "product_categories": {
            "type": "array",
            "description": "The list of product categories.",
            "items": {
              "$ref": "#/components/schemas/AdminProductCategory"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminProductCategoryResponse": {
        "type": "object",
        "description": "The product category's details.",
        "x-schemaName": "AdminProductCategoryResponse",
        "required": [
          "product_category"
        ],
        "properties": {
          "product_category": {
            "$ref": "#/components/schemas/AdminProductCategory"
          }
        }
      },
      "AdminProductDeleteResponse": {
        "type": "object",
        "description": "The details of the product deletion.",
        "x-schemaName": "AdminProductDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The product's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "product"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the product was deleted."
          }
        }
      },
      "AdminProductImage": {
        "type": "object",
        "description": "The image's details.",
        "x-schemaName": "AdminProductImage",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The image's ID."
          },
          "url": {
            "type": "string",
            "title": "url",
            "description": "The image's URL."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the image was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the image was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the image was deleted."
          },
          "metadata": {
            "type": "object",
            "description": "The image's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "rank": {
            "type": "number",
            "title": "rank",
            "description": "The image's rank among sibling images."
          },
          "product": {
            "type": "object"
          },
          "variants": {
            "type": "array",
            "description": "The variants associated with the image.",
            "items": {
              "type": "object"
            }
          }
        },
        "required": [
          "id",
          "url",
          "rank"
        ]
      },
      "AdminProductOption": {
        "type": "object",
        "description": "The product option's details.",
        "x-schemaName": "AdminProductOption",
        "required": [
          "id",
          "title"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The product option's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The product option's title."
          },
          "product": {
            "type": "object"
          },
          "product_id": {
            "type": "string",
            "title": "product_id",
            "description": "The ID of the product this option belongs to."
          },
          "values": {
            "type": "array",
            "description": "The product option's values.",
            "items": {
              "type": "object"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The product option's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the product option was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the product option was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the product option was deleted."
          }
        }
      },
      "AdminProductOptionDeleteResponse": {
        "type": "object",
        "description": "The details of the product option deletion.",
        "x-schemaName": "AdminProductOptionDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The product option's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "product_option"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the product option was deleted."
          },
          "parent": {
            "$ref": "#/components/schemas/AdminProduct"
          }
        }
      },
      "AdminProductOptionResponse": {
        "type": "object",
        "description": "The product option's details.",
        "x-schemaName": "AdminProductOptionResponse",
        "required": [
          "product_option"
        ],
        "properties": {
          "product_option": {
            "$ref": "#/components/schemas/AdminProductOption"
          }
        }
      },
      "AdminProductOptionValue": {
        "type": "object",
        "description": "The product option value's details.",
        "x-schemaName": "AdminProductOptionValue",
        "required": [
          "id",
          "value"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The value's ID."
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The value."
          },
          "option": {
            "$ref": "#/components/schemas/AdminProductOption"
          },
          "option_id": {
            "type": "string",
            "title": "option_id",
            "description": "The ID of the option this value belongs to."
          },
          "metadata": {
            "type": "object",
            "description": "The value's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the value was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the value was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the value was deleted."
          }
        }
      },
      "AdminProductResponse": {
        "type": "object",
        "description": "The product's details.",
        "x-schemaName": "AdminProductResponse",
        "required": [
          "product"
        ],
        "properties": {
          "product": {
            "$ref": "#/components/schemas/AdminProduct"
          }
        }
      },
      "AdminProductTag": {
        "type": "object",
        "description": "The product tag's details.",
        "x-schemaName": "AdminProductTag",
        "required": [
          "id",
          "value",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The tag's ID."
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The tag's value."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the tag was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the tag was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the tag was deleted."
          },
          "metadata": {
            "type": "object",
            "description": "The tag's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "translations": {
            "type": "array",
            "description": "The tag's translations.",
            "items": {
              "$ref": "#/components/schemas/AdminTranslation"
            }
          }
        }
      },
      "AdminProductTagDeleteResponse": {
        "type": "object",
        "description": "The details of the product tag deletion.",
        "x-schemaName": "AdminProductTagDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The product tag's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "product_tag"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the product tag was deleted."
          }
        }
      },
      "AdminProductTagListResponse": {
        "type": "object",
        "description": "The paginated list of product tags.",
        "x-schemaName": "AdminProductTagListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "product_tags"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items."
          },
          "product_tags": {
            "type": "array",
            "description": "The list of product tags.",
            "items": {
              "$ref": "#/components/schemas/AdminProductTag"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminProductTagResponse": {
        "type": "object",
        "description": "The product tag's details.",
        "x-schemaName": "AdminProductTagResponse",
        "required": [
          "product_tag"
        ],
        "properties": {
          "product_tag": {
            "$ref": "#/components/schemas/AdminProductTag"
          }
        }
      },
      "AdminProductType": {
        "type": "object",
        "description": "The product type's details.",
        "x-schemaName": "AdminProductType",
        "required": [
          "id",
          "value",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The type's ID."
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The type's value."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the type was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the type was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the type was deleted."
          },
          "metadata": {
            "type": "object",
            "description": "The type's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "translations": {
            "type": "array",
            "description": "The type's translations.",
            "items": {
              "$ref": "#/components/schemas/AdminTranslation"
            }
          }
        }
      },
      "AdminProductTypeDeleteResponse": {
        "type": "object",
        "description": "The details of the product type deletion.",
        "x-schemaName": "AdminProductTypeDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The product type's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "product_type"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the product type was deleted."
          }
        }
      },
      "AdminProductTypeListResponse": {
        "type": "object",
        "description": "The paginated list of product types.",
        "x-schemaName": "AdminProductTypeListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "product_types"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items."
          },
          "product_types": {
            "type": "array",
            "description": "The list of product types.",
            "items": {
              "$ref": "#/components/schemas/AdminProductType"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminProductTypeResponse": {
        "type": "object",
        "description": "The product type's details.",
        "x-schemaName": "AdminProductTypeResponse",
        "required": [
          "product_type"
        ],
        "properties": {
          "product_type": {
            "$ref": "#/components/schemas/AdminProductType"
          }
        }
      },
      "AdminProductVariant": {
        "type": "object",
        "description": "The product variant's details.",
        "x-schemaName": "AdminProductVariant",
        "required": [
          "prices",
          "options",
          "id",
          "title",
          "sku",
          "barcode",
          "ean",
          "upc",
          "thumbnail",
          "images",
          "allow_backorder",
          "manage_inventory",
          "hs_code",
          "origin_country",
          "mid_code",
          "material",
          "weight",
          "length",
          "height",
          "width",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "prices": {
            "type": "array",
            "description": "The variant's prices.",
            "items": {
              "$ref": "#/components/schemas/AdminPrice"
            }
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The variant's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The variant's title."
          },
          "sku": {
            "type": "string",
            "title": "sku",
            "description": "The variant's SKU."
          },
          "barcode": {
            "type": "string",
            "title": "barcode",
            "description": "The variant's barcode."
          },
          "ean": {
            "type": "string",
            "title": "ean",
            "description": "The variant's EAN code."
          },
          "upc": {
            "type": "string",
            "title": "upc",
            "description": "The variant's UPC."
          },
          "allow_backorder": {
            "type": "boolean",
            "title": "allow_backorder",
            "description": "Whether the variant can be ordered even if it's out of stock."
          },
          "manage_inventory": {
            "type": "boolean",
            "title": "manage_inventory",
            "description": "Whether the Medusa application manages the variant's inventory quantity and availablility. If disabled, the variant is always considered in stock."
          },
          "inventory_quantity": {
            "type": "number",
            "title": "inventory_quantity",
            "description": "The variant's inventory quantity. This is only included if you pass in the `fields` query parameter a `+variants.inventory_quantity` parameter."
          },
          "hs_code": {
            "type": "string",
            "title": "hs_code",
            "description": "The variant's HS code."
          },
          "origin_country": {
            "type": "string",
            "title": "origin_country",
            "description": "The variant's origin country."
          },
          "mid_code": {
            "type": "string",
            "title": "mid_code",
            "description": "The variant's MID code."
          },
          "material": {
            "type": "string",
            "title": "material",
            "description": "The variant's material."
          },
          "weight": {
            "type": "number",
            "title": "weight",
            "description": "The variant's weight."
          },
          "length": {
            "type": "number",
            "title": "length",
            "description": "The variant's length."
          },
          "height": {
            "type": "number",
            "title": "height",
            "description": "The variant's height."
          },
          "width": {
            "type": "number",
            "title": "width",
            "description": "The variant's width."
          },
          "variant_rank": {
            "type": "number",
            "title": "variant_rank",
            "description": "The variant's rank among its sibling variants."
          },
          "options": {
            "type": "array",
            "description": "The variant's option values.",
            "items": {
              "$ref": "#/components/schemas/AdminProductOptionValue"
            }
          },
          "product": {
            "type": "object"
          },
          "product_id": {
            "type": "string",
            "title": "product_id",
            "description": "The ID of the product that the variant belongs to."
          },
          "calculated_price": {
            "$ref": "#/components/schemas/BaseCalculatedPriceSet"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the variant was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the variant was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the variant was deleted."
          },
          "metadata": {
            "type": "object",
            "description": "The variant's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "inventory_items": {
            "type": "array",
            "description": "The variant's inventory items.",
            "items": {
              "$ref": "#/components/schemas/AdminProductVariantInventoryItemLink"
            }
          },
          "images": {
            "type": "array",
            "description": "The variant's images.",
            "items": {
              "$ref": "#/components/schemas/BaseProductImage"
            }
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The variant's thumbnail."
          },
          "translations": {
            "type": "array",
            "description": "The variant's translations.",
            "items": {
              "$ref": "#/components/schemas/AdminTranslation"
            }
          }
        }
      },
      "AdminProductVariantDeleteResponse": {
        "type": "object",
        "description": "The details of the product variant's deletion.",
        "x-schemaName": "AdminProductVariantDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The product variant's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object."
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the product variant was deleted.",
            "default": "variant"
          },
          "parent": {
            "$ref": "#/components/schemas/AdminProduct"
          }
        }
      },
      "AdminProductVariantInventoryBatchResponse": {
        "type": "object",
        "description": "The created, updated, and deleted associations between variants and inventory items.",
        "x-schemaName": "AdminProductVariantInventoryBatchResponse",
        "required": [
          "created",
          "updated",
          "deleted"
        ],
        "properties": {
          "created": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/AdminProductVariantInventoryLink"
              },
              {
                "type": "array",
                "description": "The created associations between product variants and inventory items.",
                "items": {
                  "type": "object",
                  "description": "A created association between a product variant and an inventory item.",
                  "x-schemaName": "AdminProductVariantInventoryLink",
                  "required": [
                    "productService",
                    "inventoryService"
                  ],
                  "properties": {
                    "productService": {
                      "type": "object",
                      "description": "The product variant's details.",
                      "required": [
                        "variant_id"
                      ],
                      "properties": {
                        "variant_id": {
                          "type": "string",
                          "title": "variant_id",
                          "description": "The ID of the product variant."
                        }
                      }
                    },
                    "inventoryService": {
                      "type": "object",
                      "description": "The inventory item's details.",
                      "required": [
                        "inventory_item_id"
                      ],
                      "properties": {
                        "inventory_item_id": {
                          "type": "string",
                          "title": "inventory_item_id",
                          "description": "The ID of the inventory item."
                        }
                      }
                    }
                  }
                }
              }
            ]
          },
          "updated": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/AdminProductVariantInventoryLink"
              },
              {
                "type": "array",
                "description": "The updated associations between product variants and inventory items.",
                "items": {
                  "type": "object",
                  "description": "An updated association between a product variant and an inventory item.",
                  "x-schemaName": "AdminProductVariantInventoryLink",
                  "required": [
                    "productService",
                    "inventoryService"
                  ],
                  "properties": {
                    "productService": {
                      "type": "object",
                      "description": "The product variant's details.",
                      "required": [
                        "variant_id"
                      ],
                      "properties": {
                        "variant_id": {
                          "type": "string",
                          "title": "variant_id",
                          "description": "The ID of the product variant."
                        }
                      }
                    },
                    "inventoryService": {
                      "type": "object",
                      "description": "The inventory item's details.",
                      "required": [
                        "inventory_item_id"
                      ],
                      "properties": {
                        "inventory_item_id": {
                          "type": "string",
                          "title": "inventory_item_id",
                          "description": "The ID of the inventory item."
                        }
                      }
                    }
                  }
                }
              }
            ]
          },
          "deleted": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/AdminProductVariantInventoryLink"
              },
              {
                "type": "array",
                "description": "The deleted associations between product variants and inventory items.",
                "items": {
                  "type": "object",
                  "description": "An deleted association between a product variant and an inventory item.",
                  "x-schemaName": "AdminProductVariantInventoryLink",
                  "required": [
                    "productService",
                    "inventoryService"
                  ],
                  "properties": {
                    "productService": {
                      "type": "object",
                      "description": "The product variant's details.",
                      "required": [
                        "variant_id"
                      ],
                      "properties": {
                        "variant_id": {
                          "type": "string",
                          "title": "variant_id",
                          "description": "The ID of the product variant."
                        }
                      }
                    },
                    "inventoryService": {
                      "type": "object",
                      "description": "The inventory item's details.",
                      "required": [
                        "inventory_item_id"
                      ],
                      "properties": {
                        "inventory_item_id": {
                          "type": "string",
                          "title": "inventory_item_id",
                          "description": "The ID of the inventory item."
                        }
                      }
                    }
                  }
                }
              }
            ]
          }
        }
      },
      "AdminProductVariantInventoryItemLink": {
        "type": "object",
        "description": "An association between a product variant and an inventory item.",
        "x-schemaName": "AdminProductVariantInventoryItemLink",
        "required": [
          "id",
          "variant_id",
          "inventory_item_id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The ID of the association."
          },
          "variant_id": {
            "type": "string",
            "title": "variant_id",
            "description": "The associated product variant's ID."
          },
          "variant": {
            "type": "object"
          },
          "inventory_item_id": {
            "type": "string",
            "title": "inventory_item_id",
            "description": "The associated inventory item's ID."
          },
          "inventory": {
            "$ref": "#/components/schemas/AdminInventoryItem"
          },
          "required_quantity": {
            "type": "number",
            "title": "required_quantity",
            "description": "The inventory item's required quantity."
          }
        }
      },
      "AdminProductVariantInventoryLink": {
        "type": "object",
        "description": "The details of an association between a product variant and an inventory item.",
        "x-schemaName": "AdminProductVariantInventoryLink",
        "required": [
          "Product",
          "Inventory"
        ],
        "properties": {
          "Product": {
            "type": "object",
            "description": "The product variant's details.",
            "required": [
              "variant_id"
            ],
            "properties": {
              "variant_id": {
                "type": "string",
                "title": "variant_id",
                "description": "The ID of the product variant."
              }
            }
          },
          "Inventory": {
            "type": "object",
            "description": "The inventory item's details.",
            "required": [
              "inventory_item_id"
            ],
            "properties": {
              "inventory_item_id": {
                "type": "string",
                "title": "inventory_item_id",
                "description": "The ID of the inventory item."
              }
            }
          }
        }
      },
      "AdminProductVariantInventoryLinkDeleteResponse": {
        "type": "object",
        "description": "The details of the deleted associated between a product variant and an inventory item.",
        "x-schemaName": "AdminProductVariantInventoryLinkDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted",
          "parent"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/AdminProductVariantInventoryLink"
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "variant-inventory-item-link"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the association was deleted."
          },
          "parent": {
            "$ref": "#/components/schemas/AdminProductVariant"
          }
        }
      },
      "AdminProductVariantResponse": {
        "type": "object",
        "description": "The product variant's details.",
        "x-schemaName": "AdminProductVariantResponse",
        "required": [
          "variant"
        ],
        "properties": {
          "variant": {
            "$ref": "#/components/schemas/AdminProductVariant"
          }
        }
      },
      "AdminPromotion": {
        "type": "object",
        "description": "The promotion's details.",
        "x-schemaName": "AdminPromotion",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "application_method": {
            "$ref": "#/components/schemas/AdminApplicationMethod"
          },
          "rules": {
            "type": "array",
            "description": "The promotion's rules.",
            "items": {
              "$ref": "#/components/schemas/AdminPromotionRule"
            }
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The promotion's ID."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The promotion's code.",
            "example": "OFF50"
          },
          "type": {
            "type": "string",
            "description": "The promotion's type.",
            "enum": [
              "standard",
              "buyget"
            ]
          },
          "is_automatic": {
            "type": "boolean",
            "title": "is_automatic",
            "description": "Whether the promotion is applied on a cart automatically if it matches the promotion's rules."
          },
          "campaign_id": {
            "type": "string",
            "title": "campaign_id",
            "description": "The ID of the campaign this promotion belongs to."
          },
          "campaign": {
            "$ref": "#/components/schemas/AdminCampaign"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the promotion was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the promotion was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the promotion was deleted."
          },
          "status": {
            "type": "string",
            "description": "The promotion's status.",
            "enum": [
              "draft",
              "active",
              "inactive"
            ]
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the promotion is tax inclusive. If enabled, the promotion is applied after tax is calculated."
          },
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The limit of times the promotion can be used."
          },
          "used": {
            "type": "number",
            "title": "used",
            "description": "The number of times the promotion has been used."
          }
        }
      },
      "AdminPromotionResponse": {
        "type": "object",
        "description": "The promotion's details.",
        "x-schemaName": "AdminPromotionResponse",
        "required": [
          "promotion"
        ],
        "properties": {
          "promotion": {
            "$ref": "#/components/schemas/AdminPromotion"
          }
        }
      },
      "AdminPromotionRule": {
        "type": "object",
        "description": "The promotion rule's details.",
        "x-schemaName": "AdminPromotionRule",
        "required": [
          "id",
          "values"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The promotion rule's ID."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The promotion rule's description."
          },
          "attribute": {
            "type": "string",
            "title": "attribute",
            "description": "The promotion rule's attribute.",
            "example": "customer_group_id"
          },
          "operator": {
            "type": "string",
            "description": "The rule's operator.",
            "enum": [
              "gt",
              "lt",
              "eq",
              "ne",
              "in",
              "lte",
              "gte"
            ]
          },
          "values": {
            "type": "array",
            "description": "The rule's values.",
            "example": [
              "cusgroup_123"
            ],
            "items": {
              "$ref": "#/components/schemas/BasePromotionRuleValue"
            }
          }
        }
      },
      "AdminReceiveItems": {
        "type": "object",
        "description": "The items details.",
        "x-schemaName": "AdminReceiveItems",
        "properties": {
          "items": {
            "type": "array",
            "description": "The items details.",
            "items": {
              "type": "object",
              "description": "An item's details.",
              "required": [
                "id",
                "quantity"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The ID of the item in the order."
                },
                "quantity": {
                  "type": "number",
                  "title": "quantity",
                  "description": "The item's quantity."
                },
                "description": {
                  "type": "string",
                  "title": "description",
                  "description": "The item's description."
                },
                "internal_note": {
                  "type": "string",
                  "title": "internal_note",
                  "description": "A note viewed only by admin users."
                }
              }
            }
          }
        }
      },
      "AdminRedeemGiftCard": {
        "type": "object",
        "description": "The details of the gift card to redeem.",
        "x-schemaName": "AdminRedeemGiftCard",
        "required": [
          "customer_id"
        ],
        "properties": {
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that the gift card belongs to. The gift card's value will be added to the customer's store credit account."
          }
        }
      },
      "AdminRefund": {
        "type": "object",
        "description": "The refund's details.",
        "x-schemaName": "AdminRefund",
        "required": [
          "id",
          "amount",
          "created_at",
          "payment"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The refund's ID."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The refund's amount."
          },
          "refund_reason_id": {
            "type": "string",
            "title": "refund_reason_id",
            "description": "The ID of the refund reason."
          },
          "note": {
            "type": "string",
            "title": "note",
            "description": "More details about the refund."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the refund was created."
          },
          "created_by": {
            "type": "string",
            "title": "created_by",
            "description": "The ID of the user that created the refund."
          },
          "payment": {
            "$ref": "#/components/schemas/BasePayment"
          },
          "refund_reason": {
            "$ref": "#/components/schemas/BaseRefundReason"
          }
        }
      },
      "AdminRefundPayment": {
        "type": "object",
        "description": "The refund's details.",
        "properties": {
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The amount to refund."
          },
          "refund_reason_id": {
            "type": "string",
            "title": "refund_reason_id",
            "description": "The ID of a refund reason."
          },
          "note": {
            "type": "string",
            "title": "note",
            "description": "A note to attach to the refund."
          }
        },
        "x-schemaName": "AdminRefundPayment"
      },
      "AdminRefundReason": {
        "type": "object",
        "description": "The refund reason's details.",
        "x-schemaName": "AdminRefundReason",
        "required": [
          "id",
          "label",
          "code",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The refund reason's ID."
          },
          "label": {
            "type": "string",
            "title": "label",
            "description": "The refund reason's label."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The refund reason's description."
          },
          "metadata": {
            "type": "object",
            "description": "The refund reason's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the refund reason was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the refund reason was updated."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The refund reason's code."
          }
        }
      },
      "AdminRefundReasonDeleteResponse": {
        "type": "object",
        "description": "The deletion's details.",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The refund reason's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "refund_reason"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the refund reason was deleted."
          }
        },
        "x-schemaName": "AdminRefundReasonDeleteResponse"
      },
      "AdminRegion": {
        "type": "object",
        "description": "The region's details.",
        "x-schemaName": "AdminRegion",
        "required": [
          "id",
          "currency_code",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The region's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The region's name."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The region's currency code.",
            "example": "usd"
          },
          "automatic_taxes": {
            "type": "boolean",
            "title": "automatic_taxes",
            "description": "Whether taxes are applied automatically during checkout."
          },
          "countries": {
            "type": "array",
            "description": "The region's countries.",
            "items": {
              "$ref": "#/components/schemas/AdminRegionCountry"
            }
          },
          "payment_providers": {
            "type": "array",
            "description": "The region's payment providers.",
            "items": {
              "$ref": "#/components/schemas/AdminPaymentProvider"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The region's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the region was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the region was updated."
          }
        }
      },
      "AdminRegionCountry": {
        "type": "object",
        "description": "The country's details.",
        "x-schemaName": "AdminRegionCountry",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The country's ID."
          },
          "iso_2": {
            "type": "string",
            "title": "iso_2",
            "description": "The country's iso 2.",
            "example": "us"
          },
          "iso_3": {
            "type": "string",
            "title": "iso_3",
            "description": "The country's iso 3.",
            "example": "usa"
          },
          "num_code": {
            "type": "string",
            "title": "num_code",
            "description": "The country's num code.",
            "example": 840
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The country's name."
          },
          "display_name": {
            "type": "string",
            "title": "display_name",
            "description": "The country's display name."
          }
        }
      },
      "AdminRegionResponse": {
        "type": "object",
        "description": "The region's details.",
        "x-schemaName": "AdminRegionResponse",
        "required": [
          "region"
        ],
        "properties": {
          "region": {
            "$ref": "#/components/schemas/AdminRegion"
          }
        }
      },
      "AdminRemoveDraftOrderPromotions": {
        "type": "object",
        "description": "The promotion codes to remove from the draft order.",
        "x-schemaName": "AdminRemoveDraftOrderPromotions",
        "required": [
          "promo_codes"
        ],
        "properties": {
          "promo_codes": {
            "type": "array",
            "description": "The promotion codes to remove from the draft order.",
            "items": {
              "type": "string",
              "title": "promo_codes",
              "description": "A promotion code to remove from the draft order."
            }
          }
        }
      },
      "AdminRequestOrderTransfer": {
        "type": "object",
        "description": "The details of the request to transfer the order.",
        "x-schemaName": "AdminRequestOrderTransfer",
        "required": [
          "customer_id"
        ],
        "properties": {
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer to transfer the order to."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The description of the order transfer, which can be shown to the customer receiving the order transfer request."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "An internal note viewable only by admin users."
          }
        }
      },
      "AdminReservation": {
        "type": "object",
        "description": "The reservation's details.",
        "x-schemaName": "AdminReservation",
        "required": [
          "id",
          "line_item_id",
          "location_id",
          "quantity",
          "external_id",
          "description",
          "inventory_item_id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The reservation's ID."
          },
          "line_item_id": {
            "type": "string",
            "title": "line_item_id",
            "description": "The ID of the line item this reservation is for."
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the location the quantity is reserved from."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The reservation's quantity."
          },
          "external_id": {
            "type": "string",
            "title": "external_id",
            "description": "An ID in an external system"
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The reservation's description."
          },
          "inventory_item_id": {
            "type": "string",
            "title": "inventory_item_id",
            "description": "The ID of the inventory item this reservation is associated with."
          },
          "inventory_item": {
            "$ref": "#/components/schemas/AdminInventoryItem"
          },
          "metadata": {
            "type": "object",
            "description": "The reservation's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_by": {
            "type": "string",
            "title": "created_by",
            "description": "The ID of the user that created this reservation."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date this reservation was deleted."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date this reservation was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date this reservation was updated."
          }
        }
      },
      "AdminReservationResponse": {
        "type": "object",
        "description": "The reservation's details.",
        "x-schemaName": "AdminReservationResponse",
        "required": [
          "reservation"
        ],
        "properties": {
          "reservation": {
            "$ref": "#/components/schemas/AdminReservation"
          }
        }
      },
      "AdminReturn": {
        "type": "object",
        "description": "The return's details.",
        "x-schemaName": "AdminReturn",
        "required": [
          "items",
          "id",
          "order_id",
          "order_version",
          "display_id",
          "received_at",
          "created_at",
          "canceled_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The return's ID."
          },
          "status": {
            "type": "string",
            "description": "The return's status.",
            "enum": [
              "canceled",
              "requested",
              "received",
              "partially_received"
            ]
          },
          "refund_amount": {
            "type": "number",
            "title": "refund_amount",
            "description": "The amount refunded by this return."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the associated order."
          },
          "items": {
            "type": "array",
            "description": "The return's items.",
            "items": {
              "$ref": "#/components/schemas/AdminReturnItem"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the return was created."
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date the return was canceled.",
            "format": "date-time"
          },
          "exchange_id": {
            "type": "string",
            "title": "exchange_id",
            "description": "The return's exchange id."
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The return's location id."
          },
          "claim_id": {
            "type": "string",
            "title": "claim_id",
            "description": "The return's claim id."
          },
          "order_version": {
            "type": "number",
            "title": "order_version",
            "description": "The return's order version."
          },
          "display_id": {
            "type": "number",
            "title": "display_id",
            "description": "The return's display id."
          },
          "no_notification": {
            "type": "boolean",
            "title": "no_notification",
            "description": "Whether the customer should receive notifications about the return's updates."
          },
          "received_at": {
            "type": "string",
            "title": "received_at",
            "description": "The date the return was received."
          }
        }
      },
      "AdminReturnItem": {
        "type": "object",
        "description": "The return item's details.",
        "x-schemaName": "AdminReturnItem",
        "required": [
          "id",
          "quantity",
          "received_quantity",
          "damaged_quantity",
          "item_id",
          "return_id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The return item's ID."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The return item's quantity."
          },
          "received_quantity": {
            "type": "number",
            "title": "received_quantity",
            "description": "The received quantity of the item. This quantity is added to the stocked inventory quantity of the item."
          },
          "damaged_quantity": {
            "type": "number",
            "title": "damaged_quantity",
            "description": "The received damaged quantity of the item, which isn't added to the stocked inventory quantity of the item."
          },
          "reason_id": {
            "type": "string",
            "title": "reason_id",
            "description": "The ID of the return reason associated with the item."
          },
          "note": {
            "type": "string",
            "title": "note",
            "description": "A note about why the item was returned."
          },
          "item_id": {
            "type": "string",
            "title": "item_id",
            "description": "The ID of the associated order item."
          },
          "return_id": {
            "type": "string",
            "title": "return_id",
            "description": "The ID of the return this return item belongs to."
          },
          "metadata": {
            "type": "object",
            "description": "The return item's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminReturnPreviewResponse": {
        "type": "object",
        "description": "The details of a return and a preview of the order once the return is applied.",
        "x-schemaName": "AdminReturnPreviewResponse",
        "required": [
          "order_preview",
          "return"
        ],
        "properties": {
          "order_preview": {
            "$ref": "#/components/schemas/AdminOrderPreview"
          },
          "return": {
            "$ref": "#/components/schemas/AdminReturn"
          }
        }
      },
      "AdminReturnReason": {
        "type": "object",
        "description": "The return reason's details.",
        "x-schemaName": "AdminReturnReason",
        "required": [
          "id",
          "value",
          "label",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The return reason's ID."
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The return reason's value."
          },
          "label": {
            "type": "string",
            "title": "label",
            "description": "The return reason's label."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The return reason's description."
          },
          "metadata": {
            "type": "object",
            "description": "The return reason's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the return reason was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the return reason was updated."
          }
        }
      },
      "AdminReturnReasonDeleteResponse": {
        "type": "object",
        "description": "The details of the return reason deletion.",
        "x-schemaName": "AdminReturnReasonDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The return reason's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "return_reason"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the return reason was deleted."
          }
        }
      },
      "AdminReturnReasonListResponse": {
        "type": "object",
        "description": "The paginated list of return reasons.",
        "x-schemaName": "AdminReturnReasonListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "return_reasons"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items."
          },
          "return_reasons": {
            "type": "array",
            "description": "The list of return reasons.",
            "items": {
              "$ref": "#/components/schemas/AdminReturnReason"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminReturnReasonResponse": {
        "type": "object",
        "description": "The return reason's details.",
        "x-schemaName": "AdminReturnReasonResponse",
        "required": [
          "return_reason"
        ],
        "properties": {
          "return_reason": {
            "$ref": "#/components/schemas/AdminReturnReason"
          }
        }
      },
      "AdminReturnResponse": {
        "type": "object",
        "description": "The return's details.",
        "x-schemaName": "AdminReturnResponse",
        "required": [
          "return"
        ],
        "properties": {
          "return": {
            "$ref": "#/components/schemas/AdminReturn"
          }
        }
      },
      "AdminRevokeApiKey": {
        "type": "object",
        "description": "The details of revoking the API key.",
        "x-schemaName": "AdminRevokeApiKey",
        "properties": {
          "revoke_in": {
            "type": "number",
            "title": "revoke_in",
            "description": "The time in seconds to revoke the API key after. If not set, the API key is revoked immediately."
          }
        }
      },
      "AdminRuleAttributeOption": {
        "type": "object",
        "description": "The details of a potential rule attribute.",
        "x-schemaName": "AdminRuleAttributeOption",
        "required": [
          "id",
          "value",
          "label",
          "operators"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The rule attribute's ID, which is a rule's `attribute` it refers to.",
            "example": "customer_group"
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The rule attribute's value.",
            "example": "customer.groups.id"
          },
          "label": {
            "type": "string",
            "title": "label",
            "description": "The rule attribute option's label.",
            "example": "Customer Group"
          },
          "operators": {
            "type": "array",
            "description": "The attribute's operators.",
            "items": {
              "$ref": "#/components/schemas/BaseRuleOperatorOptions"
            }
          }
        }
      },
      "AdminRuleValueOption": {
        "type": "object",
        "description": "The details of a potential rule value.",
        "x-schemaName": "AdminRuleValueOption",
        "required": [
          "value",
          "label"
        ],
        "properties": {
          "value": {
            "type": "string",
            "title": "value",
            "description": "The rule value's value.",
            "example": "reg_123"
          },
          "label": {
            "type": "string",
            "title": "label",
            "description": "The rule value's label.",
            "example": "Europe Region"
          }
        }
      },
      "AdminSalesChannel": {
        "type": "object",
        "description": "The sales channel's details.",
        "x-schemaName": "AdminSalesChannel",
        "required": [
          "id",
          "name",
          "description",
          "is_disabled",
          "metadata",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The sales channel's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The sales channel's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The sales channel's description."
          },
          "is_disabled": {
            "type": "boolean",
            "title": "is_disabled",
            "description": "Whether the sales channel is disabled."
          },
          "metadata": {
            "type": "object",
            "description": "The sales channel's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the sales channel was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the sales channel was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the sales channel was deleted."
          }
        }
      },
      "AdminSalesChannelDeleteResponse": {
        "type": "object",
        "description": "The details of deleting a sales channel.",
        "x-schemaName": "AdminSalesChannelDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The sales channel's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "sales-channel"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the sales channel was deleted."
          }
        }
      },
      "AdminSalesChannelResponse": {
        "type": "object",
        "description": "The sales channel's details.",
        "x-schemaName": "AdminSalesChannelResponse",
        "required": [
          "sales_channel"
        ],
        "properties": {
          "sales_channel": {
            "$ref": "#/components/schemas/AdminSalesChannel"
          }
        }
      },
      "AdminServiceZone": {
        "type": "object",
        "description": "The shipping option's service zone.",
        "x-schemaName": "AdminServiceZone",
        "required": [
          "id",
          "name",
          "fulfillment_set_id",
          "fulfillment_set",
          "geo_zones",
          "shipping_options",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The service zone's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The service zone's name."
          },
          "fulfillment_set_id": {
            "type": "string",
            "title": "fulfillment_set_id",
            "description": "The service zone's fulfillment set id."
          },
          "fulfillment_set": {
            "type": "object"
          },
          "geo_zones": {
            "type": "array",
            "description": "The service zone's geo zones.",
            "items": {
              "$ref": "#/components/schemas/AdminGeoZone"
            }
          },
          "shipping_options": {
            "type": "array",
            "description": "The service zone's shipping options.",
            "items": {
              "$ref": "#/components/schemas/AdminShippingOption"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The service zone's created at."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The service zone's updated at."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The service zone's deleted at."
          }
        }
      },
      "AdminServiceZoneDeleteResponse": {
        "type": "object",
        "description": "The details of the service zone deletion.",
        "x-schemaName": "AdminServiceZoneDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The service zone's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "service_zone"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the service zone was deleted."
          },
          "parent": {
            "$ref": "#/components/schemas/AdminFulfillmentSet"
          }
        }
      },
      "AdminServiceZoneResponse": {
        "type": "object",
        "description": "The service zone's details.",
        "x-schemaName": "AdminServiceZoneResponse",
        "required": [
          "service_zone"
        ],
        "properties": {
          "service_zone": {
            "$ref": "#/components/schemas/AdminServiceZone"
          }
        }
      },
      "AdminSetActiveViewConfiguration": {
        "type": "object",
        "description": "The details of a view configuration to set as active for the given entity.",
        "x-schemaName": "AdminSetActiveViewConfiguration",
        "required": [
          "view_configuration_id"
        ],
        "properties": {
          "view_configuration_id": {
            "type": "string",
            "title": "view_configuration_id",
            "description": "The ID of the view configuration to set as active. If `null`, the active view configuration will be cleared, and the `code` or system default view configuration will be used as the active view."
          }
        }
      },
      "AdminShippingOption": {
        "type": "object",
        "description": "The shipping option's details.",
        "x-schemaName": "AdminShippingOption",
        "required": [
          "id",
          "name",
          "price_type",
          "service_zone_id",
          "service_zone",
          "provider_id",
          "provider",
          "shipping_option_type_id",
          "type",
          "shipping_profile_id",
          "shipping_profile",
          "rules",
          "prices",
          "data",
          "metadata",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping option's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The shipping option's name."
          },
          "price_type": {
            "type": "string",
            "description": "The shipping option's price type. If it's `flat`, the price is fixed and is set in the `prices` property. If it's `calculated`, the price is calculated on checkout by the associated fulfillment provider.",
            "enum": [
              "calculated",
              "flat"
            ]
          },
          "service_zone_id": {
            "type": "string",
            "title": "service_zone_id",
            "description": "The ID of the service zone this option belongs to."
          },
          "service_zone": {
            "type": "object"
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the provider handling fulfillments created from this shipping option."
          },
          "provider": {
            "$ref": "#/components/schemas/AdminFulfillmentProvider"
          },
          "shipping_option_type_id": {
            "type": "string",
            "title": "shipping_option_type_id",
            "description": "The ID of the associated shipping option type."
          },
          "type": {
            "$ref": "#/components/schemas/AdminShippingOptionType"
          },
          "shipping_profile_id": {
            "type": "string",
            "title": "shipping_profile_id",
            "description": "The ID of the associated shipping profile."
          },
          "shipping_profile": {
            "$ref": "#/components/schemas/AdminShippingProfile"
          },
          "rules": {
            "type": "array",
            "description": "The shipping option's rules.",
            "items": {
              "$ref": "#/components/schemas/AdminShippingOptionRule"
            }
          },
          "prices": {
            "type": "array",
            "description": "The shipping option's prices. If the `price_type` is `calculated`, this array will be empty since the price is calculated by the fulfillment provider during checkout.",
            "items": {
              "$ref": "#/components/schemas/AdminShippingOptionPrice"
            }
          },
          "data": {
            "type": "object",
            "description": "The shipping option's data, useful for the fulfillment provider handling fulfillments created from this option.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The shipping option's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the shipping option was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the shipping option was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the shipping option was deleted."
          }
        }
      },
      "AdminShippingOptionDeleteResponse": {
        "type": "object",
        "description": "The details of the shipping option's deletion.",
        "x-schemaName": "AdminShippingOptionDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping option's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "shipping_option"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the shipping option was deleted."
          }
        }
      },
      "AdminShippingOptionPrice": {
        "type": "object",
        "description": "The details of the shipping option's price.",
        "x-schemaName": "AdminShippingOptionPrice",
        "required": [
          "price_rules",
          "rules_count",
          "id",
          "title",
          "currency_code",
          "amount",
          "raw_amount",
          "min_quantity",
          "max_quantity",
          "price_set_id",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "price_rules": {
            "type": "array",
            "description": "The price's rules.",
            "items": {
              "$ref": "#/components/schemas/AdminShippingOptionPriceRule"
            }
          },
          "rules_count": {
            "type": "number",
            "title": "rules_count",
            "description": "The number of rules the price has."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The price's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The price's title."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The price's currency code.",
            "example": "usd"
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The price's amount."
          },
          "raw_amount": {
            "type": "object",
            "description": "The price's raw amount."
          },
          "min_quantity": {
            "type": "number",
            "title": "min_quantity",
            "description": "The minimum quantity required in the cart for this price to apply."
          },
          "max_quantity": {
            "type": "number",
            "title": "max_quantity",
            "description": "The maximum quantity that the cart's items must not surpass for this price to apply."
          },
          "price_set_id": {
            "type": "string",
            "title": "price_set_id",
            "description": "The ID of the price set this price belongs to."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the price was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the price was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the price was deleted."
          }
        }
      },
      "AdminShippingOptionPriceRule": {
        "type": "object",
        "description": "The details of a shipping option price's rule.",
        "x-schemaName": "AdminShippingOptionPriceRule",
        "required": [
          "id",
          "value",
          "operator",
          "attribute",
          "price_id",
          "priority",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The price rule's ID."
          },
          "value": {
            "oneOf": [
              {
                "type": "string",
                "title": "value",
                "description": "The price rule's value."
              },
              {
                "type": "number",
                "title": "value",
                "description": "The price rule's value."
              }
            ],
            "description": "The price rule's value."
          },
          "operator": {
            "type": "string",
            "description": "The price rule's operator.",
            "enum": [
              "gt",
              "lt",
              "eq",
              "ne",
              "in",
              "lte",
              "gte",
              "nin"
            ]
          },
          "attribute": {
            "type": "string",
            "title": "attribute",
            "description": "The price rule's attribute."
          },
          "price_id": {
            "type": "string",
            "title": "price_id",
            "description": "The ID of the price this rule applies to."
          },
          "priority": {
            "type": "number",
            "title": "priority",
            "description": "The price rule's priority."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the price rule was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the price rule was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the price rule was deleted."
          }
        }
      },
      "AdminShippingOptionResponse": {
        "type": "object",
        "description": "The shipping option's details.",
        "x-schemaName": "AdminShippingOptionResponse",
        "required": [
          "shipping_option"
        ],
        "properties": {
          "shipping_option": {
            "$ref": "#/components/schemas/AdminShippingOption"
          }
        }
      },
      "AdminShippingOptionRule": {
        "type": "object",
        "description": "The shipping option rule's details.",
        "x-schemaName": "AdminShippingOptionRule",
        "required": [
          "id",
          "attribute",
          "operator",
          "value",
          "shipping_option_id",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping option rule's ID."
          },
          "attribute": {
            "type": "string",
            "title": "attribute",
            "description": "The shipping option rule's attribute.",
            "example": "is_return"
          },
          "operator": {
            "type": "string",
            "description": "The rule's operator.",
            "enum": [
              "gt",
              "lt",
              "eq",
              "ne",
              "in",
              "lte",
              "gte",
              "nin"
            ]
          },
          "value": {
            "oneOf": [
              {
                "type": "string",
                "title": "value",
                "description": "The shipping option rule's value.",
                "example": "true"
              },
              {
                "type": "array",
                "description": "The shipping option rule's values.",
                "items": {
                  "type": "string",
                  "title": "value",
                  "description": "A value of the shipping option rule.",
                  "example": "true"
                }
              }
            ]
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the shipping option this rule is for."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the shipping option rule was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the shipping option rule was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the shipping option rule was deleted."
          }
        }
      },
      "AdminShippingOptionType": {
        "type": "object",
        "description": "The shipping option's details.",
        "x-schemaName": "AdminShippingOptionType",
        "required": [
          "id",
          "label",
          "description",
          "code",
          "shipping_option_id",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping option's ID."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the shipping option was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the shipping option was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the shipping option was deleted."
          },
          "label": {
            "type": "string",
            "title": "label",
            "description": "The type's label."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The type's description."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The type's code."
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The type's shipping option id."
          }
        }
      },
      "AdminShippingOptionTypeDeleteResponse": {
        "type": "object",
        "description": "The response returned after deleting a shipping option type.",
        "x-schemaName": "AdminShippingOptionTypeDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping option type's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "shipping_option_type"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the Shipping Option Type was deleted."
          }
        }
      },
      "AdminShippingOptionTypeListResponse": {
        "type": "object",
        "description": "The paginated list of shipping option types.",
        "x-schemaName": "AdminShippingOptionTypeListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "shipping_option_types"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before returning the results."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items."
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          },
          "shipping_option_types": {
            "type": "array",
            "description": "The list of shipping option types.",
            "items": {
              "$ref": "#/components/schemas/AdminShippingOptionType"
            }
          }
        }
      },
      "AdminShippingOptionTypeResponse": {
        "type": "object",
        "description": "The shipping option type's details.",
        "x-schemaName": "AdminShippingOptionTypeResponse",
        "required": [
          "shipping_option_type"
        ],
        "properties": {
          "shipping_option_type": {
            "$ref": "#/components/schemas/AdminShippingOptionType"
          }
        }
      },
      "AdminShippingProfile": {
        "type": "object",
        "description": "The shipping profile's details..",
        "x-schemaName": "AdminShippingProfile",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping profile's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The shipping profile's name."
          },
          "type": {
            "type": "string",
            "title": "type",
            "description": "The shipping profile's type."
          },
          "metadata": {
            "type": "object",
            "description": "The shipping profile's metadata, holds custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the shipping profile was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the shipping profile was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the shipping profile was deleted."
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "metadata",
          "created_at",
          "updated_at",
          "deleted_at"
        ]
      },
      "AdminShippingProfileDeleteResponse": {
        "type": "object",
        "description": "The details of the shipping profile's deletion.",
        "x-schemaName": "AdminShippingProfileDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping profile's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "shipping_profile"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the shipping profile was deleted."
          }
        }
      },
      "AdminShippingProfileResponse": {
        "type": "object",
        "description": "The shipping profile's details.",
        "x-schemaName": "AdminShippingProfileResponse",
        "required": [
          "shipping_profile"
        ],
        "properties": {
          "shipping_profile": {
            "$ref": "#/components/schemas/AdminShippingProfile"
          }
        }
      },
      "AdminStockLocation": {
        "type": "object",
        "description": "The stock location's details.",
        "x-schemaName": "AdminStockLocation",
        "required": [
          "id",
          "name",
          "address_id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The location's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The location's name."
          },
          "address_id": {
            "type": "string",
            "title": "address_id",
            "description": "The ID of the associated address."
          },
          "address": {
            "$ref": "#/components/schemas/AdminStockLocationAddress"
          },
          "sales_channels": {
            "type": "array",
            "description": "The sales channels associated with the location.",
            "items": {
              "$ref": "#/components/schemas/AdminSalesChannel"
            }
          },
          "fulfillment_providers": {
            "type": "array",
            "description": "The fulfillment providers associated with the location.",
            "items": {
              "$ref": "#/components/schemas/AdminFulfillmentProvider"
            }
          },
          "fulfillment_sets": {
            "type": "array",
            "description": "The fulfillment sets associated with the location.",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "AdminStockLocationAddress": {
        "type": "object",
        "description": "The details of the stock location address.",
        "x-schemaName": "AdminStockLocationAddress",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The address's ID."
          },
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The address's second line."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The address's company."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The address's country code.",
            "example": "us"
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The address's city."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The address's phone."
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The address's postal code."
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The address's lower-case ISO 3166-2 province code.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          }
        },
        "required": [
          "id",
          "address_1",
          "address_2",
          "company",
          "country_code",
          "city",
          "phone",
          "postal_code",
          "province"
        ]
      },
      "AdminStockLocationDeleteResponse": {
        "type": "object",
        "description": "The details of the stock location's deletion.",
        "x-schemaName": "AdminStockLocationDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The stock location's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "stock_location"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the stock location was deleted."
          }
        }
      },
      "AdminStockLocationListResponse": {
        "type": "object",
        "description": "The paginated list of stock locations.",
        "x-schemaName": "AdminStockLocationListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "stock_locations"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items."
          },
          "stock_locations": {
            "type": "array",
            "description": "The list of stock locations.",
            "items": {
              "$ref": "#/components/schemas/AdminStockLocation"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminStockLocationResponse": {
        "type": "object",
        "description": "The stock location's details.",
        "x-schemaName": "AdminStockLocationResponse",
        "required": [
          "stock_location"
        ],
        "properties": {
          "stock_location": {
            "$ref": "#/components/schemas/AdminStockLocation"
          }
        }
      },
      "AdminStore": {
        "type": "object",
        "description": "The store's details.",
        "x-schemaName": "AdminStore",
        "required": [
          "id",
          "name",
          "supported_currencies",
          "supported_locales",
          "default_sales_channel_id",
          "default_region_id",
          "default_location_id",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The store's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The store's name."
          },
          "supported_currencies": {
            "type": "array",
            "description": "The store's supported currencies.",
            "items": {
              "$ref": "#/components/schemas/AdminStoreCurrency"
            }
          },
          "default_sales_channel_id": {
            "type": "string",
            "title": "default_sales_channel_id",
            "description": "The ID of the sales channel used by default in the store."
          },
          "default_region_id": {
            "type": "string",
            "title": "default_region_id",
            "description": "The ID of the region used by default in the store."
          },
          "default_location_id": {
            "type": "string",
            "title": "default_location_id",
            "description": "The ID of the stock location used by default in the store."
          },
          "metadata": {
            "type": "object",
            "description": "The store's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the store was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the store was updated."
          },
          "supported_locales": {
            "type": "array",
            "description": "The store's supported locales.",
            "items": {
              "$ref": "#/components/schemas/AdminStoreLocale"
            }
          }
        }
      },
      "AdminStoreCreditAccount": {
        "type": "object",
        "description": "The store credit account's details.",
        "x-schemaName": "AdminStoreCreditAccount",
        "required": [
          "customer",
          "transaction_groups",
          "id",
          "customer_id",
          "currency_code",
          "credits",
          "debits",
          "balance",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "customer": {
            "$ref": "#/components/schemas/AdminCustomer"
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The store credit account's ID."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that the store credit account belongs to."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The store credit account's currency code.",
            "example": "usd"
          },
          "credits": {
            "type": "number",
            "title": "credits",
            "description": "The account's credits."
          },
          "debits": {
            "type": "number",
            "title": "debits",
            "description": "The account's debits."
          },
          "balance": {
            "type": "number",
            "title": "balance",
            "description": "The account's balance."
          },
          "transaction_groups": {
            "type": "array",
            "description": "The store credit account's transaction groups.",
            "items": {
              "$ref": "#/components/schemas/AdminTransactionGroup"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The store credit account's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the store credit account was created at."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the store credit account was updated at."
          }
        }
      },
      "AdminStoreCreditAccountResponse": {
        "type": "object",
        "description": "The store credit account's details.",
        "x-schemaName": "AdminStoreCreditAccountResponse",
        "required": [
          "store_credit_account"
        ],
        "properties": {
          "store_credit_account": {
            "$ref": "#/components/schemas/AdminStoreCreditAccount"
          }
        }
      },
      "AdminStoreCreditAccountsResponse": {
        "type": "object",
        "description": "The paginated list of store credit accounts.",
        "x-schemaName": "AdminStoreCreditAccountsResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "store_credit_accounts"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of store credit accounts to return."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of store credit accounts to skip before retrieving the results."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of store credit accounts available."
          },
          "store_credit_accounts": {
            "type": "array",
            "description": "The list of store credit accounts.",
            "items": {
              "$ref": "#/components/schemas/AdminStoreCreditAccount"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The store credit account's estimate count.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminStoreCurrency": {
        "type": "object",
        "description": "The details of a store's currency.",
        "x-schemaName": "AdminStoreCurrency",
        "required": [
          "id",
          "currency_code",
          "store_id",
          "is_default",
          "currency",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The currency's ID."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The currency's code.",
            "example": "usd"
          },
          "store_id": {
            "type": "string",
            "title": "store_id",
            "description": "The ID of the store this currency belongs to."
          },
          "is_default": {
            "type": "boolean",
            "title": "is_default",
            "description": "Whether this currency is the default in the store."
          },
          "currency": {
            "$ref": "#/components/schemas/AdminCurrency"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the currency was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the currency was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the currency was deleted."
          }
        }
      },
      "AdminStoreListResponse": {
        "type": "object",
        "description": "The paginated list of stores.",
        "x-schemaName": "AdminStoreListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "stores"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items."
          },
          "stores": {
            "type": "array",
            "description": "The list of stores.",
            "items": {
              "$ref": "#/components/schemas/AdminStore"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminStoreLocale": {
        "type": "object",
        "description": "The details of a store's locale.",
        "x-schemaName": "AdminStoreLocale",
        "required": [
          "id",
          "locale_code",
          "store_id",
          "locale",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The locale's ID."
          },
          "locale_code": {
            "type": "string",
            "title": "locale_code",
            "description": "The locale's code in BCP 47 format."
          },
          "store_id": {
            "type": "string",
            "title": "store_id",
            "description": "The ID of the store to which the locale belongs."
          },
          "locale": {
            "$ref": "#/components/schemas/AdminLocale"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the locale was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the locale was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the locale was deleted."
          }
        }
      },
      "AdminStoreResponse": {
        "type": "object",
        "description": "The store's details.",
        "x-schemaName": "AdminStoreResponse",
        "required": [
          "store"
        ],
        "properties": {
          "store": {
            "$ref": "#/components/schemas/AdminStore"
          }
        }
      },
      "AdminTaxProvider": {
        "type": "object",
        "description": "The tax provider's details.",
        "x-schemaName": "AdminTaxProvider",
        "required": [
          "id",
          "is_enabled"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The tax provider's ID.",
            "example": "tp_taxjar_taxjar"
          },
          "is_enabled": {
            "type": "boolean",
            "title": "is_enabled",
            "description": "Whether the tax provider is enabled in the Medusa application."
          }
        }
      },
      "AdminTaxRate": {
        "type": "object",
        "description": "The tax rate's details.",
        "x-schemaName": "AdminTaxRate",
        "required": [
          "id",
          "rate",
          "code",
          "name",
          "metadata",
          "tax_region_id",
          "is_combinable",
          "is_default",
          "created_at",
          "updated_at",
          "deleted_at",
          "created_by",
          "tax_region",
          "rules"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The tax rate's ID."
          },
          "rate": {
            "type": "number",
            "title": "rate",
            "description": "The rate to charge.",
            "example": 10
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The code the tax rate is identified by."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The tax rate's name."
          },
          "metadata": {
            "type": "object",
            "description": "The tax rate's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "tax_region_id": {
            "type": "string",
            "title": "tax_region_id",
            "description": "The ID of the tax region this rate belongs to."
          },
          "is_combinable": {
            "type": "boolean",
            "title": "is_combinable",
            "description": "Whether the tax rate should be combined with parent rates.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/tax/tax-rates-and-rules#combinable-tax-rates"
            }
          },
          "is_default": {
            "type": "boolean",
            "title": "is_default",
            "description": "Whether this tax rate is the default in the tax region."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the tax rate was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the tax rate was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the tax rate was deleted."
          },
          "created_by": {
            "type": "string",
            "title": "created_by",
            "description": "The ID of the user that created the tax rate."
          },
          "tax_region": {
            "$ref": "#/components/schemas/AdminTaxRegion"
          },
          "rules": {
            "type": "array",
            "description": "The tax rate's rules.",
            "items": {
              "$ref": "#/components/schemas/AdminTaxRateRule"
            }
          }
        }
      },
      "AdminTaxRateDeleteResponse": {
        "type": "object",
        "description": "The details of the tax rate deletion.",
        "x-schemaName": "AdminTaxRateDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The tax rate's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "tax_rate"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the tax rate was deleted."
          }
        }
      },
      "AdminTaxRateResponse": {
        "type": "object",
        "description": "The tax rate's details.",
        "x-schemaName": "AdminTaxRateResponse",
        "required": [
          "tax_rate"
        ],
        "properties": {
          "tax_rate": {
            "$ref": "#/components/schemas/AdminTaxRate"
          }
        }
      },
      "AdminTaxRateRule": {
        "type": "object",
        "description": "The tax rate rule's details.",
        "x-schemaName": "AdminTaxRateRule",
        "required": [
          "reference",
          "reference_id"
        ],
        "properties": {
          "reference": {
            "type": "string",
            "title": "reference",
            "description": "The name of the table this rule references.",
            "example": "product_type"
          },
          "reference_id": {
            "type": "string",
            "title": "reference_id",
            "description": "The ID of a record in the table that this rule references.",
            "example": "ptyp_1"
          }
        }
      },
      "AdminTaxRegion": {
        "type": "object",
        "description": "The tax region's details.",
        "x-schemaName": "AdminTaxRegion",
        "required": [
          "id",
          "country_code",
          "province_code",
          "metadata",
          "parent_id",
          "created_at",
          "updated_at",
          "deleted_at",
          "created_by",
          "tax_rates",
          "parent",
          "children"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The tax region's ID."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The tax region's country code.",
            "example": "us"
          },
          "province_code": {
            "type": "string",
            "title": "province_code",
            "description": "The tax region's lower-case ISO 3166-2 province code.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The tax region's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "parent_id": {
            "type": "string",
            "title": "parent_id",
            "description": "The ID of the parent tax region."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the tax region was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the tax region was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the tax region was deleted."
          },
          "created_by": {
            "type": "string",
            "title": "created_by",
            "description": "The ID of the user that created the tax region."
          },
          "tax_rates": {
            "type": "array",
            "description": "The tax region's rates.",
            "items": {
              "type": "object"
            }
          },
          "parent": {
            "type": "object"
          },
          "children": {
            "type": "array",
            "description": "The tax region's children.",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "AdminTaxRegionDeleteResponse": {
        "type": "object",
        "description": "The details of the tax region deletion.",
        "x-schemaName": "AdminTaxRegionDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The tax region's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "tax_region"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the tax region was deleted."
          }
        }
      },
      "AdminTaxRegionResponse": {
        "type": "object",
        "description": "The tax region's details.",
        "x-schemaName": "AdminTaxRegionResponse",
        "required": [
          "tax_region"
        ],
        "properties": {
          "tax_region": {
            "$ref": "#/components/schemas/AdminTaxRegion"
          }
        }
      },
      "AdminTransaction": {
        "type": "object",
        "description": "The transaction's details.",
        "x-schemaName": "AdminTransaction",
        "required": [
          "account",
          "id",
          "account_id",
          "transaction_group_id",
          "type",
          "amount",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The transaction's ID."
          },
          "account_id": {
            "type": "string",
            "title": "account_id",
            "description": "The ID of the store credit account that the transaction belongs to."
          },
          "transaction_group_id": {
            "type": "string",
            "title": "transaction_group_id",
            "description": "The ID of the transaction group that the transaction belongs to."
          },
          "type": {
            "type": "string",
            "description": "The transaction's type.",
            "enum": [
              "credit",
              "debit"
            ]
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The transaction's amount."
          },
          "account": {
            "$ref": "#/components/schemas/AdminStoreCreditAccount"
          },
          "note": {
            "type": "string",
            "title": "note",
            "description": "The transaction's note."
          },
          "reference": {
            "type": "string",
            "title": "reference",
            "description": "The transaction's reference."
          },
          "reference_id": {
            "type": "string",
            "title": "reference_id",
            "description": "The transaction's reference ID."
          },
          "metadata": {
            "type": "object",
            "description": "The transaction's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the transaction was created at."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the transaction was updated at."
          }
        }
      },
      "AdminTransactionGroup": {
        "type": "object",
        "description": "The transaction group's details.",
        "x-schemaName": "AdminTransactionGroup",
        "required": [
          "account",
          "id",
          "code",
          "credits",
          "debits",
          "balance",
          "metadata"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The transaction group's ID."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The transaction group's code."
          },
          "credits": {
            "type": "number",
            "title": "credits",
            "description": "The transaction group's credits."
          },
          "debits": {
            "type": "number",
            "title": "debits",
            "description": "The transaction group's debits."
          },
          "balance": {
            "type": "number",
            "title": "balance",
            "description": "The transaction group's balance."
          },
          "account": {
            "type": "object"
          },
          "metadata": {
            "type": "object",
            "description": "The transaction group's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminTransactionGroupsResponse": {
        "type": "object",
        "description": "The paginated list of transaction groups.",
        "x-schemaName": "AdminTransactionGroupsResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "transaction_groups"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of transaction groups to return."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of transaction groups to skip before retrieving the results."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of transaction groups available."
          },
          "transaction_groups": {
            "type": "array",
            "description": "The list of transaction groups.",
            "items": {
              "$ref": "#/components/schemas/AdminTransactionGroup"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The transaction group's estimate count.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminTransactionsResponse": {
        "type": "object",
        "description": "The paginated list of transactions.",
        "x-schemaName": "AdminTransactionsResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "transactions"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of transactions to return."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of transactions to skip before retrieving the results."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of transactions available."
          },
          "transactions": {
            "type": "array",
            "description": "The list of transactions.",
            "items": {
              "$ref": "#/components/schemas/AdminTransaction"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The store credit account's estimate count.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminTranslation": {
        "type": "object",
        "description": "The translation's details.",
        "x-schemaName": "AdminTranslation",
        "required": [
          "id",
          "reference_id",
          "reference",
          "locale_code",
          "translations",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The translation's ID."
          },
          "reference_id": {
            "type": "string",
            "title": "reference_id",
            "description": "The ID of the resource that the translation belongs to. For example, the ID of a product.",
            "example": "prod_123"
          },
          "reference": {
            "type": "string",
            "title": "reference",
            "description": "The resource that the translation belongs to.",
            "example": "product"
          },
          "locale_code": {
            "type": "string",
            "title": "locale_code",
            "description": "The translation's locale code in BCP 47 format.",
            "example": "fr-FR"
          },
          "translations": {
            "type": "object",
            "description": "The translation key-value pairs. Each key is a field in the resource, and the value is the translated text.",
            "example": {
              "title": "Chaussures",
              "description": "Des chaussures élégantes."
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date that the translation was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date that the translation was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date that the translation was deleted."
          }
        }
      },
      "AdminTranslationEntitiesResponse": {
        "type": "object",
        "description": "The list of translatable entities.",
        "x-schemaName": "AdminTranslationEntitiesResponse",
        "required": [
          "data",
          "count",
          "offset",
          "limit"
        ],
        "properties": {
          "data": {
            "type": "array",
            "description": "The list of translatable entities.",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "description": "The entity's data.",
                  "required": [
                    "id",
                    "translations"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The entity's ID."
                    },
                    "translations": {
                      "type": "array",
                      "description": "The entity's translations.",
                      "items": {
                        "$ref": "#/components/schemas/AdminTranslation"
                      }
                    }
                  }
                }
              ]
            }
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of translatable entities."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned in the response."
          }
        }
      },
      "AdminTranslationSettings": {
        "type": "object",
        "description": "The translation settings details.",
        "x-schemaName": "AdminTranslationSettings",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "deleted_at",
          "entity_type",
          "fields",
          "is_active"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The ID of the translation settings."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the translation settings was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the translation settings was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the translation settings was deleted."
          },
          "entity_type": {
            "type": "string",
            "title": "entity_type",
            "description": "The entity type the translation settings are for.",
            "example": "product"
          },
          "fields": {
            "type": "array",
            "description": "The fields supported for translations.",
            "items": {
              "type": "string",
              "title": "fields",
              "description": "A field supported for translations."
            }
          },
          "is_active": {
            "type": "boolean",
            "title": "is_active",
            "description": "Whether translations are active for the given entity type."
          }
        }
      },
      "AdminTranslationSettingsResponse": {
        "type": "object",
        "description": "The translation settings' details.",
        "x-schemaName": "AdminTranslationSettingsResponse",
        "required": [
          "translation_settings"
        ],
        "properties": {
          "translation_settings": {
            "type": "object",
            "description": "The translation settings details."
          }
        }
      },
      "AdminTranslationStatisticsResponse": {
        "type": "object",
        "description": "The translation statistics details.",
        "x-schemaName": "AdminTranslationStatisticsResponse",
        "required": [
          "statistics"
        ],
        "properties": {
          "statistics": {
            "type": "object",
            "description": "The translation statistics for different entity types. The key is the entity type, and the value is an object containing the statistics for that entity type.",
            "example": {
              "product": {
                "expected": 150,
                "translated": 120,
                "missing": 30,
                "by_locale": {
                  "fr-FR": {
                    "expected": 150,
                    "translated": 120,
                    "missing": 30
                  }
                }
              }
            },
            "required": [
              "by_locale",
              "expected",
              "translated",
              "missing"
            ],
            "additionalProperties": {
              "type": "object",
              "properties": {
                "by_locale": {
                  "type": "object",
                  "description": "The translation statistics of an entity type broken down by locale. The key is the locale code in BCP 47 format, and the value is an object containing the statistics for that locale.",
                  "example": {
                    "fr-FR": {
                      "expected": 150,
                      "translated": 120,
                      "missing": 30
                    }
                  },
                  "required": [
                    "expected",
                    "translated",
                    "missing"
                  ],
                  "additionalProperties": {
                    "type": "object",
                    "properties": {
                      "expected": {
                        "type": "number",
                        "title": "expected",
                        "description": "The total number of translatable fields."
                      },
                      "translated": {
                        "type": "number",
                        "title": "translated",
                        "description": "The number of translated fields."
                      },
                      "missing": {
                        "type": "number",
                        "title": "missing",
                        "description": "The number of fields that are yet to be translated."
                      }
                    }
                  }
                },
                "expected": {
                  "type": "number",
                  "title": "expected",
                  "description": "The total number of translatable fields across specified locales."
                },
                "translated": {
                  "type": "number",
                  "title": "translated",
                  "description": "The number of translated fields across specified locales."
                },
                "missing": {
                  "type": "number",
                  "title": "missing",
                  "description": "The number of fields that are yet to be translated across specified locales."
                }
              }
            }
          }
        }
      },
      "AdminTranslationsBatchResponse": {
        "type": "object",
        "description": "The batch response for managing translations.",
        "x-schemaName": "AdminTranslationsBatchResponse",
        "required": [
          "created",
          "updated",
          "deleted"
        ],
        "properties": {
          "created": {
            "type": "array",
            "description": "The created translations.",
            "items": {
              "$ref": "#/components/schemas/AdminTranslation"
            }
          },
          "updated": {
            "type": "array",
            "description": "The updated translations.",
            "items": {
              "$ref": "#/components/schemas/AdminTranslation"
            }
          },
          "deleted": {
            "type": "object",
            "description": "Summary of the deleted translations.",
            "required": [
              "ids",
              "object",
              "deleted"
            ],
            "properties": {
              "ids": {
                "type": "array",
                "description": "The IDs of the deleted translations.",
                "items": {
                  "type": "string",
                  "title": "ids",
                  "description": "A translation ID."
                }
              },
              "object": {
                "type": "string",
                "title": "object",
                "description": "The type of object deleted.",
                "default": "translation"
              },
              "deleted": {
                "type": "boolean",
                "title": "deleted",
                "description": "Whether the translations were successfully deleted."
              }
            }
          }
        }
      },
      "AdminUpdateApiKey": {
        "type": "object",
        "description": "The details to update in an API key.",
        "x-schemaName": "AdminUpdateApiKey",
        "required": [
          "title"
        ],
        "properties": {
          "title": {
            "type": "string",
            "title": "title",
            "description": "The API key's title."
          }
        }
      },
      "AdminUpdateClaimItem": {
        "type": "object",
        "description": "The details to update in the item.",
        "x-schemaName": "AdminUpdateClaimItem",
        "properties": {
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "reason_id": {
            "type": "string",
            "title": "reason_id",
            "description": "The ID of the return reason associated with the item."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note that's only viewed by admin users."
          }
        }
      },
      "AdminUpdateClaimOutboundItem": {
        "type": "object",
        "description": "The details to update in the item.",
        "x-schemaName": "AdminUpdateClaimOutboundItem",
        "properties": {
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "reason_id": {
            "type": "string",
            "title": "reason_id",
            "description": "The ID of the return reason associated with the item."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note that's only viewed by admin users."
          }
        }
      },
      "AdminUpdateCustomerGroup": {
        "type": "object",
        "description": "The details to update in a customer group.",
        "x-schemaName": "AdminUpdateCustomerGroup",
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The customer group's name."
          },
          "metadata": {
            "type": "object",
            "description": "The customer group's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminUpdateDraftOrder": {
        "type": "object",
        "description": "The data to update in the draft order.",
        "x-schemaName": "AdminUpdateDraftOrder",
        "properties": {
          "email": {
            "type": "string",
            "title": "email",
            "description": "The customer email associated with the draft order.",
            "format": "email"
          },
          "shipping_address": {
            "$ref": "#/components/schemas/OrderAddress"
          },
          "billing_address": {
            "$ref": "#/components/schemas/OrderAddress"
          },
          "metadata": {
            "type": "object",
            "description": "The draft order's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer associated with the draft order."
          },
          "sales_channel_id": {
            "type": "string",
            "title": "sales_channel_id",
            "description": "The ID of the sales channel associated with the draft order."
          }
        }
      },
      "AdminUpdateDraftOrderActionShippingMethod": {
        "type": "object",
        "description": "The updates to make on a changed shipping method.",
        "x-schemaName": "AdminUpdateDraftOrderActionShippingMethod",
        "required": [
          "shipping_option_id"
        ],
        "properties": {
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the associated shipping option."
          },
          "custom_amount": {
            "type": "number",
            "title": "custom_amount",
            "description": "The custom amount of the shipping method. If not provided, the shipping option's amount will be used."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The shipping method's description."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users about the shipping method."
          },
          "metadata": {
            "type": "object",
            "description": "The shipping method's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminUpdateDraftOrderItem": {
        "type": "object",
        "description": "The updates to make on a draft order's item.",
        "x-schemaName": "AdminUpdateDraftOrderItem",
        "required": [
          "quantity"
        ],
        "properties": {
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "unit_price": {
            "type": "number",
            "title": "unit_price",
            "description": "The item's unit price."
          },
          "compare_at_unit_price": {
            "type": "number",
            "title": "compare_at_unit_price",
            "description": "The original price of the item before a promotion or sale."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users about the item."
          }
        }
      },
      "AdminUpdateDraftOrderShippingMethod": {
        "type": "object",
        "description": "The updates to make on a draft order's shipping method.",
        "x-schemaName": "AdminUpdateDraftOrderShippingMethod",
        "properties": {
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the associated shipping option."
          },
          "custom_amount": {
            "type": "number",
            "title": "custom_amount",
            "description": "The custom amount of the shipping method. If not provided, the shipping option's amount will be used."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users about the shipping method."
          }
        }
      },
      "AdminUpdateExchangeOutboundItem": {
        "type": "object",
        "description": "The details to update in an outbound item.",
        "x-schemaName": "AdminUpdateExchangeOutboundItem",
        "properties": {
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note only viewed by admin users."
          }
        }
      },
      "AdminUpdateFulfillmentSetServiceZone": {
        "type": "object",
        "description": "The service zone's details.",
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The service zone's name."
          },
          "geo_zones": {
            "type": "array",
            "description": "The service zone's associated geo zones.",
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "description": "A country geo zone.",
                  "required": [
                    "type",
                    "metadata",
                    "country_code"
                  ],
                  "properties": {
                    "type": {
                      "type": "string",
                      "title": "type",
                      "description": "The geo zone's type.",
                      "default": "country"
                    },
                    "metadata": {
                      "type": "object",
                      "description": "The geo zone's metadata.",
                      "externalDocs": {
                        "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                        "description": "Learn how to manage metadata"
                      }
                    },
                    "country_code": {
                      "type": "string",
                      "title": "country_code",
                      "description": "The geo zone's country code."
                    },
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The ID of an existing geo zone."
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "A province geo zone.",
                  "required": [
                    "type",
                    "metadata",
                    "country_code",
                    "province_code"
                  ],
                  "properties": {
                    "type": {
                      "type": "string",
                      "title": "type",
                      "description": "The geo zone's type.",
                      "default": "province"
                    },
                    "metadata": {
                      "type": "object",
                      "description": "The geo zone's metadata.",
                      "externalDocs": {
                        "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                        "description": "Learn how to manage metadata"
                      }
                    },
                    "country_code": {
                      "type": "string",
                      "title": "country_code",
                      "description": "The geo zone's country code."
                    },
                    "province_code": {
                      "type": "string",
                      "title": "province_code",
                      "description": "The geo zone's ISO 3166-2 province code. Must be lower-case.",
                      "example": "us-ca",
                      "externalDocs": {
                        "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                        "description": "Learn more about ISO 3166-2"
                      }
                    },
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The ID of an existing geo zone."
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "A city geo zone",
                  "required": [
                    "type",
                    "metadata",
                    "city",
                    "country_code",
                    "province_code"
                  ],
                  "properties": {
                    "type": {
                      "type": "string",
                      "title": "type",
                      "description": "The geo zone's type.",
                      "default": "city"
                    },
                    "metadata": {
                      "type": "object",
                      "description": "The geo zone's metadata.",
                      "externalDocs": {
                        "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                        "description": "Learn how to manage metadata"
                      }
                    },
                    "city": {
                      "type": "string",
                      "title": "city",
                      "description": "The geo zone's city."
                    },
                    "country_code": {
                      "type": "string",
                      "title": "country_code",
                      "description": "The geo zone's country code."
                    },
                    "province_code": {
                      "type": "string",
                      "title": "province_code",
                      "description": "The geo zone's ISO 3166-2 province code. Must be lower-case.",
                      "example": "us-ca",
                      "externalDocs": {
                        "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                        "description": "Learn more about ISO 3166-2"
                      }
                    },
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The ID of an existing geo zone."
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "A ZIP geo zone.",
                  "required": [
                    "type",
                    "metadata",
                    "city",
                    "country_code",
                    "province_code",
                    "postal_expression"
                  ],
                  "properties": {
                    "type": {
                      "type": "string",
                      "title": "type",
                      "description": "The geo zone's type.",
                      "default": "zip"
                    },
                    "metadata": {
                      "type": "object",
                      "description": "The geo zone's metadata.",
                      "externalDocs": {
                        "url": "https://docs.medusajs.com/api/admin#manage-metadata",
                        "description": "Learn how to manage metadata"
                      }
                    },
                    "city": {
                      "type": "string",
                      "title": "city",
                      "description": "The geo zone's city."
                    },
                    "country_code": {
                      "type": "string",
                      "title": "country_code",
                      "description": "The geo zone's country code."
                    },
                    "province_code": {
                      "type": "string",
                      "title": "province_code",
                      "description": "The geo zone's ISO 3166-2 province code. Must be lower-case.",
                      "example": "us-ca",
                      "externalDocs": {
                        "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
                        "description": "Learn more about ISO 3166-2"
                      }
                    },
                    "postal_expression": {
                      "type": "object",
                      "description": "The geo zone's postal expression or ZIP code."
                    },
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The ID of an existing geo zone."
                    }
                  }
                }
              ]
            }
          }
        },
        "x-schemaName": "AdminUpdateFulfillmentSetServiceZone"
      },
      "AdminUpdateGiftCardParams": {
        "type": "object",
        "description": "The details to update in the gift card.",
        "x-schemaName": "AdminUpdateGiftCardParams",
        "properties": {
          "status": {
            "type": "string",
            "description": "The gift card's status.",
            "enum": [
              "pending",
              "redeemed"
            ]
          },
          "value": {
            "type": "number",
            "title": "value",
            "description": "The gift card's amount."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that the gift card belongs to."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The gift card's currency code.",
            "example": "usd"
          },
          "note": {
            "type": "string",
            "title": "note",
            "description": "The gift card's note."
          },
          "expires_at": {
            "type": "string",
            "title": "expires_at",
            "description": "The date the gift card expires at."
          },
          "metadata": {
            "type": "object",
            "description": "The gift card's metadata.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminUpdateInventoryItem": {
        "type": "object",
        "description": "The properties to update in the inventory item.",
        "properties": {
          "sku": {
            "type": "string",
            "title": "sku",
            "description": "The inventory item's SKU."
          },
          "hs_code": {
            "type": "string",
            "title": "hs_code",
            "description": "The inventory item's HS code."
          },
          "weight": {
            "type": "number",
            "title": "weight",
            "description": "The inventory item's weight."
          },
          "length": {
            "type": "number",
            "title": "length",
            "description": "The inventory item's length."
          },
          "height": {
            "type": "number",
            "title": "height",
            "description": "The inventory item's height."
          },
          "width": {
            "type": "number",
            "title": "width",
            "description": "The inventory item's width."
          },
          "origin_country": {
            "type": "string",
            "title": "origin_country",
            "description": "The inventory item's origin country."
          },
          "mid_code": {
            "type": "string",
            "title": "mid_code",
            "description": "The inventory item's MID code."
          },
          "material": {
            "type": "string",
            "title": "material",
            "description": "The inventory item's material."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The inventory item's title."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The inventory item's description."
          },
          "requires_shipping": {
            "type": "boolean",
            "title": "requires_shipping",
            "description": "Whether the inventory item requires shipping."
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The URL of an image to be used as the inventory item's thumbnail. You can use the Upload API routes to upload an image and get its URL."
          },
          "metadata": {
            "type": "object",
            "description": "The inventory item's metadata. Can be custom data in key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        },
        "x-schemaName": "AdminUpdateInventoryItem"
      },
      "AdminUpdateInventoryLevel": {
        "type": "object",
        "description": "The properties to update in the inventory level.",
        "properties": {
          "stocked_quantity": {
            "type": "number",
            "title": "stocked_quantity",
            "description": "The inventory level's stocked quantity."
          },
          "incoming_quantity": {
            "type": "number",
            "title": "incoming_quantity",
            "description": "The inventory level's incoming quantity."
          }
        },
        "x-schemaName": "AdminUpdateInventoryLevel"
      },
      "AdminUpdateOrder": {
        "type": "object",
        "description": "The details to update in the order.",
        "x-schemaName": "AdminUpdateOrder",
        "properties": {
          "email": {
            "type": "string",
            "title": "email",
            "description": "The order's email.",
            "format": "email"
          },
          "shipping_address": {
            "$ref": "#/components/schemas/OrderAddress"
          },
          "billing_address": {
            "$ref": "#/components/schemas/OrderAddress"
          },
          "metadata": {
            "type": "object",
            "description": "The order's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "locale": {
            "type": "string",
            "title": "locale",
            "description": "The order's locale in [BCP 47](https://gist.github.com/typpo/b2b828a35e683b9bf8db91b5404f1bd1) format.",
            "example": "en-US"
          }
        }
      },
      "AdminUpdateOrderChange": {
        "type": "object",
        "description": "The data to update in the order change.",
        "x-schemaName": "AdminUpdateOrderChange",
        "properties": {
          "carry_over_promotions": {
            "type": "boolean",
            "title": "carry_over_promotions",
            "description": "Whether promotions from the original order should be carried over to the order change (specifically, exchanges)."
          }
        }
      },
      "AdminUpdatePriceList": {
        "type": "object",
        "description": "the details to update in a price list.",
        "x-schemaName": "AdminUpdatePriceList",
        "properties": {
          "title": {
            "type": "string",
            "title": "title",
            "description": "The price list's title."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The price list's description."
          },
          "starts_at": {
            "type": "string",
            "title": "starts_at",
            "description": "The date the price list starts."
          },
          "ends_at": {
            "type": "string",
            "title": "ends_at",
            "description": "The date the price list ends."
          },
          "status": {
            "type": "string",
            "description": "The price list's status.",
            "enum": [
              "active",
              "draft"
            ]
          },
          "type": {
            "type": "string",
            "description": "The price list's type.",
            "enum": [
              "sale",
              "override"
            ]
          },
          "rules": {
            "type": "object",
            "description": "The price list's rules.",
            "example": {
              "customer_group_id": [
                "cusgrp_123"
              ]
            }
          }
        }
      },
      "AdminUpdatePricePreference": {
        "type": "object",
        "description": "The details to update in the price preference.",
        "x-schemaName": "AdminUpdatePricePreference",
        "properties": {
          "attribute": {
            "type": "string",
            "title": "attribute",
            "description": "The price preference's attribute.",
            "example": "region_id"
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The price preference's value.",
            "example": "reg_123"
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether prices are tax inclusive for this price preference."
          }
        }
      },
      "AdminUpdateProduct": {
        "type": "object",
        "description": "The product's details.",
        "x-schemaName": "AdminUpdateProduct",
        "properties": {
          "title": {
            "type": "string",
            "title": "title",
            "description": "The product's title."
          },
          "subtitle": {
            "type": "string",
            "title": "subtitle",
            "description": "The product's subtitle."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The product's description."
          },
          "is_giftcard": {
            "type": "boolean",
            "title": "is_giftcard",
            "description": "Whether the product is a gift card."
          },
          "discountable": {
            "type": "boolean",
            "title": "discountable",
            "description": "Whether discounts can be applied on the product."
          },
          "images": {
            "type": "array",
            "description": "The product's images.",
            "items": {
              "type": "object",
              "description": "The image's details.",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "url",
                  "description": "The image's URL."
                }
              }
            }
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The product's thumbnail URL."
          },
          "handle": {
            "type": "string",
            "title": "handle",
            "description": "The product's unique handle."
          },
          "status": {
            "type": "string",
            "description": "The product's status.",
            "enum": [
              "draft",
              "proposed",
              "published",
              "rejected"
            ]
          },
          "type_id": {
            "type": "string",
            "title": "type_id",
            "description": "The ID of the product's type."
          },
          "collection_id": {
            "type": "string",
            "title": "collection_id",
            "description": "The ID of the product's collection."
          },
          "categories": {
            "type": "array",
            "description": "The product's categories.",
            "items": {
              "type": "object",
              "description": "The product's category.",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The category's ID."
                }
              }
            }
          },
          "tags": {
            "type": "array",
            "description": "The product's tags.",
            "items": {
              "type": "object",
              "description": "The product's tag.",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The tag's ID."
                }
              }
            }
          },
          "options": {
            "type": "array",
            "description": "The product's options.",
            "items": {
              "$ref": "#/components/schemas/AdminUpdateProductOption"
            }
          },
          "variants": {
            "type": "array",
            "description": "The product's variants. You can add new variants or update existing ones, passing their IDs in the object.",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/AdminCreateProductVariant"
                },
                {
                  "$ref": "#/components/schemas/AdminUpdateProductVariant"
                }
              ]
            }
          },
          "sales_channels": {
            "type": "array",
            "description": "The sales channels that the product is available in.",
            "items": {
              "type": "object",
              "description": "The sales channel's details.",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The sales channel's ID."
                }
              }
            }
          },
          "weight": {
            "type": "number",
            "title": "weight",
            "description": "The product's weight."
          },
          "length": {
            "type": "number",
            "title": "length",
            "description": "The product's length."
          },
          "height": {
            "type": "number",
            "title": "height",
            "description": "The product's height."
          },
          "width": {
            "type": "number",
            "title": "width",
            "description": "The product's width."
          },
          "hs_code": {
            "type": "string",
            "title": "hs_code",
            "description": "The product's HS code."
          },
          "mid_code": {
            "type": "string",
            "title": "mid_code",
            "description": "The product's MID code."
          },
          "origin_country": {
            "type": "string",
            "title": "origin_country",
            "description": "The product's origin country."
          },
          "material": {
            "type": "string",
            "title": "material",
            "description": "The product's material."
          },
          "metadata": {
            "type": "object",
            "description": "The product's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "external_id": {
            "type": "string",
            "title": "external_id",
            "description": "The ID of the product in an external or third-party system."
          }
        }
      },
      "AdminUpdateProductCategory": {
        "type": "object",
        "description": "The properties to update in the product category.",
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The product category's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The product category's description."
          },
          "handle": {
            "type": "string",
            "title": "handle",
            "description": "The product category's handle. Must be a unique value."
          },
          "is_internal": {
            "type": "boolean",
            "title": "is_internal",
            "description": "Whether the product category is only used for internal purposes and shouldn't be shown the customer."
          },
          "is_active": {
            "type": "boolean",
            "title": "is_active",
            "description": "Whether the product category is active."
          },
          "parent_category_id": {
            "type": "string",
            "title": "parent_category_id",
            "description": "The ID of a parent category."
          },
          "metadata": {
            "type": "object",
            "description": "The product category's metadata. Can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "rank": {
            "type": "number",
            "title": "rank",
            "description": "The product category's rank among other categories."
          }
        },
        "x-schemaName": "AdminUpdateProductCategory"
      },
      "AdminUpdateProductOption": {
        "type": "object",
        "description": "The details to update in a product option.",
        "x-schemaName": "AdminUpdateProductOption",
        "properties": {
          "title": {
            "type": "string",
            "title": "title",
            "description": "The option's title."
          },
          "values": {
            "type": "array",
            "description": "The option's values.",
            "items": {
              "type": "string",
              "title": "values",
              "description": "An option value."
            }
          }
        }
      },
      "AdminUpdateProductTag": {
        "type": "object",
        "description": "The properties to update in the product tag.",
        "properties": {
          "value": {
            "type": "string",
            "title": "value",
            "description": "The product tag's value."
          },
          "metadata": {
            "type": "object",
            "description": "The product tag's metadata. Can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        },
        "x-schemaName": "AdminUpdateProductTag"
      },
      "AdminUpdateProductType": {
        "type": "object",
        "description": "The properties to update in the product type.",
        "properties": {
          "value": {
            "type": "string",
            "title": "value",
            "description": "The product type's value."
          },
          "metadata": {
            "type": "object",
            "description": "The product type's metadata. Can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        },
        "x-schemaName": "AdminUpdateProductType"
      },
      "AdminUpdateProductVariant": {
        "type": "object",
        "description": "The properties to update of a product variant.",
        "x-schemaName": "AdminUpdateProductVariant",
        "properties": {
          "title": {
            "type": "string",
            "title": "title",
            "description": "The product variant's title."
          },
          "sku": {
            "type": "string",
            "title": "sku",
            "description": "The product variant's SKU."
          },
          "ean": {
            "type": "string",
            "title": "ean",
            "description": "The product variant's EAN."
          },
          "upc": {
            "type": "string",
            "title": "upc",
            "description": "The product variant's UPC."
          },
          "barcode": {
            "type": "string",
            "title": "barcode",
            "description": "The product variant's barcode."
          },
          "hs_code": {
            "type": "string",
            "title": "hs_code",
            "description": "The product variant's HS code."
          },
          "mid_code": {
            "type": "string",
            "title": "mid_code",
            "description": "The product variant's MID code."
          },
          "allow_backorder": {
            "type": "boolean",
            "title": "allow_backorder",
            "description": "Whether customers can order the variant even if it's not in stock."
          },
          "manage_inventory": {
            "type": "boolean",
            "title": "manage_inventory",
            "description": "Whether the Medusa application manages the variant's inventory. If disabled, the product variant is always considered in stock."
          },
          "variant_rank": {
            "type": "number",
            "title": "variant_rank",
            "description": "The product variant's rank among its siblings."
          },
          "weight": {
            "type": "number",
            "title": "weight",
            "description": "The product variant's weight."
          },
          "length": {
            "type": "number",
            "title": "length",
            "description": "The product variant's length."
          },
          "height": {
            "type": "number",
            "title": "height",
            "description": "The product variant's height."
          },
          "width": {
            "type": "number",
            "title": "width",
            "description": "The product variant's width."
          },
          "origin_country": {
            "type": "string",
            "title": "origin_country",
            "description": "The product variant's origin country."
          },
          "material": {
            "type": "string",
            "title": "material",
            "description": "The product variant's material."
          },
          "metadata": {
            "type": "object",
            "description": "The product variant's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "prices": {
            "type": "array",
            "description": "The product variant's prices.",
            "items": {
              "$ref": "#/components/schemas/AdminCreateProductVariantPrice"
            }
          },
          "options": {
            "type": "object",
            "description": "The product variant's options."
          }
        }
      },
      "AdminUpdatePromotionRule": {
        "type": "object",
        "description": "The properties to update in a buy rule.",
        "required": [
          "id",
          "values"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The buy rule's ID."
          },
          "operator": {
            "type": "string",
            "description": "The operator used to check whether the buy rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value.",
            "enum": [
              "gte",
              "lte",
              "gt",
              "lt",
              "eq",
              "ne",
              "in"
            ]
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The buy rule's description."
          },
          "attribute": {
            "type": "string",
            "title": "attribute",
            "description": "The attribute to compare against when checking whether a promotion can be applied on a cart.",
            "example": "items.product.id"
          },
          "values": {
            "oneOf": [
              {
                "type": "string",
                "title": "values",
                "description": "The attribute's value.",
                "example": "prod_123"
              },
              {
                "type": "array",
                "description": "The allowed attribute values.",
                "items": {
                  "type": "string",
                  "title": "values",
                  "description": "An attribute value.",
                  "example": "prod_123"
                }
              }
            ]
          }
        },
        "x-schemaName": "AdminUpdatePromotionRule"
      },
      "AdminUpdateRefundReason": {
        "type": "object",
        "description": "The properties to update in the refund reason.",
        "properties": {
          "label": {
            "type": "string",
            "title": "label",
            "description": "The refund reason's label."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The refund reason's description."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The refund reason's code."
          },
          "metadata": {
            "type": "object",
            "description": "The refund reason's metadata."
          }
        },
        "x-schemaName": "AdminUpdateRefundReason",
        "required": [
          "label",
          "code"
        ]
      },
      "AdminUpdateRegion": {
        "type": "object",
        "description": "The propeties to update in the region.",
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The region's name."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The region's currency code."
          },
          "countries": {
            "type": "array",
            "description": "The region's countries.",
            "items": {
              "type": "string",
              "title": "countries",
              "description": "A country code."
            }
          },
          "automatic_taxes": {
            "type": "boolean",
            "title": "automatic_taxes",
            "description": "Whether taxes are calculated automatically for carts in the region."
          },
          "payment_providers": {
            "type": "array",
            "description": "The payment providers enabled in the region.",
            "items": {
              "type": "string",
              "title": "payment_providers",
              "description": "A payment provider's ID."
            }
          },
          "metadata": {
            "type": "object",
            "description": "The region's metadata. Can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the prices in the region are tax inclusive."
          }
        },
        "x-schemaName": "AdminUpdateRegion"
      },
      "AdminUpdateReservation": {
        "type": "object",
        "description": "The properties to update in the reservation.",
        "properties": {
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the associated location."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The reserved quantity."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The reservation's description."
          },
          "metadata": {
            "type": "object",
            "description": "The reservation's metadata. Can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        },
        "x-schemaName": "AdminUpdateReservation"
      },
      "AdminUpdateReturnItems": {
        "type": "object",
        "description": "The details to update in the item.",
        "x-schemaName": "AdminUpdateReturnItems",
        "properties": {
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          },
          "reason_id": {
            "type": "string",
            "title": "reason_id",
            "description": "The ID of the associated return reason."
          },
          "metadata": {
            "type": "object",
            "description": "The claim's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminUpdateReturnReason": {
        "type": "object",
        "description": "The details to update in a return reason.",
        "x-schemaName": "AdminUpdateReturnReason",
        "properties": {
          "label": {
            "type": "string",
            "title": "label",
            "description": "The return reason's label."
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The return reason's value."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The return reason's description."
          },
          "metadata": {
            "type": "object",
            "description": "The return reason's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        },
        "required": [
          "value",
          "label"
        ]
      },
      "AdminUpdateReturnRequest": {
        "type": "object",
        "description": "The return's details.",
        "x-schemaName": "AdminUpdateReturnRequest",
        "properties": {
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the location to return items to."
          },
          "no_notification": {
            "type": "boolean",
            "title": "no_notification",
            "description": "Whether the customer should receive notifications about updates to the return."
          },
          "metadata": {
            "type": "object",
            "description": "The return's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminUpdateReturnShipping": {
        "type": "object",
        "description": "The shipping method's details.",
        "x-schemaName": "AdminUpdateReturnShipping",
        "properties": {
          "custom_amount": {
            "type": "number",
            "title": "custom_amount",
            "description": "Set a custom price for the shipping method."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note viewed only by admin users."
          },
          "metadata": {
            "type": "object",
            "description": "The return's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminUpdateSalesChannel": {
        "type": "object",
        "description": "The properties to update in the sales channel.",
        "x-schemaName": "AdminUpdateSalesChannel",
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The sales channel's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The sales channel's description."
          },
          "is_disabled": {
            "type": "boolean",
            "title": "is_disabled",
            "description": "Whether the sales channel is disabled."
          },
          "metadata": {
            "type": "object",
            "description": "The sales channel's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminUpdateShippingOption": {
        "type": "object",
        "description": "The properties to update in the shipping option type.",
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The shipping option's name."
          },
          "data": {
            "type": "object",
            "description": "The shipping option's data."
          },
          "price_type": {
            "type": "string",
            "description": "The shipping option's price type.",
            "enum": [
              "flat",
              "calculated"
            ]
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The shipping option's provider id."
          },
          "shipping_profile_id": {
            "type": "string",
            "title": "shipping_profile_id",
            "description": "The shipping option's shipping profile id."
          },
          "type": {
            "$ref": "#/components/schemas/AdminCreateShippingOptionType"
          },
          "type_id": {
            "type": "string",
            "title": "type_id",
            "description": "The shipping option's type id."
          },
          "prices": {
            "type": "array",
            "description": "The shipping option's prices.",
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "description": "The price's prices.",
                  "x-schemaName": "AdminUpdateShippingOptionPriceWithCurrency",
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The price's ID."
                    },
                    "currency_code": {
                      "type": "string",
                      "title": "currency_code",
                      "description": "The price's currency code."
                    },
                    "amount": {
                      "type": "number",
                      "title": "amount",
                      "description": "The price's amount."
                    },
                    "rules": {
                      "type": "array",
                      "description": "The price's rules.",
                      "items": {
                        "type": "object",
                        "description": "The rule's rules.",
                        "x-schemaName": "PriceRule",
                        "required": [
                          "attribute",
                          "operator",
                          "value"
                        ],
                        "properties": {
                          "attribute": {
                            "type": "string",
                            "title": "attribute",
                            "description": "The rule's attribute."
                          },
                          "operator": {
                            "type": "string",
                            "description": "The rule's operator.",
                            "enum": [
                              "gt",
                              "lt",
                              "eq",
                              "lte",
                              "gte"
                            ]
                          },
                          "value": {
                            "type": "number",
                            "title": "value",
                            "description": "The rule's value."
                          }
                        }
                      }
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "The price's prices.",
                  "x-schemaName": "AdminUpdateShippingOptionPriceWithRegion",
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The price's ID."
                    },
                    "region_id": {
                      "type": "string",
                      "title": "region_id",
                      "description": "The price's region id."
                    },
                    "amount": {
                      "type": "number",
                      "title": "amount",
                      "description": "The price's amount."
                    },
                    "rules": {
                      "type": "array",
                      "description": "The price's rules.",
                      "items": {
                        "type": "object",
                        "description": "The rule's rules.",
                        "x-schemaName": "PriceRule",
                        "required": [
                          "attribute",
                          "operator",
                          "value"
                        ],
                        "properties": {
                          "attribute": {
                            "type": "string",
                            "title": "attribute",
                            "description": "The rule's attribute."
                          },
                          "operator": {
                            "type": "string",
                            "description": "The rule's operator.",
                            "enum": [
                              "gt",
                              "lt",
                              "eq",
                              "lte",
                              "gte"
                            ]
                          },
                          "value": {
                            "type": "number",
                            "title": "value",
                            "description": "The rule's value."
                          }
                        }
                      }
                    }
                  }
                }
              ]
            }
          },
          "rules": {
            "type": "array",
            "description": "The shipping option's rules.",
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "description": "The rule's rules.",
                  "x-schemaName": "AdminCreateShippingOptionRule",
                  "required": [
                    "operator",
                    "attribute",
                    "value"
                  ],
                  "properties": {
                    "operator": {
                      "type": "string",
                      "description": "The rule's operator.",
                      "enum": [
                        "gt",
                        "lt",
                        "eq",
                        "ne",
                        "in",
                        "lte",
                        "gte",
                        "nin"
                      ]
                    },
                    "attribute": {
                      "type": "string",
                      "title": "attribute",
                      "description": "The rule's attribute."
                    },
                    "value": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "value",
                          "description": "The rule's value."
                        },
                        {
                          "type": "array",
                          "description": "The rule's value.",
                          "items": {
                            "type": "string",
                            "title": "value",
                            "description": "The value's details."
                          }
                        }
                      ]
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "The rule's rules.",
                  "x-schemaName": "AdminUpdateShippingOptionRule",
                  "required": [
                    "id",
                    "operator",
                    "attribute",
                    "value"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The rule's ID."
                    },
                    "operator": {
                      "type": "string",
                      "description": "The rule's operator.",
                      "enum": [
                        "gt",
                        "lt",
                        "eq",
                        "ne",
                        "in",
                        "lte",
                        "gte",
                        "nin"
                      ]
                    },
                    "attribute": {
                      "type": "string",
                      "title": "attribute",
                      "description": "The rule's attribute."
                    },
                    "value": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "value",
                          "description": "The rule's value."
                        },
                        {
                          "type": "array",
                          "description": "The rule's value.",
                          "items": {
                            "type": "string",
                            "title": "value",
                            "description": "The value's details."
                          }
                        }
                      ]
                    }
                  }
                }
              ]
            }
          },
          "metadata": {
            "type": "object",
            "description": "The shipping option's metadata."
          }
        },
        "x-schemaName": "AdminUpdateShippingOption"
      },
      "AdminUpdateShippingOptionRule": {
        "type": "object",
        "description": "The properties to update in the shipping option rule.",
        "required": [
          "id",
          "operator",
          "attribute",
          "value"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The rule's ID."
          },
          "operator": {
            "type": "string",
            "description": "The operator used to check whether a rule applies.",
            "enum": [
              "in",
              "eq",
              "ne",
              "gt",
              "gte",
              "lt",
              "lte",
              "nin"
            ]
          },
          "attribute": {
            "type": "string",
            "title": "attribute",
            "description": "The name of a property or table that the rule applies to.",
            "example": "customer_group"
          },
          "value": {
            "oneOf": [
              {
                "type": "string",
                "title": "value",
                "description": "A value of the attribute that enables this rule.",
                "example": "cusgroup_123"
              },
              {
                "type": "array",
                "description": "Values of the attribute that enable this rule.",
                "items": {
                  "type": "string",
                  "title": "value",
                  "description": "A value of the attribute that enables this rule.",
                  "example": "cusgroup_123"
                }
              }
            ]
          }
        },
        "x-schemaName": "AdminUpdateShippingOptionRule"
      },
      "AdminUpdateShippingOptionType": {
        "type": "object",
        "description": "The properties to update in the shipping option type.",
        "properties": {
          "code": {
            "type": "string",
            "title": "code",
            "description": "The shipping option type's code."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The shipping option type's description."
          },
          "label": {
            "type": "string",
            "title": "label",
            "description": "The shipping option type's label."
          }
        },
        "x-schemaName": "AdminUpdateShippingOptionType"
      },
      "AdminUpdateShippingProfile": {
        "type": "object",
        "description": "The properties to update in the shipping profile.",
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The shipping profile's name."
          },
          "type": {
            "type": "string",
            "title": "type",
            "description": "The shipping profile's type."
          },
          "metadata": {
            "type": "object",
            "description": "The shipping profile's metadata.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        },
        "x-schemaName": "AdminUpdateShippingProfile"
      },
      "AdminUpdateStockLocation": {
        "type": "object",
        "description": "The properties to update in a stock location.",
        "x-schemaName": "AdminUpdateStockLocation",
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The stock location's name."
          },
          "address": {
            "$ref": "#/components/schemas/AdminUpsertStockLocationAddress"
          },
          "address_id": {
            "type": "string",
            "title": "address_id",
            "description": "The ID of an existing stock location address to associate the stock location with."
          },
          "metadata": {
            "type": "object",
            "description": "The stock location's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminUpdateStore": {
        "type": "object",
        "description": "The properties to update in a store.",
        "x-schemaName": "AdminUpdateStore",
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "The store's name."
          },
          "supported_currencies": {
            "type": "array",
            "description": "The store's supported currencies.",
            "items": {
              "$ref": "#/components/schemas/AdminUpdateStoreSupportedCurrency"
            }
          },
          "default_sales_channel_id": {
            "type": "string",
            "title": "default_sales_channel_id",
            "description": "The ID of the default sales channel in the store."
          },
          "default_region_id": {
            "type": "string",
            "title": "default_region_id",
            "description": "The ID of the default region in the store."
          },
          "default_location_id": {
            "type": "string",
            "title": "default_location_id",
            "description": "The ID of the default stock location in the store."
          },
          "metadata": {
            "type": "object",
            "description": "The store's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "supported_locales": {
            "type": "array",
            "description": "The store's supported locales.",
            "items": {
              "$ref": "#/components/schemas/AdminUpdateStoreSupportedLocale"
            }
          }
        }
      },
      "AdminUpdateStoreSupportedCurrency": {
        "type": "object",
        "description": "The details to update in a supported currency of the store.",
        "required": [
          "currency_code"
        ],
        "properties": {
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The currency's code.",
            "example": "usd"
          },
          "is_default": {
            "type": "boolean",
            "title": "is_default",
            "description": "Whether the currency is the default in the store."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether prices using this currency are tax inclusive."
          }
        },
        "x-schemaName": "AdminUpdateStoreSupportedCurrency"
      },
      "AdminUpdateStoreSupportedLocale": {
        "type": "object",
        "description": "The payload to update a store's supported locale.",
        "x-schemaName": "AdminUpdateStoreSupportedLocale",
        "required": [
          "locale_code"
        ],
        "properties": {
          "locale_code": {
            "type": "string",
            "title": "locale_code",
            "description": "The locale's code in [BCP 47 format](https://gist.github.com/typpo/b2b828a35e683b9bf8db91b5404f1bd1).",
            "example": "fr-FR"
          }
        }
      },
      "AdminUpdateTaxRate": {
        "type": "object",
        "description": "The properties to update in the tax rate.",
        "x-schemaName": "AdminUpdateTaxRate",
        "properties": {
          "rate": {
            "type": "number",
            "title": "rate",
            "description": "The rate to charge."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The code that the tax rate is identified by."
          },
          "rules": {
            "type": "array",
            "description": "The tax rate's rules.",
            "items": {
              "$ref": "#/components/schemas/AdminCreateTaxRateRule"
            }
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The tax rate's name."
          },
          "is_default": {
            "type": "boolean",
            "title": "is_default",
            "description": "Whether the tax rate is the default in the store."
          },
          "is_combinable": {
            "type": "boolean",
            "title": "is_combinable",
            "description": "Whether the tax rate should be combined with parent rates.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/tax/tax-rates-and-rules#combinable-tax-rates"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The tax rate's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        },
        "required": [
          "code"
        ]
      },
      "AdminUpdateTaxRegion": {
        "type": "object",
        "description": "The details to update in a tax region.",
        "x-schemaName": "AdminUpdateTaxRegion",
        "properties": {
          "province_code": {
            "type": "string",
            "title": "province_code",
            "description": "The tax region's ISO 3166-2 province code. Must be lower-case.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The tax region's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the tax provider to use when calculating taxes for this tax region."
          }
        }
      },
      "AdminUpdateTranslationSettings": {
        "type": "object",
        "description": "The translation settings to update.",
        "x-schemaName": "AdminUpdateTranslationSettings",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The ID of the translation settings to update."
          },
          "entity_type": {
            "type": "string",
            "title": "entity_type",
            "description": "The entity type to update the translation settings for."
          },
          "fields": {
            "type": "array",
            "description": "The fields to update translations for.",
            "items": {
              "type": "string",
              "title": "fields",
              "description": "A field to update translations for."
            }
          },
          "is_active": {
            "type": "boolean",
            "title": "is_active",
            "description": "Whether translations are active for the given entity type."
          }
        }
      },
      "AdminUpdateUser": {
        "type": "object",
        "description": "The properties to update in a user.",
        "x-schemaName": "AdminUpdateUser",
        "properties": {
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The user's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The user's last name."
          },
          "avatar_url": {
            "type": "string",
            "title": "avatar_url",
            "description": "The URL of the user's avatar."
          },
          "metadata": {
            "type": "object",
            "description": "The user's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "AdminUpdateVariantInventoryItem": {
        "type": "object",
        "description": "The properties to update of the variant's inventory item association.",
        "x-schemaName": "AdminUpdateVariantInventoryItem",
        "required": [
          "required_quantity"
        ],
        "properties": {
          "required_quantity": {
            "type": "number",
            "title": "required_quantity",
            "description": "The number of units a single quantity is equivalent to. For example, if a customer orders one quantity of the variant, Medusa checks the availability of the quantity multiplied by the value set for `required_quantity`. When the customer orders the quantity, Medusa reserves the ordered quantity multiplied by the value set for `required_quantity`."
          }
        }
      },
      "AdminUpdateViewConfiguration": {
        "type": "object",
        "description": "The details to update in a view configuration.",
        "x-schemaName": "AdminUpdateViewConfiguration",
        "properties": {
          "set_active": {
            "type": "boolean",
            "title": "set_active",
            "description": "Whether the view is set as active."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The view's name."
          },
          "is_system_default": {
            "type": "boolean",
            "title": "is_system_default",
            "description": "Whether the view is the system default."
          },
          "configuration": {
            "type": "object",
            "description": "The view's configuration.",
            "properties": {
              "search": {
                "type": "string",
                "title": "search",
                "description": "The search query used in the view."
              },
              "visible_columns": {
                "type": "array",
                "description": "The configuration's visible columns.",
                "items": {
                  "type": "string",
                  "title": "visible_columns",
                  "description": "The visible column's name."
                }
              },
              "column_order": {
                "type": "array",
                "description": "The columns in the order they should be displayed.",
                "items": {
                  "type": "string",
                  "title": "column_order",
                  "description": "The column's name."
                }
              },
              "column_widths": {
                "type": "object",
                "description": "The column widths in the view."
              },
              "filters": {
                "type": "object",
                "description": "The filters applied to the view."
              },
              "sorting": {
                "type": "object",
                "description": "The sorting applied to the view.",
                "required": [
                  "id",
                  "desc"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "title": "id",
                    "description": "The ID of the sorting column."
                  },
                  "desc": {
                    "type": "boolean",
                    "title": "desc",
                    "description": "Whether the sorting is descending."
                  }
                }
              }
            }
          }
        }
      },
      "AdminUploadPreSignedUrl": {
        "type": "object",
        "description": "The details of the file to upload.",
        "x-schemaName": "AdminUploadPreSignedUrl",
        "required": [
          "originalname",
          "size",
          "mime_type"
        ],
        "properties": {
          "originalname": {
            "type": "string",
            "title": "originalname",
            "description": "The file's original name."
          },
          "size": {
            "type": "number",
            "title": "size",
            "description": "The file's size in bytes."
          },
          "mime_type": {
            "type": "string",
            "title": "mime_type",
            "description": "The file's mime type.",
            "example": "text/csv"
          },
          "access": {
            "type": "string",
            "description": "The access level of the file. If `private`, the file will not be publicly accessible. The default value depends on the configured File Module Provider.",
            "enum": [
              "public",
              "private"
            ]
          }
        }
      },
      "AdminUploadPreSignedUrlResponse": {
        "type": "object",
        "description": "The result of the pre-signed URL upload request.",
        "x-schemaName": "AdminUploadPreSignedUrlResponse",
        "required": [
          "url",
          "filename",
          "originalname",
          "mime_type",
          "extension",
          "size"
        ],
        "properties": {
          "url": {
            "type": "string",
            "title": "url",
            "description": "The file's pre-signed upload URL."
          },
          "filename": {
            "type": "string",
            "title": "filename",
            "description": "The file's filename."
          },
          "originalname": {
            "type": "string",
            "title": "originalname",
            "description": "The file's orignal name."
          },
          "mime_type": {
            "type": "string",
            "title": "mime_type",
            "description": "The file's mime type.",
            "example": "text/csv"
          },
          "extension": {
            "type": "string",
            "title": "extension",
            "description": "The file's extension.",
            "example": "csv"
          },
          "size": {
            "type": "number",
            "title": "size",
            "description": "The file's size in bytes."
          }
        }
      },
      "AdminUpsertStockLocationAddress": {
        "type": "object",
        "description": "The details of the stock location address to create.",
        "x-schemaName": "AdminUpsertStockLocationAddress",
        "required": [
          "address_1",
          "country_code"
        ],
        "properties": {
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The address's second line."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The address's company."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The address's country code.",
            "example": "usd"
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The address's city."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The address's phone."
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The address's postal code."
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The address's ISO 3166-2 province code. Must be lower-case.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          }
        }
      },
      "AdminUser": {
        "type": "object",
        "description": "The user's details.",
        "x-schemaName": "AdminUser",
        "required": [
          "id",
          "email",
          "first_name",
          "last_name",
          "avatar_url",
          "metadata",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The user's ID."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The user's email.",
            "format": "email"
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The user's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The user's last name."
          },
          "avatar_url": {
            "type": "string",
            "title": "avatar_url",
            "description": "The URL of the user's avatar."
          },
          "metadata": {
            "type": "object",
            "description": "The user's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the user was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the user was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the user was deleted."
          }
        }
      },
      "AdminUserDeleteResponse": {
        "type": "object",
        "description": "The details of the deleted user.",
        "x-schemaName": "AdminUserDeleteResponse",
        "required": [
          "id",
          "object",
          "deleted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The user's ID."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "The name of the deleted object.",
            "default": "user"
          },
          "deleted": {
            "type": "boolean",
            "title": "deleted",
            "description": "Whether the user was deleted."
          }
        }
      },
      "AdminUserListResponse": {
        "type": "object",
        "description": "The paginated list of users.",
        "x-schemaName": "AdminUserListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "users"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items."
          },
          "users": {
            "type": "array",
            "description": "The list of users.",
            "items": {
              "$ref": "#/components/schemas/AdminUser"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "AdminUserResponse": {
        "type": "object",
        "description": "The user's details.",
        "x-schemaName": "AdminUserResponse",
        "required": [
          "user"
        ],
        "properties": {
          "user": {
            "$ref": "#/components/schemas/AdminUser"
          }
        }
      },
      "AdminViewConfiguration": {
        "type": "object",
        "description": "The details of a view configuration.",
        "x-schemaName": "AdminViewConfiguration",
        "required": [
          "id",
          "entity",
          "name",
          "user_id",
          "is_system_default",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The view configuration's ID."
          },
          "entity": {
            "type": "string",
            "title": "entity",
            "description": "The entity the view configuration belongs to."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The view configuration's name."
          },
          "user_id": {
            "type": "string",
            "title": "user_id",
            "description": "The ID of the user the view configuration belongs to. If `null`, the view configuration is a system default."
          },
          "is_system_default": {
            "type": "boolean",
            "title": "is_system_default",
            "description": "Whether the view configuration is the system default."
          },
          "configuration": {
            "type": "object",
            "description": "The view's configuration.",
            "required": [
              "visible_columns",
              "column_order"
            ],
            "properties": {
              "visible_columns": {
                "type": "array",
                "description": "The configuration's visible columns.",
                "items": {
                  "type": "string",
                  "title": "visible_columns",
                  "description": "The visible column's name."
                }
              },
              "column_order": {
                "type": "array",
                "description": "The columns in the order they should be displayed.",
                "items": {
                  "type": "string",
                  "title": "column_order",
                  "description": "The column's name."
                }
              },
              "column_widths": {
                "type": "object",
                "description": "The column widths in the view."
              },
              "filters": {
                "type": "object",
                "description": "The filters applied to the view."
              },
              "sorting": {
                "type": "object",
                "description": "The sorting applied to the view.",
                "required": [
                  "id",
                  "desc"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "title": "id",
                    "description": "The ID of the sorting column."
                  },
                  "desc": {
                    "type": "boolean",
                    "title": "desc",
                    "description": "Whether the sorting is descending."
                  }
                }
              },
              "search": {
                "type": "string",
                "title": "search",
                "description": "The configuration's search."
              }
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the view configuration was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the view configuration was updated."
          }
        }
      },
      "AdminViewConfigurationResponse": {
        "type": "object",
        "description": "The details of a view configuration.",
        "x-schemaName": "AdminViewConfigurationResponse",
        "required": [
          "view_configuration"
        ],
        "properties": {
          "view_configuration": {
            "$ref": "#/components/schemas/AdminViewConfiguration"
          }
        }
      },
      "AdminViewsEntityColumnsResponse": {
        "type": "object",
        "description": "The view's columns.",
        "x-schemaName": "AdminViewsEntityColumnsResponse",
        "required": [
          "columns"
        ],
        "properties": {
          "columns": {
            "type": "array",
            "description": "The view's columns.",
            "items": {
              "$ref": "#/components/schemas/AdminColumn"
            }
          }
        }
      },
      "AdminWorkflowExecution": {
        "type": "object",
        "description": "The workflows execution's details.",
        "x-schemaName": "AdminWorkflowExecution",
        "required": [
          "id",
          "workflow_id",
          "transaction_id",
          "execution",
          "context",
          "state",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The workflow execution's ID."
          },
          "workflow_id": {
            "type": "string",
            "title": "workflow_id",
            "description": "The ID of the workflow."
          },
          "transaction_id": {
            "type": "string",
            "title": "transaction_id",
            "description": "The workflow execution's transaction ID."
          },
          "execution": {
            "$ref": "#/components/schemas/AdminWorkflowExecutionExecution"
          },
          "context": {
            "$ref": "#/components/schemas/WorkflowExecutionContext"
          },
          "state": {
            "type": "string",
            "description": "The workflow execution's state.",
            "enum": [
              "not_started",
              "invoking",
              "waiting_to_compensate",
              "compensating",
              "done",
              "reverted",
              "failed"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the workflow execution was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the workflow execution was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the workflow execution was deleted."
          }
        }
      },
      "AdminWorkflowExecutionExecution": {
        "type": "object",
        "description": "The workflow execution's steps details.",
        "x-schemaName": "AdminWorkflowExecutionExecution",
        "required": [
          "steps"
        ],
        "properties": {
          "steps": {
            "type": "object",
            "description": "The execution's steps. Each object key is a step ID, and the value is the object whose properties are shown below.",
            "required": [
              "id",
              "invoke",
              "definition",
              "compensate",
              "depth",
              "startedAt"
            ],
            "additionalProperties": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The step's ID."
                },
                "invoke": {
                  "type": "object",
                  "description": "The state of the step's invokation function.",
                  "x-schemaName": "WorkflowExecutionFn",
                  "required": [
                    "state",
                    "status"
                  ],
                  "properties": {
                    "state": {
                      "type": "string",
                      "description": "The invokation step's state.",
                      "enum": [
                        "failed",
                        "not_started",
                        "invoking",
                        "compensating",
                        "done",
                        "reverted",
                        "dormant",
                        "skipped",
                        "skipped_failure",
                        "timeout"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "description": "The invokation step's state.",
                      "enum": [
                        "idle",
                        "ok",
                        "waiting_response",
                        "temp_failure",
                        "permanent_failure"
                      ]
                    }
                  }
                },
                "definition": {
                  "type": "object",
                  "description": "The step's definition details.",
                  "x-schemaName": "WorkflowExecutionDefinition",
                  "properties": {
                    "async": {
                      "type": "boolean",
                      "title": "async",
                      "description": "Whether the step is async."
                    },
                    "compensateAsync": {
                      "type": "boolean",
                      "title": "compensateAsync",
                      "description": "Whether the compensation function of the step is async."
                    },
                    "noCompensation": {
                      "type": "boolean",
                      "title": "noCompensation",
                      "description": "Whether the step doesn't have a compensation function."
                    },
                    "continueOnPermanentFailure": {
                      "type": "boolean",
                      "title": "continueOnPermanentFailure",
                      "description": "Whether the workflow should continue executing even if its status is changed to failed."
                    },
                    "skipOnPermanentFailure": {
                      "oneOf": [
                        {
                          "type": "string",
                          "title": "skipOnPermanentFailure",
                          "description": "The ID of the step to skip to in case of a permanent failure."
                        },
                        {
                          "type": "boolean",
                          "title": "skipOnPermanentFailure",
                          "description": "Whether the workflow should skip subsequent steps in case of a permanent failure."
                        }
                      ]
                    },
                    "maxRetries": {
                      "type": "number",
                      "title": "maxRetries",
                      "description": "The maximum number of times to retry the step."
                    },
                    "noWait": {
                      "type": "boolean",
                      "title": "noWait",
                      "description": "Whether the workflow shouldn't wait for the step to finish before moving to the next step.",
                      "default": false
                    },
                    "retryInterval": {
                      "type": "number",
                      "title": "retryInterval",
                      "description": "The interval in seconds between retry attempts when the step fails."
                    },
                    "retryIntervalAwaiting": {
                      "type": "number",
                      "title": "retryIntervalAwaiting",
                      "description": "The interval in seconds to retry a step even if its status is `waiting_response`."
                    },
                    "saveResponse": {
                      "type": "boolean",
                      "title": "saveResponse",
                      "description": "Whether the step's response is stored."
                    },
                    "timeout": {
                      "type": "number",
                      "title": "timeout",
                      "description": "The maximum time in seconds to wait for this step to complete. If the step exceeds this time, the step's state is changed to `timeout`, but the step continues executing."
                    },
                    "autoRetry": {
                      "type": "boolean",
                      "title": "autoRetry",
                      "description": "Whether the step should be automatically retried if it fails."
                    },
                    "maxAwaitingRetries": {
                      "type": "number",
                      "title": "maxAwaitingRetries",
                      "description": "The maximum number of times to retry the step while it's in the `waiting_response` state."
                    }
                  }
                },
                "compensate": {
                  "type": "object",
                  "description": "The state of the step's compensation function.",
                  "x-schemaName": "WorkflowExecutionFn",
                  "required": [
                    "state",
                    "status"
                  ],
                  "properties": {
                    "state": {
                      "type": "string",
                      "description": "The compensation function's state.",
                      "enum": [
                        "failed",
                        "not_started",
                        "invoking",
                        "compensating",
                        "done",
                        "reverted",
                        "dormant",
                        "skipped",
                        "skipped_failure",
                        "timeout"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "description": "The compensation function's status.",
                      "enum": [
                        "idle",
                        "ok",
                        "waiting_response",
                        "temp_failure",
                        "permanent_failure"
                      ]
                    }
                  }
                },
                "depth": {
                  "type": "number",
                  "title": "depth",
                  "description": "The step's depth in the workflow's execution."
                },
                "startedAt": {
                  "type": "number",
                  "title": "startedAt",
                  "description": "The timestamp the step started executing."
                }
              }
            }
          }
        }
      },
      "AdminWorkflowExecutionResponse": {
        "type": "object",
        "description": "The workflow execution's details.",
        "x-schemaName": "AdminWorkflowExecutionResponse",
        "required": [
          "workflow_execution"
        ],
        "properties": {
          "workflow_execution": {
            "$ref": "#/components/schemas/AdminWorkflowExecution"
          }
        }
      },
      "ApiKeyResponse": {
        "type": "object",
        "description": "The API key's details.",
        "x-schemaName": "ApiKeyResponse",
        "required": [
          "id",
          "token",
          "redacted",
          "title",
          "type",
          "last_used_at",
          "created_by",
          "created_at",
          "revoked_by",
          "revoked_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The API key's ID."
          },
          "token": {
            "type": "string",
            "title": "token",
            "description": "The API key's token."
          },
          "redacted": {
            "type": "string",
            "title": "redacted",
            "description": "The redacted form of the API key's token. This is useful when showing portion of the token. For example `sk_...123`."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The API key's title."
          },
          "type": {
            "type": "string",
            "description": "The API key's type. `secret` API keys are used for authenticating admin users, and `publishable` API key are used for storefronts and similar clients to scope requests to sales channels.",
            "enum": [
              "secret",
              "publishable"
            ]
          },
          "last_used_at": {
            "type": "string",
            "title": "last_used_at",
            "description": "The date the API key was last used.",
            "format": "date-time"
          },
          "created_by": {
            "type": "string",
            "title": "created_by",
            "description": "The ID of the user that created the API key."
          },
          "created_at": {
            "type": "string",
            "title": "created_at",
            "description": "The date the API key was created.",
            "format": "date-time"
          },
          "revoked_by": {
            "type": "string",
            "title": "revoked_by",
            "description": "The ID of the user that revoked the API key."
          },
          "revoked_at": {
            "type": "string",
            "title": "revoked_at",
            "description": "The date the API key was revoked.",
            "format": "date-time"
          }
        }
      },
      "AuthAdminSessionResponse": {
        "type": "object",
        "description": "The authenticated user's details.",
        "x-schemaName": "AuthAdminSessionResponse",
        "required": [
          "user"
        ],
        "properties": {
          "user": {
            "title": "user",
            "description": "The logged-in user.",
            "$ref": "#/components/schemas/AdminUser"
          }
        }
      },
      "AuthCallbackResponse": {
        "type": "object",
        "description": "The authentication's details.",
        "x-schemaName": "AuthCallbackResponse",
        "required": [
          "location"
        ],
        "properties": {
          "location": {
            "type": "string",
            "title": "location",
            "description": "The location to redirect the user to for further authentication with the third-party provider."
          }
        }
      },
      "AuthResponse": {
        "type": "object",
        "description": "The authentication's details.",
        "x-schemaName": "AuthResponse",
        "required": [
          "token"
        ],
        "properties": {
          "token": {
            "type": "string",
            "title": "token",
            "description": "The JWT token used for registration or authentication."
          }
        }
      },
      "AuthStoreSessionResponse": {
        "type": "object",
        "description": "The authenticated customer's details.",
        "x-schemaName": "AuthStoreSessionResponse",
        "required": [
          "user"
        ],
        "properties": {
          "user": {
            "title": "user",
            "description": "The logged-in customer.",
            "$ref": "#/components/schemas/StoreCustomer"
          }
        }
      },
      "BaseCalculatedPriceSet": {
        "type": "object",
        "description": "The calculated price's details.",
        "x-schemaName": "BaseCalculatedPriceSet",
        "required": [
          "id",
          "calculated_amount",
          "original_amount",
          "original_amount_with_tax",
          "original_amount_without_tax",
          "currency_code"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The calculated price's ID."
          },
          "is_calculated_price_price_list": {
            "type": "boolean",
            "title": "is_calculated_price_price_list",
            "description": "Whether the calculated price belongs to a price list."
          },
          "is_calculated_price_tax_inclusive": {
            "type": "boolean",
            "title": "is_calculated_price_tax_inclusive",
            "description": "Whether the calculated price is tax inclusive."
          },
          "calculated_amount": {
            "type": "number",
            "title": "calculated_amount",
            "description": "The amount of the calculated price, or `null` if there isn't a calculated price. This is the amount shown to the customer."
          },
          "calculated_amount_with_tax": {
            "type": "number",
            "title": "calculated_amount_with_tax",
            "description": "The calculated price's amount with taxes applied."
          },
          "calculated_amount_without_tax": {
            "type": "number",
            "title": "calculated_amount_without_tax",
            "description": "The calculated price's amount without taxes applied."
          },
          "is_original_price_price_list": {
            "type": "boolean",
            "title": "is_original_price_price_list",
            "description": "Whether the original price belongs to a price list."
          },
          "is_original_price_tax_inclusive": {
            "type": "boolean",
            "title": "is_original_price_tax_inclusive",
            "description": "Whether the original price is tax inclusive."
          },
          "original_amount": {
            "type": "number",
            "title": "original_amount",
            "description": "The amount of the original price, or `null` if there isn't an original price. This amount is useful to compare with the `calculated_amount`, such as to check for discounted value."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The calculated price's currency code.",
            "example": "usd"
          },
          "calculated_price": {
            "type": "object",
            "description": "The calculated price's details."
          },
          "original_price": {
            "type": "object",
            "description": "The original price's details."
          },
          "original_amount_with_tax": {
            "type": "number",
            "title": "original_amount_with_tax",
            "description": "The amount of the original price with taxes applied."
          },
          "original_amount_without_tax": {
            "type": "number",
            "title": "original_amount_without_tax",
            "description": "The amount of the original price without taxes."
          }
        }
      },
      "BaseCapture": {
        "type": "object",
        "description": "The details of a captured payment.",
        "x-schemaName": "BaseCapture",
        "required": [
          "id",
          "amount",
          "created_at",
          "payment"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The payment capture's ID."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The captured amount."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the capture was created."
          },
          "created_by": {
            "type": "string",
            "title": "created_by",
            "description": "The ID of the user that captured the payment."
          },
          "payment": {
            "type": "object"
          }
        }
      },
      "BaseCart": {
        "type": "object",
        "description": "The item's cart.",
        "x-schemaName": "BaseCart",
        "required": [
          "id",
          "currency_code",
          "original_item_total",
          "original_item_subtotal",
          "original_item_tax_total",
          "item_total",
          "item_subtotal",
          "item_tax_total",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_total",
          "discount_tax_total",
          "gift_card_total",
          "gift_card_tax_total",
          "shipping_total",
          "shipping_subtotal",
          "shipping_tax_total",
          "original_shipping_total",
          "original_shipping_subtotal",
          "original_shipping_tax_total"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The cart's ID."
          },
          "region": {
            "$ref": "#/components/schemas/BaseRegion"
          },
          "region_id": {
            "type": "string",
            "title": "region_id",
            "description": "The cart's region id."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The cart's customer id."
          },
          "sales_channel_id": {
            "type": "string",
            "title": "sales_channel_id",
            "description": "The cart's sales channel id."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The cart's email.",
            "format": "email"
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The cart's currency code."
          },
          "shipping_address": {
            "$ref": "#/components/schemas/BaseCartAddress"
          },
          "billing_address": {
            "$ref": "#/components/schemas/BaseCartAddress"
          },
          "items": {
            "type": "array",
            "description": "The cart's items.",
            "items": {
              "type": "object"
            }
          },
          "shipping_methods": {
            "type": "array",
            "description": "The cart's shipping methods.",
            "items": {
              "$ref": "#/components/schemas/BaseCartShippingMethod"
            }
          },
          "payment_collection": {
            "$ref": "#/components/schemas/BasePaymentCollection"
          },
          "metadata": {
            "type": "object",
            "description": "The cart's metadata.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The cart's created at."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The cart's updated at."
          },
          "original_item_total": {
            "type": "number",
            "title": "original_item_total",
            "description": "The sum of all line items' original totals before discounts, including taxes."
          },
          "original_item_subtotal": {
            "type": "number",
            "title": "original_item_subtotal",
            "description": "The sum of all line items' original subtotals before discounts, excluding taxes."
          },
          "original_item_tax_total": {
            "type": "number",
            "title": "original_item_tax_total",
            "description": "The sum of all line items' original tax totals before discounts."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The sum of all line items' totals after discounts, including taxes."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The sum of all line items' subtotals before discounts, excluding taxes."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The sum of all line items' tax totals after discounts."
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The cart's total before discounts, including taxes. Calculated as the sum of `original_item_total` and `original_shipping_total`."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The cart's subtotal before discounts, excluding taxes. Calculated as the sum of `original_item_subtotal` and `original_shipping_subtotal`."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The cart's tax total before discounts. Calculated as the sum of `original_item_tax_total` and `original_shipping_tax_total`."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The cart's final total after discounts and credit lines, including taxes."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The cart's subtotal before discounts, excluding taxes. Calculated as the sum of `item_subtotal` and `shipping_subtotal`."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The cart's tax total after discounts. Calculated as the sum of `item_tax_total` and `shipping_tax_total`."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total amount of discounts applied to the cart, including the tax portion of discounts."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The total amount of discounts applied to the cart's tax. Represents the tax portion of discounts."
          },
          "gift_card_total": {
            "type": "number",
            "title": "gift_card_total",
            "description": "The cart's gift card total."
          },
          "gift_card_tax_total": {
            "type": "number",
            "title": "gift_card_tax_total",
            "description": "The cart's gift card tax total."
          },
          "shipping_total": {
            "type": "number",
            "title": "shipping_total",
            "description": "The sum of all shipping methods' totals after discounts, including taxes."
          },
          "shipping_subtotal": {
            "type": "number",
            "title": "shipping_subtotal",
            "description": "The sum of all shipping methods' subtotals before discounts, excluding taxes."
          },
          "shipping_tax_total": {
            "type": "number",
            "title": "shipping_tax_total",
            "description": "The sum of all shipping methods' tax totals after discounts."
          },
          "original_shipping_total": {
            "type": "number",
            "title": "original_shipping_total",
            "description": "The sum of all shipping methods' original totals before discounts, including taxes."
          },
          "original_shipping_subtotal": {
            "type": "number",
            "title": "original_shipping_subtotal",
            "description": "The sum of all shipping methods' original subtotals before discounts, excluding taxes."
          },
          "original_shipping_tax_total": {
            "type": "number",
            "title": "original_shipping_tax_total",
            "description": "The sum of all shipping methods' original tax totals before discounts."
          }
        }
      },
      "BaseCartAddress": {
        "type": "object",
        "description": "The cart's shipping address.",
        "x-schemaName": "BaseCartAddress"
      },
      "BaseCartLineItem": {
        "type": "object",
        "description": "The tax line's item.",
        "x-schemaName": "BaseCartLineItem",
        "required": [
          "id",
          "title",
          "quantity",
          "requires_shipping",
          "is_discountable",
          "is_tax_inclusive",
          "unit_price",
          "cart",
          "cart_id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The item's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The item's title."
          },
          "subtitle": {
            "type": "string",
            "title": "subtitle",
            "description": "The item's subtitle."
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The item's thumbnail."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "product": {
            "$ref": "#/components/schemas/BaseProduct"
          },
          "product_id": {
            "type": "string",
            "title": "product_id",
            "description": "The item's product id."
          },
          "product_title": {
            "type": "string",
            "title": "product_title",
            "description": "The item's product title."
          },
          "product_description": {
            "type": "string",
            "title": "product_description",
            "description": "The item's product description."
          },
          "product_subtitle": {
            "type": "string",
            "title": "product_subtitle",
            "description": "The item's product subtitle."
          },
          "product_type": {
            "type": "string",
            "title": "product_type",
            "description": "The item's product type."
          },
          "product_collection": {
            "type": "string",
            "title": "product_collection",
            "description": "The item's product collection."
          },
          "product_handle": {
            "type": "string",
            "title": "product_handle",
            "description": "The item's product handle."
          },
          "variant": {
            "$ref": "#/components/schemas/BaseProductVariant"
          },
          "variant_id": {
            "type": "string",
            "title": "variant_id",
            "description": "The item's variant id."
          },
          "variant_sku": {
            "type": "string",
            "title": "variant_sku",
            "description": "The item's variant sku."
          },
          "variant_barcode": {
            "type": "string",
            "title": "variant_barcode",
            "description": "The item's variant barcode."
          },
          "variant_title": {
            "type": "string",
            "title": "variant_title",
            "description": "The item's variant title."
          },
          "variant_option_values": {
            "type": "object",
            "description": "The item's variant option values."
          },
          "requires_shipping": {
            "type": "boolean",
            "title": "requires_shipping",
            "description": "The item's requires shipping."
          },
          "is_discountable": {
            "type": "boolean",
            "title": "is_discountable",
            "description": "The item's is discountable."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "The item's is tax inclusive."
          },
          "compare_at_unit_price": {
            "type": "number",
            "title": "compare_at_unit_price",
            "description": "The item's compare at unit price."
          },
          "unit_price": {
            "type": "number",
            "title": "unit_price",
            "description": "The item's unit price."
          },
          "tax_lines": {
            "type": "array",
            "description": "The item's tax lines.",
            "items": {
              "type": "object"
            }
          },
          "adjustments": {
            "type": "array",
            "description": "The item's adjustments.",
            "items": {
              "$ref": "#/components/schemas/BaseLineItemAdjustment"
            }
          },
          "cart": {
            "$ref": "#/components/schemas/BaseCart"
          },
          "cart_id": {
            "type": "string",
            "title": "cart_id",
            "description": "The item's cart id."
          },
          "metadata": {
            "type": "object",
            "description": "The item's metadata.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The item's created at."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The item's updated at."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The item's deleted at."
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The line item's original total before discounts, including taxes."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The line item's original subtotal before discounts, excluding taxes."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The line item's original tax total before discounts."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The line item's total after discounts, including taxes."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The line item's subtotal before discounts, excluding taxes."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The line item's tax total after discounts."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The line item's total after discounts, including taxes."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The line item's subtotal before discounts, excluding taxes."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The line item's tax total after discounts."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total amount of discounts applied to the line item, including the tax portion of discounts."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The total amount of discounts applied to the line item's tax. Represents the tax portion of discounts."
          }
        }
      },
      "BaseCartShippingMethod": {
        "type": "object",
        "description": "A cart's shipping method.",
        "x-schemaName": "BaseCartShippingMethod",
        "required": [
          "id",
          "cart_id",
          "name",
          "amount",
          "is_tax_inclusive",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping method's ID."
          },
          "cart_id": {
            "type": "string",
            "title": "cart_id",
            "description": "The ID of the cart this shipping method belongs to."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The shipping method's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The shipping method's description."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The shipping method's amount."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the shipping method's amount is tax inclusive."
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the shipping option this method was created from."
          },
          "data": {
            "type": "object",
            "description": "The shipping method's data, useful for fulfillment handling by third-party services.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/cart/concepts#data-property"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The shipping method's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "tax_lines": {
            "type": "array",
            "description": "The shipping method's tax lines.",
            "items": {
              "$ref": "#/components/schemas/BaseShippingMethodTaxLine"
            }
          },
          "adjustments": {
            "type": "array",
            "description": "The shipping method's adjustments, such as applied promotions.",
            "items": {
              "$ref": "#/components/schemas/BaseShippingMethodAdjustment"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the shipping method was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the shipping method was updated."
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The shipping method's original total before discounts, including taxes."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The shipping method's original subtotal before discounts, excluding taxes."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The shipping method's original tax total before discounts."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The shipping method's total after discounts, including taxes."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The shipping method's subtotal before discounts, excluding taxes."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The shipping method's tax total after discounts."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total amount of discounts applied to the shipping method, including the tax portion of discounts."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The total amount of discounts applied to the shipping method's tax. Represents the tax portion of discounts."
          }
        }
      },
      "BaseClaimItem": {
        "type": "object",
        "description": "The claim item's details.",
        "x-schemaName": "BaseClaimItem",
        "required": [
          "id",
          "claim_id",
          "order_id",
          "item_id",
          "quantity",
          "reason",
          "raw_quantity"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The claim item's ID."
          },
          "claim_id": {
            "type": "string",
            "title": "claim_id",
            "description": "The ID of the claim this item belongs to."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order this item belongs to."
          },
          "item_id": {
            "type": "string",
            "title": "item_id",
            "description": "The ID of the item in the order."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The quantity claimed."
          },
          "reason": {
            "type": "string",
            "description": "The claim's reason.",
            "enum": [
              "missing_item",
              "wrong_item",
              "production_failure",
              "other"
            ]
          },
          "raw_quantity": {
            "type": "object",
            "description": "The quantity claimed.",
            "properties": {
              "value": {
                "oneOf": [
                  {
                    "type": "string",
                    "title": "value",
                    "description": "The raw quantity's value."
                  },
                  {
                    "type": "number",
                    "title": "value",
                    "description": "The raw quantity's value."
                  }
                ]
              }
            },
            "required": [
              "value"
            ]
          },
          "metadata": {
            "type": "object",
            "description": "The item's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the claim was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the claim was updated."
          }
        }
      },
      "BaseCollection": {
        "type": "object",
        "description": "The product collection's details.",
        "x-schemaName": "BaseCollection",
        "required": [
          "id",
          "title",
          "handle",
          "created_at",
          "updated_at",
          "deleted_at",
          "metadata"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The collection's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The collection's title."
          },
          "handle": {
            "type": "string",
            "title": "handle",
            "description": "The collection's handle."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The collection's creation date."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The collection's update date."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The collection's deletion date."
          },
          "products": {
            "type": "array",
            "description": "The collection's products.",
            "items": {
              "type": "object"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The collection's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "BaseExchangeItem": {
        "type": "object",
        "description": "The item's details.",
        "x-schemaName": "BaseExchangeItem",
        "required": [
          "id",
          "exchange_id",
          "order_id",
          "item_id",
          "quantity",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The item's ID."
          },
          "exchange_id": {
            "type": "string",
            "title": "exchange_id",
            "description": "The ID of the exchange this item belongs to."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order this item belongs to."
          },
          "item_id": {
            "type": "string",
            "title": "item_id",
            "description": "The ID of the item in the order."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "metadata": {
            "type": "object",
            "description": "The item's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the item was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the item was updated."
          }
        }
      },
      "BaseFulfillmentProvider": {
        "type": "object",
        "description": "The fulfillment provider's details.",
        "x-schemaName": "BaseFulfillmentProvider",
        "required": [
          "id",
          "is_enabled"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The provider's ID."
          },
          "is_enabled": {
            "type": "boolean",
            "title": "is_enabled",
            "description": "Whether the provider is enabled."
          }
        }
      },
      "BaseLineItemAdjustment": {
        "type": "object",
        "description": "The adjustment's details.",
        "x-schemaName": "BaseLineItemAdjustment",
        "required": [
          "item",
          "item_id",
          "id",
          "amount",
          "cart_id",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "item": {
            "type": "object"
          },
          "item_id": {
            "type": "string",
            "title": "item_id",
            "description": "The ID of the item this adjustment applies on."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The adjustment's ID."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The adjustment's code."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The adjustment's amount."
          },
          "cart_id": {
            "type": "string",
            "title": "cart_id",
            "description": "The ID of the cart this adjustment belongs to."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The adjustment's description."
          },
          "promotion_id": {
            "type": "string",
            "title": "promotion_id",
            "description": "The ID of the promotion applied by this adjustment."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The adjustment's provider ID."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the adjustment was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the adjustment was updated."
          }
        }
      },
      "BaseLineItemTaxLine": {
        "type": "object",
        "description": "The tax line's details",
        "x-schemaName": "BaseLineItemTaxLine",
        "required": [
          "item",
          "item_id",
          "total",
          "subtotal",
          "id",
          "code",
          "rate",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "item": {
            "$ref": "#/components/schemas/BaseCartLineItem"
          },
          "item_id": {
            "type": "string",
            "title": "item_id",
            "description": "The ID of the item the tax line applies on."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The item's total, including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The item's subtotal excluding taxes, including promotions."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The tax line's ID."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The tax line's description."
          },
          "tax_rate_id": {
            "type": "string",
            "title": "tax_rate_id",
            "description": "The ID of the associated tax rate."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The code the tax rate is identified by."
          },
          "rate": {
            "type": "number",
            "title": "rate",
            "description": "The rate to charge."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the tax provider."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the tax line was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the tax line was updated."
          }
        }
      },
      "BaseOrder": {
        "type": "object",
        "description": "The order's details.",
        "x-schemaName": "BaseOrder",
        "required": [
          "id",
          "version",
          "region_id",
          "customer_id",
          "sales_channel_id",
          "email",
          "currency_code",
          "status",
          "items",
          "shipping_methods",
          "payment_status",
          "fulfillment_status",
          "summary",
          "created_at",
          "updated_at",
          "original_item_total",
          "original_item_subtotal",
          "original_item_tax_total",
          "item_total",
          "item_subtotal",
          "item_tax_total",
          "item_discount_total",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_total",
          "discount_tax_total",
          "gift_card_total",
          "gift_card_tax_total",
          "shipping_total",
          "shipping_subtotal",
          "shipping_tax_total",
          "shipping_discount_total",
          "original_shipping_total",
          "original_shipping_subtotal",
          "original_shipping_tax_total",
          "credit_line_total"
        ],
        "properties": {
          "payment_collections": {
            "type": "array",
            "description": "The order's payment collections.",
            "items": {
              "$ref": "#/components/schemas/BasePaymentCollection"
            }
          },
          "fulfillments": {
            "type": "array",
            "description": "The order's fulfillments.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderFulfillment"
            }
          },
          "shipping_address": {
            "$ref": "#/components/schemas/BaseOrderAddress"
          },
          "billing_address": {
            "$ref": "#/components/schemas/BaseOrderAddress"
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The order's ID."
          },
          "version": {
            "type": "number",
            "title": "version",
            "description": "The order's version."
          },
          "region_id": {
            "type": "string",
            "title": "region_id",
            "description": "The ID of the region associated with the order."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that placed the order."
          },
          "sales_channel_id": {
            "type": "string",
            "title": "sales_channel_id",
            "description": "The ID of the sales channel the order is placed in."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The email of the customer that placed the order.",
            "format": "email"
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The order's currency code."
          },
          "display_id": {
            "type": "number",
            "title": "display_id",
            "description": "The order's display ID."
          },
          "items": {
            "type": "array",
            "description": "The order's items.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderLineItem"
            }
          },
          "shipping_methods": {
            "type": "array",
            "description": "The order's shipping methods.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderShippingMethod"
            }
          },
          "payment_status": {
            "type": "string",
            "description": "The order's payment status.",
            "enum": [
              "canceled",
              "not_paid",
              "awaiting",
              "authorized",
              "partially_authorized",
              "captured",
              "partially_captured",
              "partially_refunded",
              "refunded",
              "requires_action"
            ]
          },
          "fulfillment_status": {
            "type": "string",
            "description": "The order's fulfillment status.",
            "enum": [
              "canceled",
              "not_fulfilled",
              "partially_fulfilled",
              "fulfilled",
              "partially_shipped",
              "shipped",
              "partially_delivered",
              "delivered"
            ]
          },
          "transactions": {
            "type": "array",
            "description": "The order's transactions.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderTransaction"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/BaseOrderSummary"
          },
          "metadata": {
            "type": "object",
            "description": "The order's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the order was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the order was updated."
          },
          "original_item_total": {
            "type": "number",
            "title": "original_item_total",
            "description": "The sum of all line items' original totals before discounts, including taxes."
          },
          "original_item_subtotal": {
            "type": "number",
            "title": "original_item_subtotal",
            "description": "The sum of all line items' original subtotals before discounts, excluding taxes."
          },
          "original_item_tax_total": {
            "type": "number",
            "title": "original_item_tax_total",
            "description": "The sum of all line items' original tax totals before discounts."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The sum of all line items' totals after discounts, including taxes."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The sum of all line items' subtotals before discounts, excluding taxes."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The sum of all line items' tax totals after discounts."
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The order's total before discounts, including taxes. Calculated as the sum of `original_item_total` and `original_shipping_total`."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The order's subtotal before discounts, excluding taxes. Calculated as the sum of `original_item_subtotal` and `original_shipping_subtotal`."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The order's tax total before discounts. Calculated as the sum of `original_item_tax_total` and `original_shipping_tax_total`."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The order's final total after discounts and credit lines, including taxes."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The order's subtotal before discounts, excluding taxes. Calculated as the sum of `item_subtotal` and `shipping_subtotal`."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The order's tax total after discounts. Calculated as the sum of `item_tax_total` and `shipping_tax_total`."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total amount of discounts applied to the order, including the tax portion of discounts."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The total amount of discounts applied to the order's tax. Represents the tax portion of discounts."
          },
          "gift_card_total": {
            "type": "number",
            "title": "gift_card_total",
            "description": "The order's gift card total."
          },
          "gift_card_tax_total": {
            "type": "number",
            "title": "gift_card_tax_total",
            "description": "The tax total of the order's gift card."
          },
          "shipping_total": {
            "type": "number",
            "title": "shipping_total",
            "description": "The sum of all shipping methods' totals after discounts, including taxes."
          },
          "shipping_subtotal": {
            "type": "number",
            "title": "shipping_subtotal",
            "description": "The sum of all shipping methods' subtotals before discounts, excluding taxes."
          },
          "shipping_tax_total": {
            "type": "number",
            "title": "shipping_tax_total",
            "description": "The sum of all shipping methods' tax totals after discounts."
          },
          "original_shipping_total": {
            "type": "number",
            "title": "original_shipping_total",
            "description": "The sum of all shipping methods' original totals before discounts, including taxes."
          },
          "original_shipping_subtotal": {
            "type": "number",
            "title": "original_shipping_subtotal",
            "description": "The sum of all shipping methods' original subtotals before discounts, excluding taxes."
          },
          "original_shipping_tax_total": {
            "type": "number",
            "title": "original_shipping_tax_total",
            "description": "The sum of all shipping methods' original tax totals before discounts."
          },
          "status": {
            "type": "string",
            "title": "status",
            "description": "The order's status."
          },
          "credit_line_total": {
            "type": "number",
            "title": "credit_line_total",
            "description": "The total amount of credit lines applied to the order, including taxes. Subtracted from the final total."
          },
          "item_discount_total": {
            "type": "number",
            "title": "item_discount_total",
            "description": "The sum of all discounts applied to line items, including the tax portion of discounts."
          },
          "shipping_discount_total": {
            "type": "number",
            "title": "shipping_discount_total",
            "description": "The sum of all discounts applied to shipping methods, including the tax portion of discounts."
          },
          "custom_display_id": {
            "type": "string",
            "title": "custom_display_id",
            "description": "The custom display ID of the order.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/order/custom-display-id"
            }
          }
        }
      },
      "BaseOrderAddress": {
        "type": "object",
        "description": "An order address.",
        "x-schemaName": "BaseOrderAddress",
        "required": [
          "id",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The address's ID."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer this address belongs to."
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The address's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The address's last name."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The address's phone."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The address's company."
          },
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The address's second line."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The address's city."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The address's country code.",
            "example": "us"
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The address's lower-case ISO 3166-2 province code.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The address's postal code."
          },
          "metadata": {
            "type": "object",
            "description": "The address's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the address was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the address was updated."
          }
        }
      },
      "BaseOrderFulfillment": {
        "type": "object",
        "description": "The fulfillment's details.",
        "x-schemaName": "BaseOrderFulfillment",
        "required": [
          "id",
          "location_id",
          "packed_at",
          "shipped_at",
          "delivered_at",
          "canceled_at",
          "requires_shipping",
          "data",
          "provider_id",
          "shipping_option_id",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The fulfillment's ID."
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the location the items are fulfilled from."
          },
          "packed_at": {
            "type": "string",
            "title": "packed_at",
            "description": "The date the items were packed.",
            "format": "date-time"
          },
          "shipped_at": {
            "type": "string",
            "title": "shipped_at",
            "description": "The date the items were shipped.",
            "format": "date-time"
          },
          "delivered_at": {
            "type": "string",
            "title": "delivered_at",
            "description": "The date the items were delivered.",
            "format": "date-time"
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date the items were canceled.",
            "format": "date-time"
          },
          "data": {
            "type": "object",
            "description": "Data useful for the fulfillment provider handling it. This is taken from the associated shipping option.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property"
            }
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the fulfillment provider used to handle the fulfillment."
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the associated shipping option."
          },
          "metadata": {
            "type": "object",
            "description": "The fulfillment's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the fulfillment was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the fulfillment was updated."
          },
          "requires_shipping": {
            "type": "boolean",
            "title": "requires_shipping",
            "description": "Whether the fulfillment requires shipping."
          }
        }
      },
      "BaseOrderItemDetail": {
        "type": "object",
        "description": "The item's detail.",
        "x-schemaName": "BaseOrderItemDetail",
        "required": [
          "id",
          "item_id",
          "item",
          "quantity",
          "fulfilled_quantity",
          "delivered_quantity",
          "shipped_quantity",
          "return_requested_quantity",
          "return_received_quantity",
          "return_dismissed_quantity",
          "written_off_quantity",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "the detail's ID."
          },
          "item_id": {
            "type": "string",
            "title": "id",
            "description": "the ID of the associated line item."
          },
          "item": {
            "type": "object"
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "fulfilled_quantity": {
            "type": "number",
            "title": "fulfilled_quantity",
            "description": "The item's fulfilled quantity."
          },
          "delivered_quantity": {
            "type": "number",
            "title": "fulfilled_quantity",
            "description": "The item's delivered quantity."
          },
          "shipped_quantity": {
            "type": "number",
            "title": "shipped_quantity",
            "description": "The item's shipped quantity."
          },
          "return_requested_quantity": {
            "type": "number",
            "title": "return_requested_quantity",
            "description": "The item's quantity that's requested to be returned."
          },
          "return_received_quantity": {
            "type": "number",
            "title": "return_received_quantity",
            "description": "The item's quantity that's returned and added to the underlying variant's stocked quantity."
          },
          "return_dismissed_quantity": {
            "type": "number",
            "title": "return_dismissed_quantity",
            "description": "The item's quantity that's returned but damaged. So, it's not added to the underlying variant's stocked quantity."
          },
          "written_off_quantity": {
            "type": "number",
            "title": "written_off_quantity",
            "description": "The item's quantity that's removed from the order."
          },
          "metadata": {
            "type": "object",
            "title": "metadata",
            "description": "The item's metadata, can hold custom key-value pairs."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the detail was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the detail was updated."
          }
        }
      },
      "BaseOrderLineItem": {
        "type": "object",
        "description": "The item's items.",
        "x-schemaName": "BaseOrderLineItem",
        "required": [
          "id",
          "title",
          "subtitle",
          "thumbnail",
          "variant_id",
          "product_id",
          "product_title",
          "product_description",
          "product_subtitle",
          "product_type_id",
          "product_type",
          "product_collection",
          "product_handle",
          "variant_sku",
          "variant_barcode",
          "variant_title",
          "variant_option_values",
          "requires_shipping",
          "is_discountable",
          "is_tax_inclusive",
          "unit_price",
          "quantity",
          "detail",
          "created_at",
          "updated_at",
          "metadata",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "item_total",
          "item_subtotal",
          "item_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_total",
          "discount_tax_total",
          "refundable_total",
          "refundable_total_per_unit"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The item's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The item's title."
          },
          "subtitle": {
            "type": "string",
            "title": "subtitle",
            "description": "The item's subtitle."
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The URL of the item's thumbnail."
          },
          "variant": {
            "$ref": "#/components/schemas/BaseProductVariant"
          },
          "variant_id": {
            "type": "string",
            "title": "variant_id",
            "description": "The ID of the associated variant."
          },
          "product": {
            "$ref": "#/components/schemas/BaseProduct"
          },
          "product_id": {
            "type": "string",
            "title": "product_id",
            "description": "The ID of the associated product."
          },
          "product_title": {
            "type": "string",
            "title": "product_title",
            "description": "The item's product title."
          },
          "product_description": {
            "type": "string",
            "title": "product_description",
            "description": "The item's product description."
          },
          "product_subtitle": {
            "type": "string",
            "title": "product_subtitle",
            "description": "The item's product subtitle."
          },
          "product_type": {
            "type": "string",
            "title": "product_type",
            "description": "The item's product type."
          },
          "product_collection": {
            "type": "string",
            "title": "product_collection",
            "description": "The ID of the collection the item's product belongs to."
          },
          "product_handle": {
            "type": "string",
            "title": "product_handle",
            "description": "The item's product handle."
          },
          "variant_sku": {
            "type": "string",
            "title": "variant_sku",
            "description": "The item's variant SKU."
          },
          "variant_barcode": {
            "type": "string",
            "title": "variant_barcode",
            "description": "The item's variant barcode."
          },
          "variant_title": {
            "type": "string",
            "title": "variant_title",
            "description": "The item's variant title."
          },
          "variant_option_values": {
            "type": "object",
            "description": "The values of the item variant's options.",
            "example": {
              "Color": "Blue"
            }
          },
          "requires_shipping": {
            "type": "boolean",
            "title": "requires_shipping",
            "description": "Whether the item requires shipping."
          },
          "is_discountable": {
            "type": "boolean",
            "title": "is_discountable",
            "description": "Whether the item is discountable."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the item is tax inclusive."
          },
          "compare_at_unit_price": {
            "type": "number",
            "title": "compare_at_unit_price",
            "description": "The original price of the item before a promotion or sale."
          },
          "unit_price": {
            "type": "number",
            "title": "unit_price",
            "description": "The item's unit price."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "tax_lines": {
            "type": "array",
            "description": "The item's tax lines.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderLineItemTaxLine"
            }
          },
          "adjustments": {
            "type": "array",
            "description": "The item's adjustments.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderLineItemAdjustment"
            }
          },
          "detail": {
            "$ref": "#/components/schemas/BaseOrderItemDetail"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the item was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the item was updated."
          },
          "metadata": {
            "type": "object",
            "description": "The item's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The line item's original total before discounts, including taxes."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The line item's original subtotal before discounts, excluding taxes."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The line item's original tax total before discounts."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The line item's total after discounts, including taxes."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The line item's subtotal before discounts, excluding taxes."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The line item's tax total after discounts."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The line item's total after discounts, including taxes."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The line item's subtotal before discounts, excluding taxes."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The line item's tax total after discounts."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total amount of discounts applied to the line item, including the tax portion of discounts."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The total amount of discounts applied to the line item's tax. Represents the tax portion of discounts."
          },
          "refundable_total": {
            "type": "number",
            "title": "refundable_total",
            "description": "The total refundable amount of the item's total."
          },
          "refundable_total_per_unit": {
            "type": "number",
            "title": "refundable_total_per_unit",
            "description": "The total refundable amount of the item's total for a single quantity."
          },
          "product_type_id": {
            "type": "string",
            "title": "product_type_id",
            "description": "The ID of the associated product's type."
          }
        }
      },
      "BaseOrderLineItemAdjustment": {
        "type": "object",
        "description": "The adjustment's details.",
        "x-schemaName": "BaseOrderLineItemAdjustment",
        "properties": {
          "item": {
            "type": "object"
          },
          "item_id": {
            "type": "string",
            "title": "item_id",
            "description": "The ID of the item this adjustment applies to."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The adjustment's ID."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The adjustment's code."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The adjustment's amount."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the associated order."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The adjustment's description."
          },
          "promotion_id": {
            "type": "string",
            "title": "promotion_id",
            "description": "The ID of the promotion that this applies on the order's item."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The adjustment's provider ID."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the adjustment was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the adjustment was updated."
          }
        },
        "required": [
          "item",
          "item_id",
          "id",
          "amount",
          "order_id",
          "created_at",
          "updated_at"
        ]
      },
      "BaseOrderLineItemTaxLine": {
        "type": "object",
        "description": "The tax line's tax lines.",
        "x-schemaName": "BaseOrderLineItemTaxLine",
        "properties": {
          "item": {
            "type": "object"
          },
          "item_id": {
            "type": "string",
            "title": "item_id",
            "description": "The ID of the associated line item."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The tax line's total including promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The tax line's subtotal excluding promotions."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The tax line's ID."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The tax line's description."
          },
          "tax_rate_id": {
            "type": "string",
            "title": "tax_rate_id",
            "description": "The ID of the applied tax rate."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The code that the tax rate is identified by."
          },
          "rate": {
            "type": "number",
            "title": "rate",
            "description": "The rate to charge."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the tax provider used to calculate the tax line."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the tax line was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the tax line was updated."
          }
        },
        "required": [
          "item",
          "item_id",
          "total",
          "subtotal",
          "id",
          "code",
          "rate",
          "created_at",
          "updated_at"
        ]
      },
      "BaseOrderShippingDetail": {
        "type": "object",
        "description": "Details of changes to a shipping method.",
        "x-schemaName": "BaseOrderShippingDetail",
        "required": [
          "id",
          "shipping_method_id",
          "shipping_method",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The ID of the new changes to the shipping method."
          },
          "shipping_method_id": {
            "type": "string",
            "title": "shipping_method_id",
            "description": "The ID of the shipping method."
          },
          "shipping_method": {
            "type": "object"
          },
          "claim_id": {
            "type": "string",
            "title": "claim_id",
            "description": "The ID of the associated claim."
          },
          "exchange_id": {
            "type": "string",
            "title": "exchange_id",
            "description": "The ID of the associated exchange."
          },
          "return_id": {
            "type": "string",
            "title": "return_id",
            "description": "The ID of the associated return."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the shipping method change was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the shipping method change was updated."
          }
        }
      },
      "BaseOrderShippingMethod": {
        "type": "object",
        "description": "The shipping method's details.",
        "x-schemaName": "BaseOrderShippingMethod",
        "required": [
          "id",
          "order_id",
          "name",
          "amount",
          "is_tax_inclusive",
          "shipping_option_id",
          "data",
          "metadata",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_total",
          "discount_tax_total",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping method's ID."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order the shipping method belongs to."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The shipping method's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The shipping method's description."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The shipping method's amount."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the shipping method's amount includes applied taxes."
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the shipping option this method was created from."
          },
          "data": {
            "type": "object",
            "description": "The shipping method's data, useful for fulfillment provider handling its fulfillment.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The shipping method's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "tax_lines": {
            "type": "array",
            "description": "The shipping method's tax lines.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderShippingMethodTaxLine"
            }
          },
          "adjustments": {
            "type": "array",
            "description": "The shipping method's adjustments.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderShippingMethodAdjustment"
            }
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The shipping method's total including taxes, excluding promotions."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The shipping method's total excluding taxes, including promotions."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The shipping method's total taxes excluding promotions."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The shipping method's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The shipping method's total excluding taxes, including promotions."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The shipping method's tax total including promotions."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total discounts applied on the shipping method."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The taxes applied on the discount amount."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the shipping method was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the shipping method was updated."
          },
          "detail": {
            "$ref": "#/components/schemas/BaseOrderShippingDetail"
          }
        }
      },
      "BaseOrderShippingMethodAdjustment": {
        "type": "object",
        "description": "The adjustment's adjustments.",
        "x-schemaName": "BaseOrderShippingMethodAdjustment",
        "properties": {
          "shipping_method": {
            "type": "object"
          },
          "shipping_method_id": {
            "type": "string",
            "title": "shipping_method_id",
            "description": "The ID of the shipping method this adjustment applies on."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The adjustment's ID."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The adjustment's code."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The adjustment's amount."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the associated order."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The adjustment's description."
          },
          "promotion_id": {
            "type": "string",
            "title": "promotion_id",
            "description": "The ID of the promotion applied by this adjustment."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The adjustment's provider ID."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the adjustment was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the adjustment was updated."
          }
        },
        "required": [
          "shipping_method",
          "shipping_method_id",
          "id",
          "amount",
          "order_id",
          "created_at",
          "updated_at"
        ]
      },
      "BaseOrderShippingMethodTaxLine": {
        "type": "object",
        "description": "The tax line's details.",
        "x-schemaName": "BaseOrderShippingMethodTaxLine",
        "properties": {
          "shipping_method": {
            "type": "object"
          },
          "shipping_method_id": {
            "type": "string",
            "title": "shipping_method_id",
            "description": "The ID of the shipping method this tax line belongs to."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The shipping method's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The shipping method's total excluding taxes, including promotions."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The tax line's ID."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The tax line's description."
          },
          "tax_rate_id": {
            "type": "string",
            "title": "tax_rate_id",
            "description": "The ID of the applied tax rate."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The code that the tax rate is identified by."
          },
          "rate": {
            "type": "number",
            "title": "rate",
            "description": "The rate to charge."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the tax provider handling the tax calculation."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the tax line was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the tax line was updated."
          }
        },
        "required": [
          "shipping_method",
          "shipping_method_id",
          "total",
          "subtotal",
          "id",
          "code",
          "rate",
          "created_at",
          "updated_at"
        ]
      },
      "BaseOrderSummary": {
        "type": "object",
        "description": "The order's summary details.",
        "x-schemaName": "BaseOrderSummary",
        "required": [
          "pending_difference",
          "current_order_total",
          "original_order_total",
          "transaction_total",
          "paid_total",
          "refunded_total",
          "accounting_total"
        ],
        "properties": {
          "paid_total": {
            "type": "number",
            "title": "paid_total",
            "description": "The total amount paid."
          },
          "refunded_total": {
            "type": "number",
            "title": "refunded_total",
            "description": "The total amount refunded."
          },
          "pending_difference": {
            "type": "number",
            "title": "pending_difference",
            "description": "The difference pending to be processed. If negative, the customer needs a refund. Otherwise, additional payment is required from the customer."
          },
          "current_order_total": {
            "type": "number",
            "title": "current_order_total",
            "description": "The order's current total, could be the total after a change in the order."
          },
          "original_order_total": {
            "type": "number",
            "title": "original_order_total",
            "description": "The order's original total."
          },
          "transaction_total": {
            "type": "number",
            "title": "transaction_total",
            "description": "The total of the transactions made on the order."
          },
          "accounting_total": {
            "type": "number",
            "title": "accounting_total",
            "description": "The order's total without the credit-line total."
          }
        }
      },
      "BaseOrderTransaction": {
        "type": "object",
        "description": "An order transaction's details.",
        "x-schemaName": "BaseOrderTransaction",
        "required": [
          "id",
          "order_id",
          "amount",
          "currency_code",
          "reference",
          "reference_id",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The transaction's ID."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order this transaction belongs to."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The transaction's amount."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The transaction's currency code.",
            "example": "usd"
          },
          "reference": {
            "type": "string",
            "title": "reference",
            "description": "The name of a table that this transaction references. If this transaction is for captured payment, its value is `capture`. If this transaction is for refunded payment, its value is `refund`.",
            "enum": [
              "capture",
              "refund"
            ]
          },
          "reference_id": {
            "type": "string",
            "title": "reference_id",
            "description": "The ID of the referenced record in the referenced table."
          },
          "metadata": {
            "type": "object",
            "description": "The transaction's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date that the transaction was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date that the transaction was updated."
          }
        }
      },
      "BasePayment": {
        "type": "object",
        "description": "The payment's details.",
        "x-schemaName": "BasePayment",
        "required": [
          "id",
          "amount",
          "currency_code",
          "provider_id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The payment's ID."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The payment's amount."
          },
          "authorized_amount": {
            "type": "number",
            "title": "authorized_amount",
            "description": "The amount authorized of the payment."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The payment's currency code."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the payment provider used to process this payment."
          },
          "data": {
            "type": "object",
            "description": "The payment's data, useful for processing by the payment provider.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/payment/payment#whats-a-payment"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the payment was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the payment was updated."
          },
          "captured_at": {
            "type": "string",
            "format": "date-time",
            "title": "captured_at",
            "description": "The date the payment was captured."
          },
          "canceled_at": {
            "type": "string",
            "format": "date-time",
            "title": "canceled_at",
            "description": "The date the payment was canceled."
          },
          "captured_amount": {
            "type": "number",
            "title": "captured_amount",
            "description": "The captured amount of the payment."
          },
          "refunded_amount": {
            "type": "number",
            "title": "captured_amount",
            "description": "The refunded amount of the payment."
          },
          "captures": {
            "type": "array",
            "description": "The details of payment captures.",
            "items": {
              "$ref": "#/components/schemas/BaseCapture"
            }
          },
          "refunds": {
            "type": "array",
            "description": "The details of payment refunds.",
            "items": {
              "$ref": "#/components/schemas/BaseRefund"
            }
          },
          "payment_collection": {
            "type": "object"
          },
          "payment_session": {
            "type": "object"
          }
        }
      },
      "BasePaymentCollection": {
        "type": "object",
        "description": "The payment collection's details.",
        "x-schemaName": "BasePaymentCollection",
        "required": [
          "id",
          "currency_code",
          "amount",
          "status",
          "payment_providers"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The payment collection's ID."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The payment collection's currency code."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The total amount to be paid."
          },
          "authorized_amount": {
            "type": "number",
            "title": "authorized_amount",
            "description": "The total authorized amount of the collection's payments."
          },
          "captured_amount": {
            "type": "number",
            "title": "captured_amount",
            "description": "The total captured amount of the collection's payments."
          },
          "refunded_amount": {
            "type": "number",
            "title": "refunded_amount",
            "description": "The total refunded amount of the collection's payments."
          },
          "completed_at": {
            "type": "string",
            "format": "date-time",
            "title": "completed_at",
            "description": "The date the payment collection was completed."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the payment collection was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the payment collection was updated."
          },
          "metadata": {
            "type": "object",
            "description": "The payment collection's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "status": {
            "type": "string",
            "description": "The payment collection's status.",
            "enum": [
              "canceled",
              "not_paid",
              "awaiting",
              "authorized",
              "partially_authorized",
              "completed",
              "failed"
            ]
          },
          "payment_providers": {
            "type": "array",
            "description": "The payment provider used to process the collection's payments and sessions.",
            "items": {
              "$ref": "#/components/schemas/BasePaymentProvider"
            }
          },
          "payment_sessions": {
            "type": "array",
            "description": "The payment collection's payment sessions.",
            "items": {
              "$ref": "#/components/schemas/BasePaymentSession"
            }
          },
          "payments": {
            "type": "array",
            "description": "The payment collection's payments.",
            "items": {
              "$ref": "#/components/schemas/BasePayment"
            }
          }
        }
      },
      "BasePaymentProvider": {
        "type": "object",
        "description": "The payment provider's details.",
        "x-schemaName": "BasePaymentProvider",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The payment provider's ID."
          }
        }
      },
      "BasePaymentSession": {
        "type": "object",
        "description": "The payment session's details.",
        "x-schemaName": "BasePaymentSession",
        "required": [
          "id",
          "amount",
          "currency_code",
          "provider_id",
          "data",
          "status"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The payment session's ID."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The payment session's amount."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The payment session's currency code.",
            "example": "usd"
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the payment provider processing this session."
          },
          "data": {
            "type": "object",
            "description": "The payment session's data, useful for the payment provider processing the payment.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/payment/payment-session#data-property"
            }
          },
          "context": {
            "type": "object",
            "description": "The context around the payment, such as the customer's details.",
            "example": {
              "customer": {
                "id": "cus_123"
              }
            }
          },
          "status": {
            "type": "string",
            "description": "The payment session's status.",
            "enum": [
              "error",
              "authorized",
              "canceled",
              "captured",
              "pending",
              "requires_more"
            ]
          },
          "authorized_at": {
            "type": "string",
            "title": "authorized_at",
            "description": "The date the payment session was authorized.",
            "format": "date-time"
          },
          "payment_collection": {
            "type": "object"
          },
          "payment": {
            "$ref": "#/components/schemas/BasePayment"
          }
        }
      },
      "BaseProduct": {
        "type": "object",
        "description": "The product's details.",
        "x-schemaName": "BaseProduct",
        "required": [
          "id",
          "title",
          "handle",
          "subtitle",
          "description",
          "is_giftcard",
          "status",
          "thumbnail",
          "width",
          "weight",
          "length",
          "height",
          "origin_country",
          "hs_code",
          "mid_code",
          "material",
          "collection_id",
          "type_id",
          "variants",
          "options",
          "images",
          "discountable",
          "external_id",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "collection": {
            "$ref": "#/components/schemas/BaseCollection"
          },
          "categories": {
            "type": "array",
            "description": "The product's categories.",
            "items": {
              "$ref": "#/components/schemas/BaseProductCategory"
            }
          },
          "variants": {
            "type": "array",
            "description": "The product's variants.",
            "items": {
              "type": "object"
            }
          },
          "type": {
            "$ref": "#/components/schemas/BaseProductType"
          },
          "tags": {
            "type": "array",
            "description": "The product's tags.",
            "items": {
              "$ref": "#/components/schemas/BaseProductTag"
            }
          },
          "length": {
            "type": "number",
            "title": "length",
            "description": "The product's length."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The product's title."
          },
          "status": {
            "type": "string",
            "description": "The product's status.",
            "enum": [
              "draft",
              "proposed",
              "published",
              "rejected"
            ]
          },
          "options": {
            "type": "array",
            "description": "The product's options.",
            "items": {
              "$ref": "#/components/schemas/BaseProductOption"
            }
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The product's description."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The product's ID."
          },
          "metadata": {
            "type": "object",
            "description": "The product's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the product was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the product was updated."
          },
          "handle": {
            "type": "string",
            "title": "handle",
            "description": "The product's unique handle."
          },
          "subtitle": {
            "type": "string",
            "title": "subtitle",
            "description": "The product's subtitle."
          },
          "is_giftcard": {
            "type": "boolean",
            "title": "is_giftcard",
            "description": "Whether the product is a gift card."
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The product's thumbnail."
          },
          "width": {
            "type": "number",
            "title": "width",
            "description": "The product's width."
          },
          "weight": {
            "type": "number",
            "title": "weight",
            "description": "The product's weight."
          },
          "height": {
            "type": "number",
            "title": "height",
            "description": "The product's height."
          },
          "origin_country": {
            "type": "string",
            "title": "origin_country",
            "description": "The product's origin country."
          },
          "hs_code": {
            "type": "string",
            "title": "hs_code",
            "description": "The product's HS code."
          },
          "mid_code": {
            "type": "string",
            "title": "mid_code",
            "description": "The product's MID code."
          },
          "material": {
            "type": "string",
            "title": "material",
            "description": "The product's material."
          },
          "collection_id": {
            "type": "string",
            "title": "collection_id",
            "description": "The ID of the collection that the product belongs to."
          },
          "type_id": {
            "type": "string",
            "title": "type_id",
            "description": "The ID of the product's type."
          },
          "images": {
            "type": "array",
            "description": "The product's images.",
            "items": {
              "$ref": "#/components/schemas/BaseProductImage"
            }
          },
          "discountable": {
            "type": "boolean",
            "title": "discountable",
            "description": "Whether discounts can be applied on the product."
          },
          "external_id": {
            "type": "string",
            "title": "external_id",
            "description": "The ID of a product in an external system, such as an ERP or CMS."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the product was deleted."
          }
        }
      },
      "BaseProductCategory": {
        "type": "object",
        "description": "The product category's details.",
        "x-schemaName": "BaseProductCategory",
        "required": [
          "id",
          "name",
          "description",
          "handle",
          "is_active",
          "is_internal",
          "rank",
          "parent_category_id",
          "parent_category",
          "category_children",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "category_children": {
            "type": "array",
            "description": "The category's children.",
            "items": {
              "$ref": "#/components/schemas/AdminProductCategory"
            }
          },
          "parent_category": {
            "$ref": "#/components/schemas/AdminProductCategory"
          },
          "products": {
            "type": "array",
            "description": "The category's products.",
            "items": {
              "type": "object"
            }
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The category's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The category's description."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The category's ID."
          },
          "metadata": {
            "type": "object",
            "description": "The category's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the category was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the category was updated."
          },
          "handle": {
            "type": "string",
            "title": "handle",
            "description": "The category's unique handle."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the category was deleted."
          },
          "is_active": {
            "type": "boolean",
            "title": "is_active",
            "description": "Whether the category is active. If disabled, the category isn't shown in the storefront."
          },
          "is_internal": {
            "type": "boolean",
            "title": "is_internal",
            "description": "Whether the category is internal. If enabled, the category is only seen by admin users."
          },
          "rank": {
            "type": "number",
            "title": "rank",
            "description": "The category's rank among sibling categories."
          },
          "parent_category_id": {
            "type": "string",
            "title": "parent_category_id",
            "description": "The ID of the category's parent."
          }
        }
      },
      "BaseProductImage": {
        "type": "object",
        "description": "The image's details.",
        "x-schemaName": "BaseProductImage",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The image's ID."
          },
          "url": {
            "type": "string",
            "title": "url",
            "description": "The image's URL."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the image was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the image was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the image was deleted."
          },
          "metadata": {
            "type": "object",
            "description": "The image's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/admin#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "rank": {
            "type": "number",
            "title": "rank",
            "description": "The image's rank among its sibling images."
          }
        },
        "required": [
          "id",
          "url",
          "rank"
        ]
      },
      "BaseProductOption": {
        "type": "object",
        "description": "The product option's details.",
        "x-schemaName": "BaseProductOption",
        "required": [
          "id",
          "title"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The product option's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The product option's title."
          },
          "product": {
            "type": "object"
          },
          "product_id": {
            "type": "string",
            "title": "product_id",
            "description": "The ID of the product this option belongs to."
          },
          "values": {
            "type": "array",
            "description": "The product option's values.",
            "items": {
              "$ref": "#/components/schemas/BaseProductOptionValue"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The product option's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the product option was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the product option was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the product option was deleted."
          }
        }
      },
      "BaseProductOptionValue": {
        "type": "object",
        "description": "The product option value's details.",
        "x-schemaName": "BaseProductOptionValue",
        "required": [
          "id",
          "value"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The value's ID."
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The value."
          },
          "option": {
            "type": "object"
          },
          "option_id": {
            "type": "string",
            "title": "option_id",
            "description": "The ID of the option this value belongs to."
          },
          "metadata": {
            "type": "object",
            "description": "The value's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the value was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the value was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the value was deleted."
          }
        }
      },
      "BaseProductTag": {
        "type": "object",
        "description": "The product tag's details.",
        "x-schemaName": "BaseProductTag",
        "required": [
          "id",
          "value",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The tag's ID."
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The tag's value."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the tag was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the tag was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the tag was deleted."
          },
          "metadata": {
            "type": "object",
            "description": "The tag's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "BaseProductType": {
        "type": "object",
        "description": "The product type's details.",
        "x-schemaName": "BaseProductType",
        "required": [
          "id",
          "value",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The type's ID."
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The type's value."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the type was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the type was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the type was deleted."
          },
          "metadata": {
            "type": "object",
            "description": "The type's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "BaseProductVariant": {
        "type": "object",
        "description": "The product variant's details.",
        "x-schemaName": "BaseProductVariant",
        "required": [
          "id",
          "title",
          "sku",
          "barcode",
          "ean",
          "upc",
          "thumbnail",
          "images",
          "allow_backorder",
          "manage_inventory",
          "hs_code",
          "origin_country",
          "mid_code",
          "material",
          "weight",
          "length",
          "height",
          "width",
          "options",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The variant's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The variant's title."
          },
          "sku": {
            "type": "string",
            "title": "sku",
            "description": "The variant's SKU."
          },
          "barcode": {
            "type": "string",
            "title": "barcode",
            "description": "The variant's barcode."
          },
          "ean": {
            "type": "string",
            "title": "ean",
            "description": "The variant's EAN code."
          },
          "upc": {
            "type": "string",
            "title": "upc",
            "description": "The variant's UPC."
          },
          "allow_backorder": {
            "type": "boolean",
            "title": "allow_backorder",
            "description": "Whether the variant can be ordered even if it's out of stock."
          },
          "manage_inventory": {
            "type": "boolean",
            "title": "manage_inventory",
            "description": "Whether the Medusa application manages the variant's inventory quantity and availablility. If disabled, the variant is always considered in stock."
          },
          "inventory_quantity": {
            "type": "number",
            "title": "inventory_quantity",
            "description": "The variant's inventory quantity. This is only included if you pass in the `fields` query parameter a `+variants.inventory_quantity` parameter."
          },
          "hs_code": {
            "type": "string",
            "title": "hs_code",
            "description": "The variant's HS code."
          },
          "origin_country": {
            "type": "string",
            "title": "origin_country",
            "description": "The variant's origin country."
          },
          "mid_code": {
            "type": "string",
            "title": "mid_code",
            "description": "The variant's MID code."
          },
          "material": {
            "type": "string",
            "title": "material",
            "description": "The variant's material."
          },
          "weight": {
            "type": "number",
            "title": "weight",
            "description": "The variant's weight."
          },
          "length": {
            "type": "number",
            "title": "length",
            "description": "The variant's length."
          },
          "height": {
            "type": "number",
            "title": "height",
            "description": "The variant's height."
          },
          "width": {
            "type": "number",
            "title": "width",
            "description": "The variant's width."
          },
          "variant_rank": {
            "type": "number",
            "title": "variant_rank",
            "description": "The variant's rank among its sibling variants."
          },
          "options": {
            "type": "array",
            "description": "The variant's option values.",
            "items": {
              "$ref": "#/components/schemas/BaseProductOptionValue"
            }
          },
          "product": {
            "$ref": "#/components/schemas/BaseProduct"
          },
          "product_id": {
            "type": "string",
            "title": "product_id",
            "description": "The ID of the product that the variant belongs to."
          },
          "calculated_price": {
            "$ref": "#/components/schemas/BaseCalculatedPriceSet"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the variant was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the variant was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the variant was deleted."
          },
          "metadata": {
            "type": "object",
            "description": "The variant's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The variant's thumbnail."
          },
          "images": {
            "type": "array",
            "description": "The variant's images.",
            "items": {
              "$ref": "#/components/schemas/BaseProductImage"
            }
          }
        }
      },
      "BasePromotionRuleValue": {
        "type": "object",
        "description": "The rule value's details.",
        "x-schemaName": "BasePromotionRuleValue",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The value's ID."
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The value."
          }
        }
      },
      "BaseRefund": {
        "type": "object",
        "description": "The refund's details.",
        "x-schemaName": "BaseRefund",
        "required": [
          "id",
          "amount",
          "created_at",
          "payment"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The refund's ID."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The refund's amount."
          },
          "refund_reason_id": {
            "type": "string",
            "title": "refund_reason_id",
            "description": "The ID of the refund reason."
          },
          "note": {
            "type": "string",
            "title": "note",
            "description": "More details about the refund."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the refund was created."
          },
          "created_by": {
            "type": "string",
            "title": "created_by",
            "description": "The ID of the user that created the refund."
          },
          "payment": {
            "type": "object"
          },
          "refund_reason": {
            "$ref": "#/components/schemas/BaseRefundReason"
          }
        }
      },
      "BaseRefundReason": {
        "type": "object",
        "description": "The refund reason's details.",
        "x-schemaName": "BaseRefundReason",
        "required": [
          "id",
          "label",
          "code",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The refund reason's ID."
          },
          "label": {
            "type": "string",
            "title": "label",
            "description": "The refund reason's label."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The refund reason's description."
          },
          "metadata": {
            "type": "object",
            "description": "The refund reason's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the refund reason was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the refund reason was updated."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The refund reason's code."
          }
        }
      },
      "BaseRegion": {
        "type": "object",
        "description": "The region's details.",
        "x-schemaName": "BaseRegion",
        "required": [
          "id",
          "name",
          "currency_code"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The region's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The region's name."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The region's currency code."
          },
          "automatic_taxes": {
            "type": "boolean",
            "title": "automatic_taxes",
            "description": "The region's automatic taxes."
          },
          "countries": {
            "type": "array",
            "description": "The region's countries.",
            "items": {
              "$ref": "#/components/schemas/BaseRegionCountry"
            }
          },
          "payment_providers": {
            "type": "array",
            "description": "The region's payment providers.",
            "items": {
              "$ref": "#/components/schemas/AdminPaymentProvider"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The region's metadata.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The region's created at."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The region's updated at."
          }
        }
      },
      "BaseRegionCountry": {
        "type": "object",
        "description": "The country's details.",
        "x-schemaName": "BaseRegionCountry",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The country's ID."
          },
          "iso_2": {
            "type": "string",
            "title": "iso_2",
            "description": "The country's iso 2.",
            "example": "us"
          },
          "iso_3": {
            "type": "string",
            "title": "iso_3",
            "description": "The country's iso 3.",
            "example": "usa"
          },
          "num_code": {
            "type": "string",
            "title": "num_code",
            "description": "The country's num code.",
            "example": 840
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The country's name."
          },
          "display_name": {
            "type": "string",
            "title": "display_name",
            "description": "The country's display name."
          }
        },
        "required": [
          "id"
        ]
      },
      "BaseRuleOperatorOptions": {
        "type": "object",
        "description": "The operator's details.",
        "x-schemaName": "BaseRuleOperatorOptions",
        "required": [
          "id",
          "value",
          "label"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The operator's ID.",
            "example": "in"
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The operator's value.",
            "example": "in"
          },
          "label": {
            "type": "string",
            "title": "label",
            "description": "The operator's label.",
            "example": "In"
          }
        }
      },
      "BaseShippingMethodAdjustment": {
        "type": "object",
        "description": "The adjustment's details.",
        "x-schemaName": "BaseShippingMethodAdjustment",
        "required": [
          "shipping_method",
          "shipping_method_id",
          "id",
          "amount",
          "cart_id",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "shipping_method": {
            "type": "object"
          },
          "shipping_method_id": {
            "type": "string",
            "title": "shipping_method_id",
            "description": "The ID of the shipping method the adjustment is applied on."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The adjustment's ID."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The adjustment's code."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The adjustment's amount."
          },
          "cart_id": {
            "type": "string",
            "title": "cart_id",
            "description": "The ID of the associated cart."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The adjustment's description."
          },
          "promotion_id": {
            "type": "string",
            "title": "promotion_id",
            "description": "The ID of the promotion applied by this adjustment."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The adjustment's provider ID."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the adjustment was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the adjustment was updated."
          }
        }
      },
      "BaseShippingMethodTaxLine": {
        "type": "object",
        "description": "The tax line's details.",
        "x-schemaName": "BaseShippingMethodTaxLine",
        "required": [
          "shipping_method",
          "shipping_method_id",
          "total",
          "subtotal",
          "id",
          "code",
          "rate",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "shipping_method": {
            "type": "object"
          },
          "shipping_method_id": {
            "type": "string",
            "title": "shipping_method_id",
            "description": "The ID of this shipping method the tax line belongs to."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The method's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The method's total excluding taxes, including promotions."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The tax line's ID."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The tax line's description."
          },
          "tax_rate_id": {
            "type": "string",
            "title": "tax_rate_id",
            "description": "The ID of the applied tax rate."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The code that the rate is identified by."
          },
          "rate": {
            "type": "number",
            "title": "rate",
            "description": "The rate to charge."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the tax provider that calculated the taxes."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the tax line was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the tax line was updated."
          }
        }
      },
      "CampaignResponse": {
        "type": "object",
        "description": "The campaign's details.",
        "x-schemaName": "CampaignResponse",
        "required": [
          "id",
          "name",
          "description",
          "currency",
          "campaign_identifier",
          "starts_at",
          "ends_at",
          "budget"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The campaign's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The campaign's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The campaign's description."
          },
          "currency": {
            "type": "string",
            "title": "currency",
            "description": "The campaign's currency."
          },
          "campaign_identifier": {
            "type": "string",
            "title": "campaign_identifier",
            "description": "The campaign's campaign identifier."
          },
          "starts_at": {
            "type": "string",
            "title": "starts_at",
            "description": "The campaign's starts at."
          },
          "ends_at": {
            "type": "string",
            "title": "ends_at",
            "description": "The campaign's ends at."
          },
          "budget": {
            "type": "object",
            "description": "The campaign's budget.",
            "required": [
              "id",
              "type",
              "currency_code",
              "limit",
              "used"
            ],
            "properties": {
              "id": {
                "type": "string",
                "title": "id",
                "description": "The budget's ID."
              },
              "type": {
                "type": "string",
                "enum": [
                  "spend",
                  "usage"
                ]
              },
              "currency_code": {
                "type": "string",
                "title": "currency_code",
                "description": "The budget's currency code."
              },
              "limit": {
                "type": "number",
                "title": "limit",
                "description": "The budget's limit."
              },
              "used": {
                "type": "number",
                "title": "used",
                "description": "The budget's used."
              }
            }
          }
        }
      },
      "CreateAddress": {
        "type": "object",
        "description": "The address to create.",
        "x-schemaName": "CreateAddress",
        "properties": {
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer this address belongs to."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The address's company."
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The address's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The address's last name."
          },
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The address's second line."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The address's city."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The address's country code.",
            "example": "us"
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The address's ISO 3166-2 province code. Must be lower-case.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The address's postal code."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The address's phone."
          },
          "metadata": {
            "type": "object",
            "description": "The address's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "CustomerGroupInCustomerFilters": {
        "type": "object",
        "description": "Filter by customer groups to get their associated customers.",
        "x-schemaName": "CustomerGroupInCustomerFilters",
        "required": [
          "id",
          "name",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "oneOf": [
              {
                "type": "string",
                "title": "id",
                "description": "Filter by a group's ID."
              },
              {
                "type": "array",
                "description": "Filter by group IDs.",
                "items": {
                  "type": "string",
                  "title": "id",
                  "description": "A group's ID."
                }
              }
            ]
          },
          "name": {
            "oneOf": [
              {
                "type": "string",
                "title": "name",
                "description": "Filter by a group's name."
              },
              {
                "type": "array",
                "description": "Filter by group names.",
                "items": {
                  "type": "string",
                  "title": "name",
                  "description": "A group's name."
                }
              }
            ]
          },
          "created_at": {
            "type": "object",
            "description": "Filter by the group's creation date.",
            "properties": {
              "$and": {
                "type": "array",
                "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                "items": {
                  "type": "object"
                },
                "title": "$and"
              },
              "$or": {
                "type": "array",
                "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                "items": {
                  "type": "object"
                },
                "title": "$or"
              },
              "$eq": {
                "oneOf": [
                  {
                    "type": "string",
                    "title": "$eq",
                    "description": "Filter by an exact match."
                  },
                  {
                    "type": "array",
                    "description": "Filter by exact matches.",
                    "items": {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    }
                  }
                ]
              },
              "$ne": {
                "type": "string",
                "title": "$ne",
                "description": "Filter by values not equal to this parameter."
              },
              "$in": {
                "type": "array",
                "description": "Filter by values in this array.",
                "items": {
                  "type": "string",
                  "title": "$in",
                  "description": "Filter by values in this array."
                }
              },
              "$nin": {
                "type": "array",
                "description": "Filter by values not in this array.",
                "items": {
                  "type": "string",
                  "title": "$nin",
                  "description": "Filter by values not in this array."
                }
              },
              "$not": {
                "oneOf": [
                  {
                    "type": "string",
                    "title": "$not",
                    "description": "Filter by values not matching the conditions in this parameter."
                  },
                  {
                    "type": "object",
                    "description": "Filter by values not matching the conditions in this parameter."
                  },
                  {
                    "type": "array",
                    "description": "Filter by values not matching the conditions in this parameter.",
                    "items": {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    }
                  }
                ]
              },
              "$gt": {
                "type": "string",
                "title": "$gt",
                "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
              },
              "$gte": {
                "type": "string",
                "title": "$gte",
                "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
              },
              "$lt": {
                "type": "string",
                "title": "$lt",
                "description": "Filter by values less than this parameter. Useful for numbers and dates only."
              },
              "$lte": {
                "type": "string",
                "title": "$lte",
                "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
              },
              "$like": {
                "type": "string",
                "title": "$like",
                "description": "Apply a `like` filter. Useful for strings only."
              },
              "$re": {
                "type": "string",
                "title": "$re",
                "description": "Apply a regex filter. Useful for strings only."
              },
              "$ilike": {
                "type": "string",
                "title": "$ilike",
                "description": "Apply a case-insensitive `like` filter. Useful for strings only."
              },
              "$fulltext": {
                "type": "string",
                "title": "$fulltext",
                "description": "Filter to apply on full-text properties."
              },
              "$overlap": {
                "type": "array",
                "description": "Filter arrays that have overlapping values with this parameter.",
                "items": {
                  "type": "string",
                  "title": "$overlap",
                  "description": "Filter arrays that have overlapping values with this parameter."
                }
              },
              "$contains": {
                "type": "array",
                "description": "Filter arrays that contain some of the values of this parameter.",
                "items": {
                  "type": "string",
                  "title": "$contains",
                  "description": "Filter arrays that contain some of the values of this parameter."
                }
              },
              "$contained": {
                "type": "array",
                "description": "Filter arrays that contain all values of this parameter.",
                "items": {
                  "type": "string",
                  "title": "$contained",
                  "description": "Filter arrays that contain all values of this parameter."
                }
              },
              "$exists": {
                "type": "boolean",
                "title": "$exists",
                "description": "Filter by whether a value for this parameter exists (not `null`)."
              }
            }
          },
          "updated_at": {
            "type": "object",
            "description": "Filter by the group's update date.",
            "properties": {
              "$and": {
                "type": "array",
                "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                "items": {
                  "type": "object"
                },
                "title": "$and"
              },
              "$or": {
                "type": "array",
                "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                "items": {
                  "type": "object"
                },
                "title": "$or"
              },
              "$eq": {
                "oneOf": [
                  {
                    "type": "string",
                    "title": "$eq",
                    "description": "Filter by an exact match."
                  },
                  {
                    "type": "array",
                    "description": "Filter by exact matches.",
                    "items": {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    }
                  }
                ]
              },
              "$ne": {
                "type": "string",
                "title": "$ne",
                "description": "Filter by values not equal to this parameter."
              },
              "$in": {
                "type": "array",
                "description": "Filter by values in this array.",
                "items": {
                  "type": "string",
                  "title": "$in",
                  "description": "Filter by values in this array."
                }
              },
              "$nin": {
                "type": "array",
                "description": "Filter by values not in this array.",
                "items": {
                  "type": "string",
                  "title": "$nin",
                  "description": "Filter by values not in this array."
                }
              },
              "$not": {
                "oneOf": [
                  {
                    "type": "string",
                    "title": "$not",
                    "description": "Filter by values not matching the conditions in this parameter."
                  },
                  {
                    "type": "object",
                    "description": "Filter by values not matching the conditions in this parameter."
                  },
                  {
                    "type": "array",
                    "description": "Filter by values not matching the conditions in this parameter.",
                    "items": {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    }
                  }
                ]
              },
              "$gt": {
                "type": "string",
                "title": "$gt",
                "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
              },
              "$gte": {
                "type": "string",
                "title": "$gte",
                "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
              },
              "$lt": {
                "type": "string",
                "title": "$lt",
                "description": "Filter by values less than this parameter. Useful for numbers and dates only."
              },
              "$lte": {
                "type": "string",
                "title": "$lte",
                "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
              },
              "$like": {
                "type": "string",
                "title": "$like",
                "description": "Apply a `like` filter. Useful for strings only."
              },
              "$re": {
                "type": "string",
                "title": "$re",
                "description": "Apply a regex filter. Useful for strings only."
              },
              "$ilike": {
                "type": "string",
                "title": "$ilike",
                "description": "Apply a case-insensitive `like` filter. Useful for strings only."
              },
              "$fulltext": {
                "type": "string",
                "title": "$fulltext",
                "description": "Filter to apply on full-text properties."
              },
              "$overlap": {
                "type": "array",
                "description": "Filter arrays that have overlapping values with this parameter.",
                "items": {
                  "type": "string",
                  "title": "$overlap",
                  "description": "Filter arrays that have overlapping values with this parameter."
                }
              },
              "$contains": {
                "type": "array",
                "description": "Filter arrays that contain some of the values of this parameter.",
                "items": {
                  "type": "string",
                  "title": "$contains",
                  "description": "Filter arrays that contain some of the values of this parameter."
                }
              },
              "$contained": {
                "type": "array",
                "description": "Filter arrays that contain all values of this parameter.",
                "items": {
                  "type": "string",
                  "title": "$contained",
                  "description": "Filter arrays that contain all values of this parameter."
                }
              },
              "$exists": {
                "type": "boolean",
                "title": "$exists",
                "description": "Filter by whether a value for this parameter exists (not `null`)."
              }
            }
          },
          "deleted_at": {
            "type": "object",
            "description": "Filter by the group's deletion date.",
            "properties": {
              "$and": {
                "type": "array",
                "description": "Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.",
                "items": {
                  "type": "object"
                },
                "title": "$and"
              },
              "$or": {
                "type": "array",
                "description": "Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.",
                "items": {
                  "type": "object"
                },
                "title": "$or"
              },
              "$eq": {
                "oneOf": [
                  {
                    "type": "string",
                    "title": "$eq",
                    "description": "Filter by an exact match."
                  },
                  {
                    "type": "array",
                    "description": "Filter by exact matches.",
                    "items": {
                      "type": "string",
                      "title": "$eq",
                      "description": "Filter by an exact match."
                    }
                  }
                ]
              },
              "$ne": {
                "type": "string",
                "title": "$ne",
                "description": "Filter by values not equal to this parameter."
              },
              "$in": {
                "type": "array",
                "description": "Filter by values in this array.",
                "items": {
                  "type": "string",
                  "title": "$in",
                  "description": "Filter by values in this array."
                }
              },
              "$nin": {
                "type": "array",
                "description": "Filter by values not in this array.",
                "items": {
                  "type": "string",
                  "title": "$nin",
                  "description": "Filter by values not in this array."
                }
              },
              "$not": {
                "oneOf": [
                  {
                    "type": "string",
                    "title": "$not",
                    "description": "Filter by values not matching the conditions in this parameter."
                  },
                  {
                    "type": "object",
                    "description": "Filter by values not matching the conditions in this parameter."
                  },
                  {
                    "type": "array",
                    "description": "Filter by values not matching the conditions in this parameter.",
                    "items": {
                      "type": "string",
                      "title": "$not",
                      "description": "Filter by values not matching the conditions in this parameter."
                    }
                  }
                ]
              },
              "$gt": {
                "type": "string",
                "title": "$gt",
                "description": "Filter by values greater than this parameter. Useful for numbers and dates only."
              },
              "$gte": {
                "type": "string",
                "title": "$gte",
                "description": "Filter by values greater than or equal to this parameter. Useful for numbers and dates only."
              },
              "$lt": {
                "type": "string",
                "title": "$lt",
                "description": "Filter by values less than this parameter. Useful for numbers and dates only."
              },
              "$lte": {
                "type": "string",
                "title": "$lte",
                "description": "Filter by values less than or equal to this parameter. Useful for numbers and dates only."
              },
              "$like": {
                "type": "string",
                "title": "$like",
                "description": "Apply a `like` filter. Useful for strings only."
              },
              "$re": {
                "type": "string",
                "title": "$re",
                "description": "Apply a regex filter. Useful for strings only."
              },
              "$ilike": {
                "type": "string",
                "title": "$ilike",
                "description": "Apply a case-insensitive `like` filter. Useful for strings only."
              },
              "$fulltext": {
                "type": "string",
                "title": "$fulltext",
                "description": "Filter to apply on full-text properties."
              },
              "$overlap": {
                "type": "array",
                "description": "Filter arrays that have overlapping values with this parameter.",
                "items": {
                  "type": "string",
                  "title": "$overlap",
                  "description": "Filter arrays that have overlapping values with this parameter."
                }
              },
              "$contains": {
                "type": "array",
                "description": "Filter arrays that contain some of the values of this parameter.",
                "items": {
                  "type": "string",
                  "title": "$contains",
                  "description": "Filter arrays that contain some of the values of this parameter."
                }
              },
              "$contained": {
                "type": "array",
                "description": "Filter arrays that contain all values of this parameter.",
                "items": {
                  "type": "string",
                  "title": "$contained",
                  "description": "Filter arrays that contain all values of this parameter."
                }
              },
              "$exists": {
                "type": "boolean",
                "title": "$exists",
                "description": "Filter by whether a value for this parameter exists (not `null`)."
              }
            }
          }
        }
      },
      "Error": {
        "title": "Response Error",
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "A slug code to indicate the type of the error.",
            "enum": [
              "invalid_state_error",
              "invalid_request_error",
              "api_error",
              "unknown_error"
            ]
          },
          "message": {
            "type": "string",
            "description": "Description of the error that occurred.",
            "example": "first_name must be a string"
          },
          "type": {
            "type": "string",
            "description": "A slug indicating the type of the error.",
            "enum": [
              "QueryRunnerAlreadyReleasedError",
              "TransactionAlreadyStartedError",
              "TransactionNotStartedError",
              "conflict",
              "unauthorized",
              "payment_authorization_error",
              "duplicate_error",
              "not_allowed",
              "invalid_data",
              "not_found",
              "database_error",
              "unexpected_state",
              "invalid_argument",
              "unknown_error"
            ]
          }
        }
      },
      "IndexInfo": {
        "type": "object",
        "description": "The index's metadata information.",
        "x-schemaName": "IndexInfo",
        "required": [
          "id",
          "entity",
          "status",
          "fields",
          "updated_at",
          "last_synced_key"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The index's ID."
          },
          "entity": {
            "type": "string",
            "title": "entity",
            "description": "The index's entity."
          },
          "status": {
            "type": "string",
            "description": "The index's syncing or ingesting status.",
            "enum": [
              "pending",
              "error",
              "done",
              "processing"
            ]
          },
          "fields": {
            "type": "array",
            "description": "The index's fields.",
            "items": {
              "type": "string",
              "title": "fields",
              "description": "The index's fields."
            }
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the index was last updated."
          },
          "last_synced_key": {
            "type": "string",
            "title": "last_synced_key",
            "description": "The key of the last index sync."
          }
        }
      },
      "InventoryLevel": {
        "type": "object",
        "description": "The inventory level's details",
        "x-schemaName": "InventoryLevel",
        "required": [
          "id",
          "inventory_item_id",
          "location_id",
          "stocked_quantity",
          "reserved_quantity",
          "available_quantity",
          "incoming_quantity"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The inventory level's ID."
          },
          "inventory_item_id": {
            "type": "string",
            "title": "inventory_item_id",
            "description": "The ID of the associated inventory item."
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the associated location."
          },
          "stocked_quantity": {
            "type": "number",
            "title": "stocked_quantity",
            "description": "The inventory level's stocked quantity."
          },
          "reserved_quantity": {
            "type": "number",
            "title": "reserved_quantity",
            "description": "The inventory level's reserved quantity."
          },
          "available_quantity": {
            "type": "number",
            "title": "available_quantity",
            "description": "The inventory level's available quantity."
          },
          "incoming_quantity": {
            "type": "number",
            "title": "incoming_quantity",
            "description": "The inventory level's incoming quantity."
          },
          "metadata": {
            "type": "object",
            "description": "The inventory level's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "Order": {
        "type": "object",
        "description": "The order change's order.",
        "x-schemaName": "Order",
        "required": [
          "id",
          "version",
          "display_id",
          "status",
          "currency_code",
          "created_at",
          "updated_at",
          "original_item_total",
          "original_item_subtotal",
          "original_item_tax_total",
          "item_total",
          "item_subtotal",
          "item_tax_total",
          "item_discount_total",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_subtotal",
          "discount_total",
          "discount_tax_total",
          "credit_line_total",
          "gift_card_total",
          "gift_card_tax_total",
          "shipping_total",
          "shipping_subtotal",
          "shipping_tax_total",
          "shipping_discount_total",
          "original_shipping_total",
          "original_shipping_subtotal",
          "original_shipping_tax_total"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The order's ID."
          },
          "version": {
            "type": "number",
            "title": "version",
            "description": "The order's version."
          },
          "order_change": {
            "type": "object"
          },
          "status": {
            "type": "string",
            "description": "The order's status.",
            "enum": [
              "canceled",
              "requires_action",
              "pending",
              "completed",
              "draft",
              "archived"
            ]
          },
          "region_id": {
            "type": "string",
            "title": "region_id",
            "description": "The ID of the region the order belongs to."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that placed the order."
          },
          "sales_channel_id": {
            "type": "string",
            "title": "sales_channel_id",
            "description": "The ID of the sales channel the order was placed in."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The email of the customer that placed the order.",
            "format": "email"
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The order's currency code.",
            "example": "usd"
          },
          "shipping_address": {
            "$ref": "#/components/schemas/OrderAddress"
          },
          "billing_address": {
            "$ref": "#/components/schemas/OrderAddress"
          },
          "items": {
            "type": "array",
            "description": "The order's items.",
            "items": {
              "$ref": "#/components/schemas/OrderLineItem"
            }
          },
          "shipping_methods": {
            "type": "array",
            "description": "The order's shipping methods.",
            "items": {
              "$ref": "#/components/schemas/OrderShippingMethod"
            }
          },
          "transactions": {
            "type": "array",
            "description": "The order's transactions.",
            "items": {
              "$ref": "#/components/schemas/OrderTransaction"
            }
          },
          "summary": {
            "type": "object",
            "description": "The order's summary.",
            "properties": {
              "pending_difference": {
                "type": "number",
                "title": "pending_difference",
                "description": "The remaining amount to be paid or refunded."
              },
              "current_order_total": {
                "type": "number",
                "title": "current_order_total",
                "description": "The order's current total."
              },
              "original_order_total": {
                "type": "number",
                "title": "original_order_total",
                "description": "The order's total before any changes."
              },
              "transaction_total": {
                "type": "number",
                "title": "transaction_total",
                "description": "The total of the transactions (payments and refunds) made on the order."
              },
              "paid_total": {
                "type": "number",
                "title": "paid_total",
                "description": "The total paid amount."
              },
              "refunded_total": {
                "type": "number",
                "title": "refunded_total",
                "description": "The total refunded amount."
              },
              "credit_line_total": {
                "type": "number",
                "title": "credit_line_total",
                "description": "The total credit line amount."
              },
              "accounting_total": {
                "type": "number",
                "title": "accounting_total",
                "description": "The total amount for accounting purposes."
              },
              "raw_pending_difference": {
                "type": "object",
                "description": "The summary's raw pending difference."
              },
              "raw_current_order_total": {
                "type": "object",
                "description": "The summary's raw current order total."
              },
              "raw_original_order_total": {
                "type": "object",
                "description": "The summary's raw original order total."
              },
              "raw_transaction_total": {
                "type": "object",
                "description": "The summary's raw transaction total."
              },
              "raw_paid_total": {
                "type": "object",
                "description": "The summary's raw paid total."
              },
              "raw_refunded_total": {
                "type": "object",
                "description": "The summary's raw refunded total."
              },
              "raw_credit_line_total": {
                "type": "object",
                "description": "The summary's raw credit line total."
              },
              "raw_accounting_total": {
                "type": "object",
                "description": "The summary's raw accounting total."
              }
            },
            "required": [
              "pending_difference",
              "current_order_total",
              "original_order_total",
              "transaction_total",
              "paid_total",
              "refunded_total",
              "credit_line_total",
              "accounting_total",
              "raw_pending_difference",
              "raw_current_order_total",
              "raw_original_order_total",
              "raw_transaction_total",
              "raw_paid_total",
              "raw_refunded_total",
              "raw_credit_line_total",
              "raw_accounting_total"
            ]
          },
          "metadata": {
            "type": "object",
            "description": "The order's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "canceled_at": {
            "type": "string",
            "format": "date-time",
            "title": "canceled_at",
            "description": "The date the order was canceled."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the order was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the order was updated."
          },
          "original_item_total": {
            "type": "number",
            "title": "original_item_total",
            "description": "The order items' total including taxes, excluding promotions."
          },
          "original_item_subtotal": {
            "type": "number",
            "title": "original_item_subtotal",
            "description": "The order items' total excluding taxes, including promotions."
          },
          "original_item_tax_total": {
            "type": "number",
            "title": "original_item_tax_total",
            "description": "The taxes total for order items, excluding promotions."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The order items' total including taxes and promotions."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The order items' total excluding taxes, including promotions."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The tax total of the order items including promotions."
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The order's total including taxes, excluding promotions."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The order's total excluding taxes, including promotions."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The tax total of the order excluding promotions."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The order's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The order's subtotal excluding taxes, including promotions."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The tax total of the order including promotions."
          },
          "discount_subtotal": {
            "type": "number",
            "title": "discount_subtotal",
            "description": "The total discount excluding taxes."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total discount including taxes."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The tax total applied on the discount."
          },
          "gift_card_total": {
            "type": "number",
            "title": "gift_card_total",
            "description": "The order's gift card total."
          },
          "gift_card_tax_total": {
            "type": "number",
            "title": "gift_card_tax_total",
            "description": "The order's gift card tax total."
          },
          "shipping_total": {
            "type": "number",
            "title": "shipping_total",
            "description": "The order's shipping total including taxes and promotions."
          },
          "shipping_subtotal": {
            "type": "number",
            "title": "shipping_subtotal",
            "description": "The order's shipping total excluding taxes, including promotions."
          },
          "shipping_tax_total": {
            "type": "number",
            "title": "shipping_tax_total",
            "description": "The total taxes of the order's shipping including taxes."
          },
          "original_shipping_total": {
            "type": "number",
            "title": "original_shipping_total",
            "description": "The order's shipping total including taxes, excluding promotions."
          },
          "original_shipping_subtotal": {
            "type": "number",
            "title": "original_shipping_subtotal",
            "description": "The order's shipping total excluding taxes, including promotions."
          },
          "original_shipping_tax_total": {
            "type": "number",
            "title": "original_shipping_tax_total",
            "description": "The total taxes of the order's shipping excluding promotions."
          },
          "display_id": {
            "type": "number",
            "title": "display_id",
            "description": "The order's display ID."
          },
          "credit_lines": {
            "type": "array",
            "description": "The order's credit lines, useful to add additional payment amounts for an order.",
            "items": {
              "$ref": "#/components/schemas/OrderCreditLine"
            }
          },
          "is_draft_order": {
            "type": "boolean",
            "title": "is_draft_order",
            "description": "Whether the order is a draft order."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the order was deleted."
          },
          "credit_line_total": {
            "type": "number",
            "title": "credit_line_total",
            "description": "The order's credit line total."
          },
          "item_discount_total": {
            "type": "number",
            "title": "item_discount_total",
            "description": "The total discount amount applied on the order's items."
          },
          "shipping_discount_total": {
            "type": "number",
            "title": "shipping_discount_total",
            "description": "The total discount amount applied on the order's shipping."
          },
          "custom_display_id": {
            "type": "string",
            "title": "custom_display_id",
            "description": "The custom display ID of the order.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/order/custom-display-id"
            }
          },
          "locale": {
            "type": "string",
            "title": "locale",
            "description": "The order's locale in [BCP 47](https://gist.github.com/typpo/b2b828a35e683b9bf8db91b5404f1bd1) format.",
            "example": "en-US"
          }
        }
      },
      "OrderAddress": {
        "type": "object",
        "description": "The address's details.",
        "x-schemaName": "OrderAddress",
        "required": [
          "id",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The address's ID."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer the address belongs to."
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The address's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The address's last name."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The address's phone."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The address's company."
          },
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The address's second line."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The address's city."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The address's country code.",
            "example": "us"
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The address's lower-case ISO 3166-2 province code.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The address's postal code."
          },
          "metadata": {
            "type": "object",
            "description": "The address's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the address was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the address was updated."
          }
        }
      },
      "OrderChange": {
        "type": "object",
        "description": "The order change's details.",
        "x-schemaName": "OrderChange",
        "required": [
          "id",
          "version",
          "order_id",
          "return_id",
          "exchange_id",
          "claim_id",
          "order",
          "return_order",
          "exchange",
          "claim",
          "actions",
          "status",
          "requested_by",
          "requested_at",
          "confirmed_by",
          "confirmed_at",
          "declined_by",
          "declined_reason",
          "metadata",
          "declined_at",
          "canceled_by",
          "canceled_at",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The order change's ID."
          },
          "version": {
            "type": "number",
            "title": "version",
            "description": "The order change's version. This will be the order's version when the change is applied."
          },
          "change_type": {
            "type": "string",
            "description": "The order change's type.",
            "enum": [
              "return",
              "exchange",
              "claim",
              "edit"
            ]
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order this change applies on."
          },
          "return_id": {
            "type": "string",
            "title": "return_id",
            "description": "The ID of the associated return."
          },
          "exchange_id": {
            "type": "string",
            "title": "exchange_id",
            "description": "The ID of the associated exchange."
          },
          "claim_id": {
            "type": "string",
            "title": "claim_id",
            "description": "The ID of the associated claim."
          },
          "order": {
            "type": "object"
          },
          "return_order": {
            "type": "object"
          },
          "exchange": {
            "$ref": "#/components/schemas/OrderExchange"
          },
          "claim": {
            "$ref": "#/components/schemas/OrderClaim"
          },
          "actions": {
            "type": "array",
            "description": "The order change's actions.",
            "items": {
              "$ref": "#/components/schemas/OrderChangeAction"
            }
          },
          "status": {
            "type": "string",
            "description": "The order change's status.",
            "enum": [
              "canceled",
              "requested",
              "pending",
              "confirmed",
              "declined"
            ]
          },
          "requested_by": {
            "type": "string",
            "title": "requested_by",
            "description": "The ID of the user that requested the change."
          },
          "requested_at": {
            "type": "string",
            "title": "requested_at",
            "description": "The date the order change was requested.",
            "format": "date-time"
          },
          "confirmed_by": {
            "type": "string",
            "title": "confirmed_by",
            "description": "The ID of the user that confirmed the order change."
          },
          "confirmed_at": {
            "type": "string",
            "title": "confirmed_at",
            "description": "The date the order change was confirmed.",
            "format": "date-time"
          },
          "declined_by": {
            "type": "string",
            "title": "declined_by",
            "description": "The ID of the user that declined the order change."
          },
          "declined_reason": {
            "type": "string",
            "title": "declined_reason",
            "description": "The reason the order change was declined."
          },
          "metadata": {
            "type": "object",
            "description": "The order change's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "declined_at": {
            "type": "string",
            "title": "declined_at",
            "description": "The date the order change was declined.",
            "format": "date-time"
          },
          "canceled_by": {
            "type": "string",
            "title": "canceled_by",
            "description": "The ID of the user that canceled the order change."
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date the order change was canceled.",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the order change was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the order change was updated."
          },
          "carry_over_promotions": {
            "type": "boolean",
            "title": "carry_over_promotions",
            "description": "Whether promotions from the original order should be carried over to the order change (specifically, exchanges)."
          }
        }
      },
      "OrderChangeAction": {
        "type": "object",
        "description": "The order change action's details.",
        "x-schemaName": "OrderChangeAction",
        "required": [
          "id",
          "order_change_id",
          "order_change",
          "order_id",
          "return_id",
          "claim_id",
          "exchange_id",
          "order",
          "reference",
          "reference_id",
          "action",
          "details",
          "internal_note",
          "ordering",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The action's ID."
          },
          "order_change_id": {
            "type": "string",
            "title": "order_change_id",
            "description": "The ID of the order change that the action belongs to."
          },
          "order_change": {
            "type": "object"
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order the associated change is for."
          },
          "return_id": {
            "type": "string",
            "title": "return_id",
            "description": "The ID of the associated return."
          },
          "claim_id": {
            "type": "string",
            "title": "claim_id",
            "description": "The ID of the associated claim."
          },
          "exchange_id": {
            "type": "string",
            "title": "exchange_id",
            "description": "The ID of the associated exchange."
          },
          "order": {
            "$ref": "#/components/schemas/Order"
          },
          "reference": {
            "type": "string",
            "title": "reference",
            "description": "The name of the table this action applies on.",
            "enum": [
              "claim",
              "exchange",
              "return",
              "order_shipping_method"
            ]
          },
          "reference_id": {
            "type": "string",
            "title": "reference_id",
            "description": "The ID of the record in the referenced table."
          },
          "action": {
            "type": "string",
            "description": "The applied action.",
            "enum": [
              "CANCEL_RETURN_ITEM",
              "FULFILL_ITEM",
              "DELIVER_ITEM",
              "CANCEL_ITEM_FULFILLMENT",
              "ITEM_ADD",
              "ITEM_REMOVE",
              "ITEM_UPDATE",
              "RECEIVE_DAMAGED_RETURN_ITEM",
              "RECEIVE_RETURN_ITEM",
              "RETURN_ITEM",
              "SHIPPING_ADD",
              "SHIPPING_REMOVE",
              "SHIP_ITEM",
              "WRITE_OFF_ITEM",
              "REINSTATE_ITEM"
            ]
          },
          "details": {
            "type": "object",
            "description": "The action's details.",
            "example": {
              "reference_id": 123,
              "quantity": 1
            }
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note that's viewed only by admin users."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the action was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the action was updated."
          },
          "ordering": {
            "type": "number",
            "title": "ordering",
            "description": "The action's ordering among other actions in the same order change."
          }
        }
      },
      "OrderClaim": {
        "type": "object",
        "description": "The order change's claim.",
        "x-schemaName": "OrderClaim",
        "required": [
          "id",
          "type",
          "order_id",
          "order_version",
          "display_id",
          "claim_items",
          "additional_items",
          "metadata"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The claim's ID."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order associated with the claim."
          },
          "claim_items": {
            "type": "array",
            "description": "The order items targetted by the claim.",
            "items": {
              "$ref": "#/components/schemas/BaseClaimItem"
            }
          },
          "additional_items": {
            "type": "array",
            "description": "The outbound or new items of the claim.",
            "items": {
              "$ref": "#/components/schemas/BaseClaimItem"
            }
          },
          "return": {
            "type": "object"
          },
          "return_id": {
            "type": "string",
            "title": "return_id",
            "description": "The ID of the associated return."
          },
          "no_notification": {
            "type": "boolean",
            "title": "no_notification",
            "description": "Whether the customer should be notified about changes in the claim."
          },
          "refund_amount": {
            "type": "number",
            "title": "refund_amount",
            "description": "The amount to be refunded."
          },
          "display_id": {
            "type": "number",
            "title": "display_id",
            "description": "The claim's display ID."
          },
          "shipping_methods": {
            "type": "array",
            "description": "The claim's shipping methods.",
            "items": {
              "$ref": "#/components/schemas/OrderShippingMethod"
            }
          },
          "transactions": {
            "type": "array",
            "description": "The claim's transactions.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/order/transactions",
              "description": "Learn more about transactions of orders and associated models."
            },
            "items": {
              "$ref": "#/components/schemas/OrderTransaction"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The claim's metadata, used to store custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The claim's creation date."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The claim's update date."
          },
          "type": {
            "type": "string",
            "description": "The claim's type.",
            "enum": [
              "replace",
              "refund"
            ]
          },
          "order": {
            "$ref": "#/components/schemas/Order"
          },
          "order_version": {
            "type": "number",
            "title": "order_version",
            "description": "The claim's order version."
          },
          "raw_refund_amount": {
            "oneOf": [
              {
                "type": "string",
                "title": "raw_refund_amount",
                "description": "The claim's raw refund amount."
              },
              {
                "type": "number",
                "title": "raw_refund_amount",
                "description": "The claim's raw refund amount."
              },
              {
                "type": "string",
                "title": "raw_refund_amount",
                "description": "The claim's raw refund amount."
              },
              {
                "type": "number",
                "title": "raw_refund_amount",
                "description": "The claim's raw refund amount."
              }
            ]
          },
          "created_by": {
            "type": "string",
            "title": "created_by",
            "description": "The ID of the user that created the claim."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the claim was deleted."
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date the claim was canceled.",
            "format": "date-time"
          }
        }
      },
      "OrderCreditLine": {
        "type": "object",
        "description": "The credit line's details.",
        "x-schemaName": "OrderCreditLine",
        "required": [
          "id",
          "order_id",
          "order",
          "amount",
          "reference",
          "reference_id",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The credit line's ID."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the associated order."
          },
          "order": {
            "type": "object"
          },
          "reference": {
            "type": "string",
            "title": "reference",
            "description": "The table that this credit line references. For example, `payment_collection`."
          },
          "reference_id": {
            "type": "string",
            "title": "reference_id",
            "description": "The ID of the record in the referenced table. For example, `paycol_123`."
          },
          "metadata": {
            "type": "object",
            "description": "The credit line's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the credit line was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the credit line was updated."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The credit line's amount."
          }
        }
      },
      "OrderExchange": {
        "type": "object",
        "description": "The order change's exchange.",
        "x-schemaName": "OrderExchange",
        "required": [
          "id",
          "order_id",
          "order_version",
          "display_id",
          "additional_items",
          "metadata"
        ],
        "properties": {
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order the exchange is created for."
          },
          "additional_items": {
            "type": "array",
            "description": "The new items (outbound) sent by the exchange.",
            "items": {
              "$ref": "#/components/schemas/BaseExchangeItem"
            }
          },
          "no_notification": {
            "type": "boolean",
            "title": "no_notification",
            "description": "Whether to send the customer notifications when the exchange is updated."
          },
          "difference_due": {
            "type": "number",
            "title": "difference_due",
            "description": "The amount to be exchanged or refunded. If the amount is negative, it must be refunded. If positive, additional payment is required from the customer."
          },
          "return": {
            "$ref": "#/components/schemas/Return"
          },
          "return_id": {
            "type": "string",
            "title": "return_id",
            "description": "The ID of the associated exchange."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The exchange's ID."
          },
          "display_id": {
            "type": "number",
            "title": "display_id",
            "description": "The exchange's display ID."
          },
          "shipping_methods": {
            "type": "array",
            "description": "The shipping methods used to send the new (outbound) items.",
            "items": {
              "$ref": "#/components/schemas/OrderShippingMethod"
            }
          },
          "transactions": {
            "type": "array",
            "description": "The exchange's transactions.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/order/transactions"
            },
            "items": {
              "$ref": "#/components/schemas/OrderTransaction"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The exchange's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date that the exchange was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date that the exchange was updated."
          },
          "order": {
            "$ref": "#/components/schemas/Order"
          },
          "order_version": {
            "type": "number",
            "title": "order_version",
            "description": "The version of the order when the exchange is applied."
          },
          "raw_difference_due": {
            "oneOf": [
              {
                "type": "string",
                "title": "raw_difference_due",
                "description": "The exchange's raw difference due."
              },
              {
                "type": "number",
                "title": "raw_difference_due",
                "description": "The exchange's raw difference due."
              },
              {
                "type": "string",
                "title": "raw_difference_due",
                "description": "The exchange's raw difference due."
              },
              {
                "type": "number",
                "title": "raw_difference_due",
                "description": "The exchange's raw difference due."
              }
            ]
          },
          "allow_backorder": {
            "type": "boolean",
            "title": "allow_backorder",
            "description": "Whether variants that are out of stock can be added to the exchange as outbound items."
          },
          "created_by": {
            "type": "string",
            "title": "created_by",
            "description": "The ID of the user that created the exchange."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the exchange was deleted."
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date the exchange was canceled.",
            "format": "date-time"
          }
        }
      },
      "OrderItem": {
        "type": "object",
        "description": "The order item's detail.",
        "x-schemaName": "OrderItem",
        "required": [
          "id",
          "item_id",
          "item",
          "quantity",
          "fulfilled_quantity",
          "delivered_quantity",
          "shipped_quantity",
          "return_requested_quantity",
          "return_received_quantity",
          "return_dismissed_quantity",
          "written_off_quantity",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The item's ID."
          },
          "item_id": {
            "type": "string",
            "title": "item_id",
            "description": "The ID of the associated line item."
          },
          "item": {
            "type": "object"
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "fulfilled_quantity": {
            "type": "number",
            "title": "fulfilled_quantity",
            "description": "The item's fulfilled quantity."
          },
          "delivered_quantity": {
            "type": "number",
            "title": "delivered_quantity",
            "description": "The item's delivered quantity."
          },
          "shipped_quantity": {
            "type": "number",
            "title": "shipped_quantity",
            "description": "The item's shipped quantity."
          },
          "return_requested_quantity": {
            "type": "number",
            "title": "return_requested_quantity",
            "description": "The item's quantity that's requested to be returned."
          },
          "return_received_quantity": {
            "type": "number",
            "title": "return_received_quantity",
            "description": "The item's quantity that's received through a return."
          },
          "return_dismissed_quantity": {
            "type": "number",
            "title": "return_dismissed_quantity",
            "description": "The item's quantity that's returned but dismissed because it's damaged."
          },
          "written_off_quantity": {
            "type": "number",
            "title": "written_off_quantity",
            "description": "The item's quantity that's removed due to an order change."
          },
          "metadata": {
            "type": "object",
            "description": "The item's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the item was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the item was updated."
          }
        }
      },
      "OrderLineItem": {
        "type": "object",
        "description": "The order line item's details.",
        "x-schemaName": "OrderLineItem",
        "required": [
          "id",
          "title",
          "requires_shipping",
          "is_discountable",
          "is_giftcard",
          "is_tax_inclusive",
          "unit_price",
          "quantity",
          "detail",
          "created_at",
          "updated_at",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "item_total",
          "item_subtotal",
          "item_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_total",
          "discount_tax_total",
          "refundable_total",
          "refundable_total_per_unit"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The item's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The item's title."
          },
          "subtitle": {
            "type": "string",
            "title": "subtitle",
            "description": "The item's subtitle."
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The item's thumbnail URL."
          },
          "variant_id": {
            "type": "string",
            "title": "variant_id",
            "description": "The ID of the associated variant."
          },
          "product_id": {
            "type": "string",
            "title": "product_id",
            "description": "The ID of the associated product."
          },
          "product_title": {
            "type": "string",
            "title": "product_title",
            "description": "The item's product title."
          },
          "product_description": {
            "type": "string",
            "title": "product_description",
            "description": "The item's product description."
          },
          "product_subtitle": {
            "type": "string",
            "title": "product_subtitle",
            "description": "The item's product subtitle."
          },
          "product_type": {
            "type": "string",
            "title": "product_type",
            "description": "The ID of the associated product's type."
          },
          "product_collection": {
            "type": "string",
            "title": "product_collection",
            "description": "The ID of the associated product's collection."
          },
          "product_handle": {
            "type": "string",
            "title": "product_handle",
            "description": "The item's product handle."
          },
          "variant_sku": {
            "type": "string",
            "title": "variant_sku",
            "description": "The item's variant SKU."
          },
          "variant_barcode": {
            "type": "string",
            "title": "variant_barcode",
            "description": "The item's variant barcode."
          },
          "variant_title": {
            "type": "string",
            "title": "variant_title",
            "description": "The item's variant title."
          },
          "variant_option_values": {
            "type": "object",
            "description": "The associated variant's values for the associated product's options.",
            "example": {
              "Color": "Red"
            }
          },
          "requires_shipping": {
            "type": "boolean",
            "title": "requires_shipping",
            "description": "Whether the item requires shipping."
          },
          "is_discountable": {
            "type": "boolean",
            "title": "is_discountable",
            "description": "Whether the item is discountable."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the item's price includes taxes."
          },
          "compare_at_unit_price": {
            "type": "number",
            "title": "compare_at_unit_price",
            "description": "The original price of the item before a promotion or sale."
          },
          "unit_price": {
            "type": "number",
            "title": "unit_price",
            "description": "The item's price for a single quantity."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "tax_lines": {
            "type": "array",
            "description": "The item's tax lines.",
            "items": {
              "$ref": "#/components/schemas/OrderLineItemTaxLine"
            }
          },
          "adjustments": {
            "type": "array",
            "description": "The item's adjustments.",
            "items": {
              "$ref": "#/components/schemas/OrderLineItemAdjustment"
            }
          },
          "detail": {
            "$ref": "#/components/schemas/OrderItem"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the item was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the item was updated."
          },
          "metadata": {
            "type": "object",
            "description": "The item's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The item's total including taxes and promotions."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The item's total excluding taxes, including promotions."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The total taxes of the item excluding promotions."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The item's total for a single quantity, including taxes and promotions."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The item's total for a single quantity, excluding taxes and including promotions."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The total taxes of a single quantity of the item, including promotions."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The item's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The item's total excluding taxes, including promotions."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The total taxes of the item, including promotions."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The item's discount total."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The total taxes on the discounted amount."
          },
          "refundable_total": {
            "type": "number",
            "title": "refundable_total",
            "description": "The total amount of the item that can be refunded."
          },
          "refundable_total_per_unit": {
            "type": "number",
            "title": "refundable_total_per_unit",
            "description": "The total amount that can be refunded of a single quantity of the item."
          },
          "product_type_id": {
            "type": "string",
            "title": "product_type_id",
            "description": "The ID of the associated product's type."
          },
          "is_giftcard": {
            "type": "boolean",
            "title": "is_giftcard",
            "description": "Whether the item is a gift card."
          }
        }
      },
      "OrderLineItemAdjustment": {
        "type": "object",
        "description": "The line item adjustment's details.",
        "x-schemaName": "OrderLineItemAdjustment",
        "required": [
          "item",
          "item_id",
          "id",
          "amount",
          "order_id",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "item": {
            "type": "object"
          },
          "item_id": {
            "type": "string",
            "title": "item_id",
            "description": "The ID of the item this adjustment is for."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The adjustment's ID."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The adjustment's code."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The adjustment's amount."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the associated order."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The adjustment's description."
          },
          "promotion_id": {
            "type": "string",
            "title": "promotion_id",
            "description": "The ID of the promotion applied by this adjustment."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The adjustment's provider ID."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the adjustment was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the adjustment was updated."
          }
        }
      },
      "OrderLineItemTaxLine": {
        "type": "object",
        "description": "The line item tax line's details.",
        "x-schemaName": "OrderLineItemTaxLine",
        "required": [
          "item",
          "item_id",
          "total",
          "subtotal",
          "id",
          "code",
          "rate",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "item": {
            "type": "object"
          },
          "item_id": {
            "type": "string",
            "title": "item_id",
            "description": "The ID of the line item that the tax line belongs to."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The item's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The item's total excluding taxes, including promotions."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The tax line's ID."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The tax line's description."
          },
          "tax_rate_id": {
            "type": "string",
            "title": "tax_rate_id",
            "description": "The ID of the applied tax rate."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The code that the tax rate is identified by."
          },
          "rate": {
            "type": "number",
            "title": "rate",
            "description": "The rate to charge."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the tax provider used to calculate the tax lines."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the tax line was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the tax line was updated."
          }
        }
      },
      "OrderReturnItem": {
        "type": "object",
        "description": "The item's items.",
        "x-schemaName": "OrderReturnItem",
        "required": [
          "id",
          "return_id",
          "order_id",
          "item_id",
          "quantity"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The return item's ID."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The return item's quantity."
          },
          "received_quantity": {
            "type": "number",
            "title": "received_quantity",
            "description": "The received quantity of the item. This quantity is added to the stocked inventory quantity of the item."
          },
          "reason_id": {
            "type": "string",
            "title": "reason_id",
            "description": "The ID of the return reason associated with the item."
          },
          "item_id": {
            "type": "string",
            "title": "item_id",
            "description": "The ID of the associated order item."
          },
          "return_id": {
            "type": "string",
            "title": "return_id",
            "description": "The ID of the return this return item belongs to."
          },
          "metadata": {
            "type": "object",
            "description": "The return item's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order the return belongs to."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the item was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the item was updated."
          },
          "damaged_quantity": {
            "type": "number",
            "title": "damaged_quantity",
            "description": "The item's damaged quantity."
          }
        }
      },
      "OrderShippingMethod": {
        "type": "object",
        "description": "The shipping method's details.",
        "x-schemaName": "OrderShippingMethod",
        "required": [
          "id",
          "order_id",
          "name",
          "amount",
          "is_tax_inclusive",
          "created_at",
          "updated_at",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_total",
          "discount_tax_total"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping method's ID."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order that the shipping method belongs to."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The shipping method's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The shipping method's description."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The shipping method's amount."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the shipping method's amount includes taxes."
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the shipping option this method was created from."
          },
          "data": {
            "type": "object",
            "description": "The shipping method's data, useful for the fulfillment provider handling the fulfillment.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/order/concepts#data-property"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The shipping method's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "tax_lines": {
            "type": "array",
            "description": "The shipping method's tax lines.",
            "items": {
              "$ref": "#/components/schemas/OrderShippingMethodTaxLine"
            }
          },
          "adjustments": {
            "type": "array",
            "description": "The shipping method's adjustments.",
            "items": {
              "$ref": "#/components/schemas/OrderShippingMethodAdjustment"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the shipping method was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the shipping method was updated."
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The shipping method's total including taxes, excluding promotions."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The shipping method's subtotal excluding taxes, including promotions."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The total taxes of the shipping method excluding promotions."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The shipping method's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The shipping method's total excluding taxes, including promotions."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The total taxes of the shipping method, including promotions."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The shipping method's discount total."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The total taxes of the discount amount."
          }
        }
      },
      "OrderShippingMethodAdjustment": {
        "type": "object",
        "description": "The shipping method adjustment's details.",
        "x-schemaName": "OrderShippingMethodAdjustment",
        "required": [
          "shipping_method",
          "shipping_method_id",
          "id",
          "amount",
          "order_id",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "shipping_method": {
            "type": "object"
          },
          "shipping_method_id": {
            "type": "string",
            "title": "shipping_method_id",
            "description": "The ID of the shipping method this adjustment is for."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The adjustment's ID."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The adjustment's code."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The adjustment's amount."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the associated order."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The adjustment's description."
          },
          "promotion_id": {
            "type": "string",
            "title": "promotion_id",
            "description": "The ID of the promotion this adjustment applies."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The adjustment's provider ID."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the adjustment was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the adjustment was updated."
          }
        }
      },
      "OrderShippingMethodTaxLine": {
        "type": "object",
        "description": "The shipping method tax line's details.",
        "x-schemaName": "OrderShippingMethodTaxLine",
        "required": [
          "shipping_method",
          "shipping_method_id",
          "total",
          "subtotal",
          "id",
          "code",
          "rate",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "shipping_method": {
            "type": "object"
          },
          "shipping_method_id": {
            "type": "string",
            "title": "shipping_method_id",
            "description": "The ID of the shipping method that this tax line is for."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The shipping method's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The shipping method's total excluding taxes, including promotions."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The tax line's ID."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The tax line's description."
          },
          "tax_rate_id": {
            "type": "string",
            "title": "tax_rate_id",
            "description": "The ID of the applied tax rate."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The code that the tax rate is identified by."
          },
          "rate": {
            "type": "number",
            "title": "rate",
            "description": "The rate to charge."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the tax provider used to calculate taxes."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the tax line was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the tax line was updated."
          }
        }
      },
      "OrderTransaction": {
        "type": "object",
        "description": "The transaction's details.",
        "x-schemaName": "OrderTransaction",
        "required": [
          "id",
          "order_id",
          "version",
          "order",
          "amount",
          "currency_code",
          "reference",
          "reference_id",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The transaction's ID."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order this transaction belongs to."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The transaction's amount."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The transaction's currency code.",
            "example": "usd"
          },
          "reference": {
            "type": "string",
            "title": "reference",
            "description": "The name of a table that this transaction references. If this transaction is for captured payment, its value is `capture`. If this transaction is for refunded payment, its value is `refund`.",
            "enum": [
              "capture",
              "refund"
            ]
          },
          "reference_id": {
            "type": "string",
            "title": "reference_id",
            "description": "The ID of the referenced record in the referenced table."
          },
          "metadata": {
            "type": "object",
            "description": "The transaction's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date that the transaction was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date that the transaction was updated."
          },
          "order": {
            "type": "object"
          },
          "version": {
            "type": "number",
            "title": "version",
            "description": "The order version that the transaction belongs to."
          }
        }
      },
      "RefundReasonResponse": {
        "type": "object",
        "description": "The refund reason's details.",
        "x-schemaName": "RefundReasonResponse",
        "required": [
          "refund_reason"
        ],
        "properties": {
          "refund_reason": {
            "$ref": "#/components/schemas/AdminRefundReason"
          }
        }
      },
      "Return": {
        "type": "object",
        "description": "The return's details.",
        "x-schemaName": "Return",
        "required": [
          "id",
          "status",
          "order_id",
          "items",
          "display_id",
          "metadata"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The return's ID."
          },
          "status": {
            "type": "string",
            "description": "The return's status.",
            "enum": [
              "canceled",
              "requested",
              "received",
              "partially_received"
            ]
          },
          "refund_amount": {
            "type": "number",
            "title": "refund_amount",
            "description": "The amount refunded by this return."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the associated order."
          },
          "items": {
            "type": "array",
            "description": "The return's items.",
            "items": {
              "$ref": "#/components/schemas/OrderReturnItem"
            }
          },
          "shipping_methods": {
            "type": "array",
            "description": "The return's shipping methods.",
            "items": {
              "$ref": "#/components/schemas/OrderShippingMethod"
            }
          },
          "transactions": {
            "type": "array",
            "description": "The return's transactions.",
            "items": {
              "$ref": "#/components/schemas/OrderTransaction"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The return's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the return was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the return was updated."
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date the return was canceled.",
            "format": "date-time"
          },
          "raw_refund_amount": {
            "oneOf": [
              {
                "type": "string",
                "title": "raw_refund_amount",
                "description": "The return order's raw refund amount."
              },
              {
                "type": "number",
                "title": "raw_refund_amount",
                "description": "The return order's raw refund amount."
              },
              {
                "type": "string",
                "title": "raw_refund_amount",
                "description": "The return order's raw refund amount."
              },
              {
                "type": "number",
                "title": "raw_refund_amount",
                "description": "The return order's raw refund amount."
              }
            ]
          },
          "order": {
            "$ref": "#/components/schemas/Order"
          },
          "exchange_id": {
            "type": "string",
            "title": "exchange_id",
            "description": "The ID of the exchange this return belongs to, if any."
          },
          "exchange": {
            "type": "object"
          },
          "claim_id": {
            "type": "string",
            "title": "claim_id",
            "description": "The ID of the claim this return belongs to, if any."
          },
          "claim": {
            "$ref": "#/components/schemas/OrderClaim"
          },
          "display_id": {
            "type": "number",
            "title": "display_id",
            "description": "The return order's display ID."
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the stock location the items are returned to."
          },
          "no_notification": {
            "type": "boolean",
            "title": "no_notification",
            "description": "Whether to notify the customer about changes in the return."
          },
          "created_by": {
            "type": "string",
            "title": "created_by",
            "description": "The ID of the user that created the return."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the return was deleted."
          },
          "requested_at": {
            "type": "string",
            "title": "requested_at",
            "description": "The date the return was requested.",
            "format": "date-time"
          },
          "received_at": {
            "type": "string",
            "title": "received_at",
            "description": "The date the return was received.",
            "format": "date-time"
          }
        }
      },
      "StoreAcceptOrderTransfer": {
        "type": "object",
        "description": "The details of accepting the order transfer.",
        "x-schemaName": "StoreAcceptOrderTransfer",
        "required": [
          "token"
        ],
        "properties": {
          "token": {
            "type": "string",
            "title": "token",
            "description": "The order transfer's token issued when the transfer was requested."
          }
        }
      },
      "StoreAddGiftCardToCart": {
        "type": "object",
        "description": "The details to add a gift card to the cart.",
        "x-schemaName": "StoreAddGiftCardToCart",
        "required": [
          "code"
        ],
        "properties": {
          "code": {
            "type": "string",
            "title": "code",
            "description": "The gift card's code."
          }
        }
      },
      "StoreAddStoreCreditsToCart": {
        "type": "object",
        "description": "The details to add store credits to the cart.",
        "x-schemaName": "StoreAddStoreCreditsToCart",
        "required": [
          "amount"
        ],
        "properties": {
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The amount of store credits to add to the cart."
          }
        }
      },
      "StoreCalculatedPrice": {
        "type": "object",
        "description": "The shipping option's calculated price.",
        "x-schemaName": "StoreCalculatedPrice",
        "required": [
          "id",
          "calculated_amount",
          "original_amount",
          "original_amount_with_tax",
          "original_amount_without_tax",
          "currency_code"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The ID of the price set from which the price was selected."
          },
          "is_calculated_price_price_list": {
            "type": "boolean",
            "title": "is_calculated_price_price_list",
            "description": "Whether the calculated price belongs to a price list."
          },
          "is_calculated_price_tax_inclusive": {
            "type": "boolean",
            "title": "is_calculated_price_tax_inclusive",
            "description": "Whether the calculated price is tax inclusive.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/pricing/tax-inclusive-pricing"
            }
          },
          "calculated_amount": {
            "type": "number",
            "title": "calculated_amount",
            "description": "The amount of the calculated price, or `null` if there isn't a calculated price. This is the amount shown to the customer."
          },
          "calculated_amount_with_tax": {
            "type": "number",
            "title": "calculated_amount_with_tax",
            "description": "The `calculated_amount` with taxes applied."
          },
          "calculated_amount_without_tax": {
            "type": "number",
            "title": "calculated_amount_without_tax",
            "description": "The `calculated_amount` without taxes applied."
          },
          "is_original_price_price_list": {
            "type": "boolean",
            "title": "is_original_price_price_list",
            "description": "Whether the original price belongs to a price list."
          },
          "is_original_price_tax_inclusive": {
            "type": "boolean",
            "title": "is_original_price_tax_inclusive",
            "description": "Whether the original price is tax inclusive.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/pricing/tax-inclusive-pricing"
            }
          },
          "original_amount": {
            "type": "number",
            "title": "original_amount",
            "description": "The amount of the original price, or `null` if there isn't an original price. This amount is useful to compare with the `calculated_amount`, such as to check for discounted value."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The currency code of the calculated price, or `null` if there isn't a calculated price."
          },
          "calculated_price": {
            "type": "object",
            "description": "The calculated price's details.",
            "required": [
              "id",
              "price_list_id",
              "price_list_type",
              "min_quantity",
              "max_quantity"
            ],
            "properties": {
              "id": {
                "type": "string",
                "title": "id",
                "description": "The ID of the price."
              },
              "price_list_id": {
                "type": "string",
                "title": "price_list_id",
                "description": "The ID of the associated price list."
              },
              "price_list_type": {
                "type": "string",
                "title": "price_list_type",
                "description": "The price list's type. For example, `sale` or `override`."
              },
              "min_quantity": {
                "type": "number",
                "title": "min_quantity",
                "description": "The minimum quantity required in the cart for the price to apply."
              },
              "max_quantity": {
                "type": "number",
                "title": "max_quantity",
                "description": "The maximum quantity required in the cart for the price to apply."
              }
            }
          },
          "original_price": {
            "type": "object",
            "description": "The origin price's details.",
            "required": [
              "id",
              "price_list_id",
              "price_list_type",
              "min_quantity",
              "max_quantity"
            ],
            "properties": {
              "id": {
                "type": "string",
                "title": "id",
                "description": "The ID of the price."
              },
              "price_list_id": {
                "type": "string",
                "title": "price_list_id",
                "description": "The ID of the associated price list."
              },
              "price_list_type": {
                "type": "string",
                "title": "price_list_type",
                "description": "The price list's type. For example, `sale` or `override`."
              },
              "min_quantity": {
                "type": "number",
                "title": "min_quantity",
                "description": "The minimum quantity required in the cart for the price to apply."
              },
              "max_quantity": {
                "type": "number",
                "title": "max_quantity",
                "description": "The maximum quantity required in the cart for the price to apply."
              }
            }
          },
          "original_amount_with_tax": {
            "type": "number",
            "title": "original_amount_with_tax",
            "description": "The original amount with taxes applied."
          },
          "original_amount_without_tax": {
            "type": "number",
            "title": "original_amount_without_tax",
            "description": "The original amount without taxes."
          }
        }
      },
      "StoreCart": {
        "type": "object",
        "description": "The cart's details.",
        "x-schemaName": "StoreCart",
        "required": [
          "promotions",
          "id",
          "currency_code",
          "original_item_total",
          "original_item_subtotal",
          "original_item_tax_total",
          "item_total",
          "item_subtotal",
          "item_tax_total",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_total",
          "discount_tax_total",
          "gift_card_total",
          "gift_card_tax_total",
          "shipping_total",
          "shipping_subtotal",
          "shipping_tax_total",
          "original_shipping_total",
          "original_shipping_subtotal",
          "original_shipping_tax_total"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The cart's ID."
          },
          "region": {
            "$ref": "#/components/schemas/StoreRegion"
          },
          "region_id": {
            "type": "string",
            "title": "region_id",
            "description": "The ID of the region the cart belongs to."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer the cart belongs to."
          },
          "sales_channel_id": {
            "type": "string",
            "title": "sales_channel_id",
            "description": "The ID of the cart's sales channel. Only products that belong to the same sales channel can be added to the cart. The created order will be associated with the same sales channel."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The email of the customer the cart belongs to.",
            "format": "email"
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The cart's currency code.",
            "example": "usd"
          },
          "shipping_address": {
            "$ref": "#/components/schemas/StoreCartAddress"
          },
          "billing_address": {
            "$ref": "#/components/schemas/StoreCartAddress"
          },
          "items": {
            "type": "array",
            "description": "The cart's items.",
            "items": {
              "$ref": "#/components/schemas/StoreCartLineItem"
            }
          },
          "shipping_methods": {
            "type": "array",
            "description": "The cart's shipping methods.",
            "items": {
              "$ref": "#/components/schemas/StoreCartShippingMethod"
            }
          },
          "payment_collection": {
            "$ref": "#/components/schemas/StorePaymentCollection"
          },
          "metadata": {
            "type": "object",
            "description": "The cart's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the cart was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the cart was updated."
          },
          "original_item_total": {
            "type": "number",
            "title": "original_item_total",
            "description": "The sum of all line items' original totals before discounts, including taxes."
          },
          "original_item_subtotal": {
            "type": "number",
            "title": "original_item_subtotal",
            "description": "The sum of all line items' original subtotals before discounts, excluding taxes."
          },
          "original_item_tax_total": {
            "type": "number",
            "title": "original_item_tax_total",
            "description": "The sum of all line items' original tax totals before discounts."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The sum of all line items' totals after discounts, including taxes."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The sum of all line items' subtotals before discounts, excluding taxes."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The sum of all line items' tax totals after discounts."
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The cart's total before discounts, including taxes. Calculated as the sum of `original_item_total` and `original_shipping_total`."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The cart's subtotal before discounts, excluding taxes. Calculated as the sum of `original_item_subtotal` and `original_shipping_subtotal`."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The cart's tax total before discounts. Calculated as the sum of `original_item_tax_total` and `original_shipping_tax_total`."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The cart's final total after discounts and credit lines, including taxes."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The cart's subtotal before discounts, excluding taxes. Calculated as the sum of `item_subtotal` and `shipping_subtotal`."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The cart's tax total after discounts. Calculated as the sum of `item_tax_total` and `shipping_tax_total`."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total amount of discounts applied to the cart, including the tax portion of discounts."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The total amount of discounts applied to the cart's tax. Represents the tax portion of discounts."
          },
          "gift_card_total": {
            "type": "number",
            "title": "gift_card_total",
            "description": "The total gift card amount applied on the cart."
          },
          "gift_card_tax_total": {
            "type": "number",
            "title": "gift_card_tax_total",
            "description": "The total taxes applied on the gift card amount."
          },
          "shipping_total": {
            "type": "number",
            "title": "shipping_total",
            "description": "The sum of all shipping methods' totals after discounts, including taxes."
          },
          "shipping_subtotal": {
            "type": "number",
            "title": "shipping_subtotal",
            "description": "The sum of all shipping methods' subtotals before discounts, excluding taxes."
          },
          "shipping_tax_total": {
            "type": "number",
            "title": "shipping_tax_total",
            "description": "The sum of all shipping methods' tax totals after discounts."
          },
          "original_shipping_total": {
            "type": "number",
            "title": "original_shipping_total",
            "description": "The sum of all shipping methods' original totals before discounts, including taxes."
          },
          "original_shipping_subtotal": {
            "type": "number",
            "title": "original_shipping_subtotal",
            "description": "The sum of all shipping methods' original subtotals before discounts, excluding taxes."
          },
          "original_shipping_tax_total": {
            "type": "number",
            "title": "original_shipping_tax_total",
            "description": "The sum of all shipping methods' original tax totals before discounts."
          },
          "promotions": {
            "type": "array",
            "description": "The cart's promotions.",
            "items": {
              "$ref": "#/components/schemas/StoreCartPromotion"
            }
          },
          "completed_at": {
            "type": "string",
            "title": "completed_at",
            "description": "The date the cart was completed.",
            "format": "date-time"
          }
        }
      },
      "StoreCartAddPromotion": {
        "type": "object",
        "description": "The promotion's details.",
        "required": [
          "promo_codes"
        ],
        "properties": {
          "promo_codes": {
            "type": "array",
            "description": "Promotion codes to add to the cart.",
            "items": {
              "type": "string",
              "title": "promo_codes",
              "description": "A promotion code."
            }
          }
        },
        "x-schemaName": "StoreCartAddPromotion"
      },
      "StoreCartAddress": {
        "type": "object",
        "description": "The address's details.",
        "x-schemaName": "StoreCartAddress",
        "required": [
          "id",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The address's ID."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer the address belongs to."
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The address's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The address's last name."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The address's phone."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The address's company."
          },
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The address's second line."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The address's city."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The address's country code.",
            "example": "us"
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The address's lower-case ISO 3166-2 province code.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The address's postal code."
          },
          "metadata": {
            "type": "object",
            "description": "The address's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "title": "created_at",
            "description": "The date the address was created.",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "title": "updated_at",
            "description": "The date the address was updated.",
            "format": "date-time"
          }
        }
      },
      "StoreCartLineItem": {
        "type": "object",
        "description": "The item's details.",
        "x-schemaName": "StoreCartLineItem",
        "required": [
          "cart",
          "title",
          "id",
          "requires_shipping",
          "is_discountable",
          "is_tax_inclusive",
          "unit_price",
          "quantity",
          "cart_id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The item's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The item's title."
          },
          "subtitle": {
            "type": "string",
            "title": "subtitle",
            "description": "The item's subtitle."
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The item's thumbnail URL."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "product": {
            "$ref": "#/components/schemas/StoreProduct"
          },
          "product_id": {
            "type": "string",
            "title": "product_id",
            "description": "The ID of the associated product."
          },
          "product_title": {
            "type": "string",
            "title": "product_title",
            "description": "The item's product title."
          },
          "product_description": {
            "type": "string",
            "title": "product_description",
            "description": "The item's product description."
          },
          "product_subtitle": {
            "type": "string",
            "title": "product_subtitle",
            "description": "The item's product subtitle."
          },
          "product_type": {
            "type": "string",
            "title": "product_type",
            "description": "The ID of the associated product's type."
          },
          "product_collection": {
            "type": "string",
            "title": "product_collection",
            "description": "The ID of the associated product's collection."
          },
          "product_handle": {
            "type": "string",
            "title": "product_handle",
            "description": "The item's product handle."
          },
          "variant": {
            "$ref": "#/components/schemas/StoreProductVariant"
          },
          "variant_id": {
            "type": "string",
            "title": "variant_id",
            "description": "The ID of the associated product variant."
          },
          "variant_sku": {
            "type": "string",
            "title": "variant_sku",
            "description": "The item's variant SKU."
          },
          "variant_barcode": {
            "type": "string",
            "title": "variant_barcode",
            "description": "The item's variant barcode."
          },
          "variant_title": {
            "type": "string",
            "title": "variant_title",
            "description": "The item's variant title."
          },
          "variant_option_values": {
            "type": "object",
            "description": "The associated variant's value for the product's options.",
            "example": {
              "Color": "Red"
            }
          },
          "requires_shipping": {
            "type": "boolean",
            "title": "requires_shipping",
            "description": "Whether the item requires shipping."
          },
          "is_discountable": {
            "type": "boolean",
            "title": "is_discountable",
            "description": "Whether the item is discountable."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the item's price includes taxes."
          },
          "compare_at_unit_price": {
            "type": "number",
            "title": "compare_at_unit_price",
            "description": "The original price of the item before a promotion or sale."
          },
          "unit_price": {
            "type": "number",
            "title": "unit_price",
            "description": "The price of a single quantity of the item."
          },
          "tax_lines": {
            "type": "array",
            "description": "The item's tax lines.",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "description": "The tax line's details.",
                  "x-schemaName": "BaseLineItemTaxLine",
                  "required": [
                    "item",
                    "item_id",
                    "total",
                    "subtotal",
                    "id",
                    "code",
                    "rate",
                    "created_at",
                    "updated_at"
                  ],
                  "properties": {
                    "item": {
                      "type": "object",
                      "title": "item",
                      "description": "The details of the item that the tax line belongs to."
                    },
                    "item_id": {
                      "type": "string",
                      "title": "item_id",
                      "description": "The ID of the line item this tax line belongs to."
                    },
                    "total": {
                      "type": "number",
                      "title": "total",
                      "description": "The item's total including taxes and promotions."
                    },
                    "subtotal": {
                      "type": "number",
                      "title": "subtotal",
                      "description": "The item's total excluding taxes, including promotions."
                    },
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The tax line's ID."
                    },
                    "description": {
                      "type": "string",
                      "title": "description",
                      "description": "The tax line's description."
                    },
                    "tax_rate_id": {
                      "type": "string",
                      "title": "tax_rate_id",
                      "description": "The ID of the applied tax rate."
                    },
                    "code": {
                      "type": "string",
                      "title": "code",
                      "description": "The code that the tax rate is identified by."
                    },
                    "rate": {
                      "type": "number",
                      "title": "rate",
                      "description": "The charged rate."
                    },
                    "provider_id": {
                      "type": "string",
                      "title": "provider_id",
                      "description": "The ID of the tax provider used to calculate the tax line."
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "created_at",
                      "description": "The date the tax line was created."
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "updated_at",
                      "description": "The date the tax line was updated."
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "The tax line's details.",
                  "required": [
                    "item"
                  ],
                  "properties": {
                    "item": {
                      "type": "object",
                      "title": "item",
                      "description": "The details of the item that the tax line belongs to."
                    }
                  }
                }
              ],
              "description": "The tax line's details"
            }
          },
          "adjustments": {
            "type": "array",
            "description": "The item's adjustments.",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "description": "The adjustment's details.",
                  "x-schemaName": "BaseLineItemAdjustment",
                  "required": [
                    "item",
                    "item_id",
                    "id",
                    "amount",
                    "cart_id",
                    "created_at",
                    "updated_at"
                  ],
                  "properties": {
                    "item": {
                      "type": "object",
                      "title": "item",
                      "description": "The details of the item that the adjustment belongs to."
                    },
                    "item_id": {
                      "type": "string",
                      "title": "item_id",
                      "description": "The ID of the item that the adjustment belongs to."
                    },
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The adjustment's ID."
                    },
                    "code": {
                      "type": "string",
                      "title": "code",
                      "description": "The adjustment's code."
                    },
                    "amount": {
                      "type": "number",
                      "title": "amount",
                      "description": "The adjustment's amount."
                    },
                    "cart_id": {
                      "type": "string",
                      "title": "cart_id",
                      "description": "The ID of the associated cart."
                    },
                    "description": {
                      "type": "string",
                      "title": "description",
                      "description": "The adjustment's description."
                    },
                    "promotion_id": {
                      "type": "string",
                      "title": "promotion_id",
                      "description": "The ID of the applied promotion."
                    },
                    "provider_id": {
                      "type": "string",
                      "title": "provider_id",
                      "description": "The adjustment's provider ID."
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "created_at",
                      "description": "The date the adjustment was created."
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "updated_at",
                      "description": "The date the adjustment was updated."
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "The adjustment's details.",
                  "required": [
                    "item"
                  ],
                  "properties": {
                    "item": {
                      "type": "object",
                      "title": "item",
                      "description": "The details of the item that the adjustment belongs to."
                    }
                  }
                }
              ],
              "description": "The adjustment's details."
            }
          },
          "cart": {
            "type": "object"
          },
          "cart_id": {
            "type": "string",
            "title": "cart_id",
            "description": "The ID of the cart that the line item belongs to."
          },
          "metadata": {
            "type": "object",
            "description": "The item's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "title": "created_at",
            "description": "The date the item was created.",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "title": "updated_at",
            "description": "The date the item was updated.",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "title": "deleted_at",
            "description": "The date the item was deleted.",
            "format": "date-time"
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The line item's original total before discounts, including taxes. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The line item's original subtotal before discounts, excluding taxes. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The line item's original tax total before discounts. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The line item's total after discounts, including taxes. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The line item's subtotal before discounts, excluding taxes. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The line item's tax total after discounts. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The line item's total after discounts, including taxes. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The line item's subtotal before discounts, excluding taxes. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The line item's tax total after discounts. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total amount of discounts applied to the line item, including the tax portion of discounts. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The total amount of discounts applied to the line item's tax. Represents the tax portion of discounts. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide."
          }
        }
      },
      "StoreCartPromotion": {
        "type": "object",
        "description": "The promotion's promotions.",
        "x-schemaName": "StoreCartPromotion",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The promotion's ID."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The promotion's code."
          },
          "is_automatic": {
            "type": "boolean",
            "title": "is_automatic",
            "description": "The promotion's is automatic."
          },
          "application_method": {
            "type": "object",
            "description": "The promotion's application method.",
            "required": [
              "value",
              "type",
              "currency_code"
            ],
            "properties": {
              "value": {
                "type": "string",
                "title": "value",
                "description": "The application method's value."
              },
              "type": {
                "type": "string",
                "description": "The application method's type.",
                "enum": [
                  "fixed",
                  "percentage"
                ]
              },
              "currency_code": {
                "type": "string",
                "title": "currency_code",
                "description": "The application method's currency code."
              }
            }
          }
        }
      },
      "StoreCartRemovePromotion": {
        "type": "object",
        "description": "The promotion code to remove from the cart.",
        "x-schemaName": "StoreCartRemovePromotion",
        "required": [
          "promo_codes"
        ],
        "properties": {
          "promo_codes": {
            "type": "array",
            "description": "The promotion code to remove from the cart.",
            "items": {
              "type": "string",
              "title": "promo_codes",
              "description": "A promotion code to remove from the cart."
            }
          }
        }
      },
      "StoreCartResponse": {
        "type": "object",
        "description": "The cart's details.",
        "x-schemaName": "StoreCartResponse",
        "required": [
          "cart"
        ],
        "properties": {
          "cart": {
            "$ref": "#/components/schemas/StoreCart"
          }
        }
      },
      "StoreCartShippingMethod": {
        "type": "object",
        "description": "A cart's shipping method.",
        "x-schemaName": "StoreCartShippingMethod",
        "required": [
          "id",
          "cart_id",
          "name",
          "amount",
          "is_tax_inclusive",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping method's ID."
          },
          "cart_id": {
            "type": "string",
            "title": "cart_id",
            "description": "The ID of the cart this shipping method belongs to."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The shipping method's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The shipping method's description."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The shipping method's amount."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the shipping method's amount is tax inclusive."
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the shipping option this method was created from."
          },
          "data": {
            "type": "object",
            "description": "The shipping method's data, useful for fulfillment handling by third-party services.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/cart/concepts#data-property"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The shipping method's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "tax_lines": {
            "type": "array",
            "description": "The shipping method's tax lines.",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "description": "The tax line's details",
                  "x-schemaName": "BaseShippingMethodTaxLine",
                  "required": [
                    "shipping_method",
                    "shipping_method_id",
                    "total",
                    "subtotal",
                    "id",
                    "code",
                    "rate",
                    "created_at",
                    "updated_at"
                  ],
                  "properties": {
                    "shipping_method": {
                      "type": "object",
                      "title": "shipping_method",
                      "description": "The details of the method that the tax line belongs to."
                    },
                    "shipping_method_id": {
                      "type": "string",
                      "title": "shipping_method_id",
                      "description": "The ID of the shipping method this tax line belongs to."
                    },
                    "total": {
                      "type": "number",
                      "title": "total",
                      "description": "The method's total including taxes and promotions."
                    },
                    "subtotal": {
                      "type": "number",
                      "title": "subtotal",
                      "description": "The method's total excluding taxes, including promotions."
                    },
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The tax line's ID."
                    },
                    "description": {
                      "type": "string",
                      "title": "description",
                      "description": "The tax line's description."
                    },
                    "tax_rate_id": {
                      "type": "string",
                      "title": "tax_rate_id",
                      "description": "The ID of the applied tax rate."
                    },
                    "code": {
                      "type": "string",
                      "title": "code",
                      "description": "The code that the tax rate is identified by."
                    },
                    "rate": {
                      "type": "number",
                      "title": "rate",
                      "description": "The charged rate."
                    },
                    "provider_id": {
                      "type": "string",
                      "title": "provider_id",
                      "description": "The ID of the tax provider used to calculate the tax line."
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "created_at",
                      "description": "The date the tax line was created."
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "updated_at",
                      "description": "The date the tax line was updated."
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "The tax line's details.",
                  "required": [
                    "shipping_method"
                  ],
                  "properties": {
                    "shipping_method": {
                      "type": "object",
                      "title": "shipping_method",
                      "description": "The details of the method that the tax line belongs to."
                    }
                  }
                }
              ],
              "description": "The tax line's details."
            }
          },
          "adjustments": {
            "type": "array",
            "description": "The shipping method's adjustments, such as applied promotions.",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "description": "The adjustment's details.",
                  "x-schemaName": "BaseShippingMethodAdjustment",
                  "required": [
                    "shipping_method",
                    "shipping_method_id",
                    "id",
                    "amount",
                    "cart_id",
                    "created_at",
                    "updated_at"
                  ],
                  "properties": {
                    "shipping_method": {
                      "type": "object",
                      "title": "shipping_method",
                      "description": "The details of the method that the adjustment belongs to."
                    },
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The adjustment's ID."
                    },
                    "code": {
                      "type": "string",
                      "title": "code",
                      "description": "The adjustment's code."
                    },
                    "amount": {
                      "type": "number",
                      "title": "amount",
                      "description": "The adjustment's amount."
                    },
                    "cart_id": {
                      "type": "string",
                      "title": "cart_id",
                      "description": "The ID of the associated cart."
                    },
                    "description": {
                      "type": "string",
                      "title": "description",
                      "description": "The adjustment's description."
                    },
                    "promotion_id": {
                      "type": "string",
                      "title": "promotion_id",
                      "description": "The ID of the applied promotion."
                    },
                    "provider_id": {
                      "type": "string",
                      "title": "provider_id",
                      "description": "The adjustment's provider ID."
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "created_at",
                      "description": "The date the adjustment was created."
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "updated_at",
                      "description": "The date the adjustment was updated."
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "The adjustment's details.",
                  "required": [
                    "shipping_method"
                  ],
                  "properties": {
                    "shipping_method": {
                      "type": "object",
                      "title": "shipping_method",
                      "description": "The details of the method that the adjustment belongs to."
                    }
                  }
                }
              ],
              "description": "The adjustment's details."
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the shipping method was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the shipping method was updated."
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The shipping method's original total before discounts, including taxes. This field is only available if you expand the `shipping_methods.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-shipping-method-totals) guide."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The shipping method's original subtotal before discounts, excluding taxes. This field is only available if you expand the `shipping_methods.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-shipping-method-totals) guide."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The shipping method's original tax total before discounts. This field is only available if you expand the `shipping_methods.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-shipping-method-totals) guide."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The shipping method's total after discounts, including taxes. This field is only available if you expand the `shipping_methods.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-shipping-method-totals) guide."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The shipping method's subtotal before discounts, excluding taxes. This field is only available if you expand the `shipping_methods.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-shipping-method-totals) guide."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The shipping method's tax total after discounts. This field is only available if you expand the `shipping_methods.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-shipping-method-totals) guide."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total amount of discounts applied to the shipping method, including the tax portion of discounts. This field is only available if you expand the `shipping_methods.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-shipping-method-totals) guide."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The total amount of discounts applied to the shipping method's tax. Represents the tax portion of discounts. This field is only available if you expand the `shipping_methods.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-shipping-method-totals) guide."
          }
        }
      },
      "StoreCartShippingOption": {
        "type": "object",
        "description": "The shipping option's details.",
        "x-schemaName": "StoreCartShippingOption",
        "required": [
          "id",
          "name",
          "price_type",
          "service_zone_id",
          "shipping_profile_id",
          "provider_id",
          "data",
          "type",
          "provider",
          "amount",
          "prices",
          "calculated_price",
          "insufficient_inventory"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping option's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The shipping option's name."
          },
          "price_type": {
            "type": "string",
            "description": "The shipping option's price type. If it's `flat`, the price is fixed and is set in the `prices` property. If it's `calculated`, the price is calculated on checkout by the associated fulfillment provider.",
            "enum": [
              "flat",
              "calculated"
            ]
          },
          "service_zone_id": {
            "type": "string",
            "title": "service_zone_id",
            "description": "The ID of the service zone the shipping option belongs to."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the fulfillment provider handling this option."
          },
          "provider": {
            "type": "object",
            "description": "The fulfillment provider's details.",
            "required": [
              "id",
              "is_enabled"
            ],
            "properties": {
              "id": {
                "type": "string",
                "title": "id",
                "description": "The provider's ID."
              },
              "is_enabled": {
                "type": "boolean",
                "title": "is_enabled",
                "description": "Whether the provider is enabled."
              }
            }
          },
          "type": {
            "type": "object",
            "description": "The shipping option type's details.",
            "required": [
              "id",
              "label",
              "description",
              "code"
            ],
            "properties": {
              "id": {
                "type": "string",
                "title": "id",
                "description": "The type's ID."
              },
              "label": {
                "type": "string",
                "title": "label",
                "description": "The type's label."
              },
              "description": {
                "type": "string",
                "title": "description",
                "description": "The type's description."
              },
              "code": {
                "type": "string",
                "title": "code",
                "description": "The type's code."
              }
            }
          },
          "shipping_profile_id": {
            "type": "string",
            "title": "shipping_profile_id",
            "description": "The ID of the associated shipping profile."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The shipping option's amount."
          },
          "data": {
            "type": "object",
            "description": "The shipping option's data, useful for the provider handling fulfillment.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property"
            }
          },
          "prices": {
            "type": "array",
            "description": "The shipping option's prices.",
            "items": {
              "$ref": "#/components/schemas/StorePrice"
            }
          },
          "calculated_price": {
            "$ref": "#/components/schemas/StoreCalculatedPrice"
          },
          "insufficient_inventory": {
            "type": "boolean",
            "title": "insufficient_inventory",
            "description": "Whether the shipping option's location doesn't have sufficient quantity for any of the cart's items."
          }
        }
      },
      "StoreCollection": {
        "type": "object",
        "description": "The collection's details.",
        "x-schemaName": "StoreCollection",
        "required": [
          "title",
          "id",
          "metadata",
          "created_at",
          "updated_at",
          "handle",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The collection's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The collection's title."
          },
          "handle": {
            "type": "string",
            "title": "handle",
            "description": "The collection's handle."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the collection was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the collection was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the collection was deleted."
          },
          "products": {
            "type": "array",
            "description": "The collection's products.",
            "items": {
              "type": "object"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The collection's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "StoreCollectionResponse": {
        "type": "object",
        "description": "The collection's details.",
        "x-schemaName": "StoreCollectionResponse",
        "required": [
          "collection"
        ],
        "properties": {
          "collection": {
            "$ref": "#/components/schemas/StoreCollection"
          }
        }
      },
      "StoreCreateCart": {
        "type": "object",
        "description": "The details of the cart to be created.",
        "x-schemaName": "StoreCreateCart",
        "properties": {
          "region_id": {
            "type": "string",
            "title": "region_id",
            "description": "The ID of the cart's region. This affects the prices and currency of the cart."
          },
          "shipping_address": {
            "$ref": "#/components/schemas/StoreCartAddress"
          },
          "billing_address": {
            "$ref": "#/components/schemas/StoreCartAddress"
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The email of the cart's customer.",
            "format": "email"
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The cart's currency code. If not provided, the region's currency is used. This affects prices in the cart, as well.",
            "example": "usd"
          },
          "items": {
            "type": "array",
            "description": "The cart's items.",
            "items": {
              "$ref": "#/components/schemas/StoreCartLineItem"
            }
          },
          "sales_channel_id": {
            "type": "string",
            "title": "sales_channel_id",
            "description": "The ID of the sales channel that cart is created in. Only products available in that sales channel can be added to the cart. If not provided, the store's default sales channel is associated with the cart instead."
          },
          "metadata": {
            "type": "object",
            "description": "The cart's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "StoreCreateCustomer": {
        "type": "object",
        "description": "The details of the customer to create.",
        "x-schemaName": "StoreCreateCustomer",
        "required": [
          "email"
        ],
        "properties": {
          "email": {
            "type": "string",
            "title": "email",
            "description": "The customer's email.",
            "format": "email"
          },
          "company_name": {
            "type": "string",
            "title": "company_name",
            "description": "The customer's company name."
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The customer's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The customer's last name."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The customer's phone."
          },
          "metadata": {
            "type": "object",
            "description": "The customer's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "StoreCreateCustomerAddress": {
        "type": "object",
        "description": "The address's details.",
        "properties": {
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The customer's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The customer's last name."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The customer's phone."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The address's company."
          },
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The address's second line."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The address's city."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The address's country code."
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The address's ISO 3166-2 province code. Must be lower-case.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The address's postal code."
          },
          "address_name": {
            "type": "string",
            "title": "address_name",
            "description": "The address's name."
          },
          "is_default_shipping": {
            "type": "boolean",
            "title": "is_default_shipping",
            "description": "Whether the address is used by default for shipping during checkout."
          },
          "is_default_billing": {
            "type": "boolean",
            "title": "is_default_billing",
            "description": "Whether the address is used by default for billing during checkout."
          },
          "metadata": {
            "type": "object",
            "description": "Holds custom key-value pairs."
          }
        },
        "x-schemaName": "StoreCreateCustomerAddress"
      },
      "StoreCreatePaymentCollection": {
        "type": "object",
        "description": "The details of the payment collection to create.",
        "x-schemaName": "StoreCreatePaymentCollection",
        "required": [
          "cart_id"
        ],
        "properties": {
          "cart_id": {
            "type": "string",
            "title": "cart_id",
            "description": "The ID of the cart this payment collection is for."
          }
        }
      },
      "StoreCreateReturn": {
        "type": "object",
        "description": "The details of the return to create.",
        "x-schemaName": "StoreCreateReturn",
        "required": [
          "order_id",
          "items",
          "return_shipping"
        ],
        "properties": {
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order this return is created for."
          },
          "items": {
            "type": "array",
            "description": "The return's items.",
            "items": {
              "$ref": "#/components/schemas/StoreCreateReturnItem"
            }
          },
          "return_shipping": {
            "$ref": "#/components/schemas/StoreCreateReturnShipping"
          },
          "note": {
            "type": "string",
            "title": "note",
            "description": "A note with more details about the return."
          },
          "receive_now": {
            "type": "boolean",
            "title": "receive_now",
            "description": "Whether to mark the return as received."
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the location that items are returned to."
          }
        }
      },
      "StoreCreateReturnItem": {
        "type": "object",
        "description": "The details of the line item to create.",
        "x-schemaName": "StoreCreateReturnItem",
        "required": [
          "id",
          "quantity"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The item's ID."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "reason_id": {
            "type": "string",
            "title": "reason_id",
            "description": "The ID of the associated return reason."
          },
          "note": {
            "type": "string",
            "title": "note",
            "description": "A note with more details about the returned item."
          }
        }
      },
      "StoreCreateReturnShipping": {
        "type": "object",
        "description": "The return's shipping details.",
        "x-schemaName": "StoreCreateReturnShipping",
        "required": [
          "option_id"
        ],
        "properties": {
          "option_id": {
            "type": "string",
            "title": "option_id",
            "description": "The ID of the shipping option to use."
          },
          "price": {
            "type": "number",
            "title": "price",
            "description": "The shipping's price."
          }
        }
      },
      "StoreCurrency": {
        "type": "object",
        "description": "The currency's details.",
        "x-schemaName": "StoreCurrency",
        "required": [
          "code",
          "symbol",
          "symbol_native",
          "name",
          "decimal_digits",
          "rounding",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "code": {
            "type": "string",
            "title": "code",
            "description": "The currency's code.",
            "example": "usd"
          },
          "symbol": {
            "type": "string",
            "title": "symbol",
            "description": "The currency's symbol."
          },
          "symbol_native": {
            "type": "string",
            "title": "symbol_native",
            "description": "The currency's symbol native."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The currency's name."
          },
          "decimal_digits": {
            "type": "number",
            "title": "decimal_digits",
            "description": "The currency's decimal digits."
          },
          "rounding": {
            "type": "number",
            "title": "rounding",
            "description": "The currency's rounding."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the currency was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the currency was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the currency was deleted."
          }
        }
      },
      "StoreCurrencyListResponse": {
        "type": "object",
        "description": "The paginated list of currencies.",
        "x-schemaName": "StoreCurrencyListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "currencies"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total count of items."
          },
          "currencies": {
            "type": "array",
            "description": "The list of currencies.",
            "items": {
              "$ref": "#/components/schemas/StoreCurrency"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "StoreCurrencyResponse": {
        "type": "object",
        "description": "The currency's details.",
        "x-schemaName": "StoreCurrencyResponse",
        "required": [
          "currency"
        ],
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/StoreCurrency"
          }
        }
      },
      "StoreCustomer": {
        "type": "object",
        "description": "The customer's details.",
        "x-schemaName": "StoreCustomer",
        "required": [
          "addresses",
          "id",
          "email",
          "company_name",
          "first_name",
          "last_name",
          "default_billing_address_id",
          "default_shipping_address_id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The customer's ID."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The customer's email.",
            "format": "email"
          },
          "default_billing_address_id": {
            "type": "string",
            "title": "default_billing_address_id",
            "description": "The ID of the address used for billing by default."
          },
          "default_shipping_address_id": {
            "type": "string",
            "title": "default_shipping_address_id",
            "description": "The ID of the address used for shipping by default."
          },
          "company_name": {
            "type": "string",
            "title": "company_name",
            "description": "The customer's company name."
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The customer's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The customer's last name."
          },
          "addresses": {
            "type": "array",
            "description": "The customer's addresses.",
            "items": {
              "$ref": "#/components/schemas/StoreCustomerAddress"
            }
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The customer's phone."
          },
          "metadata": {
            "type": "object",
            "description": "The customer's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the customer was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the customer was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the customer was deleted."
          }
        }
      },
      "StoreCustomerAddress": {
        "type": "object",
        "description": "The customer address's details",
        "x-schemaName": "StoreCustomerAddress",
        "required": [
          "id",
          "address_name",
          "is_default_shipping",
          "is_default_billing",
          "customer_id",
          "company",
          "first_name",
          "last_name",
          "address_1",
          "address_2",
          "city",
          "country_code",
          "province",
          "postal_code",
          "phone",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The address's ID."
          },
          "address_name": {
            "type": "string",
            "title": "address_name",
            "description": "The address's name."
          },
          "is_default_shipping": {
            "type": "boolean",
            "title": "is_default_shipping",
            "description": "Whether the address is used for shipping by default."
          },
          "is_default_billing": {
            "type": "boolean",
            "title": "is_default_billing",
            "description": "Whether the address is used for billing by default."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer the address belongs to."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The address's company."
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The address's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The address's last name."
          },
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The address's second line."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The address's city."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The address's country code.",
            "example": "usd"
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The address's lower-case ISO 3166-2 province code.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The address's postal code."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The address's phone."
          },
          "metadata": {
            "type": "object",
            "description": "The address's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the address was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the address was updated."
          }
        }
      },
      "StoreCustomerAddressListResponse": {
        "type": "object",
        "description": "The paginated list of customer addresses.",
        "x-schemaName": "StoreCustomerAddressListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "addresses"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items."
          },
          "addresses": {
            "type": "array",
            "description": "The list of addresses.",
            "items": {
              "$ref": "#/components/schemas/StoreCustomerAddress"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "StoreCustomerAddressResponse": {
        "type": "object",
        "description": "The address's details.",
        "x-schemaName": "StoreCustomerAddressResponse",
        "required": [
          "address"
        ],
        "properties": {
          "address": {
            "$ref": "#/components/schemas/StoreCustomerAddress"
          }
        }
      },
      "StoreCustomerResponse": {
        "type": "object",
        "description": "The customer's details.",
        "x-schemaName": "StoreCustomerResponse",
        "required": [
          "customer"
        ],
        "properties": {
          "customer": {
            "$ref": "#/components/schemas/StoreCustomer"
          }
        }
      },
      "StoreDeclineOrderTransfer": {
        "type": "object",
        "description": "The details of declining the order transfer request.",
        "x-schemaName": "StoreDeclineOrderTransfer",
        "required": [
          "token"
        ],
        "properties": {
          "token": {
            "type": "string",
            "title": "token",
            "description": "The order transfer's token issued when the transfer was requested."
          }
        }
      },
      "StoreGiftCard": {
        "type": "object",
        "description": "The gift card's details.",
        "x-schemaName": "StoreGiftCard",
        "required": [
          "customer",
          "line_item",
          "id",
          "code",
          "status",
          "value",
          "currency_code",
          "customer_id",
          "reference_id",
          "note",
          "reference",
          "expires_at",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "customer": {
            "$ref": "#/components/schemas/StoreCustomer"
          },
          "line_item": {
            "$ref": "#/components/schemas/StoreOrderLineItem"
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The gift card's ID."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The gift card's code."
          },
          "status": {
            "type": "string",
            "description": "The gift card's status.",
            "enum": [
              "pending",
              "redeemed"
            ]
          },
          "value": {
            "type": "number",
            "title": "value",
            "description": "The gift card's amount."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The gift card's currency code.",
            "example": "usd"
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that the gift card belongs to."
          },
          "reference_id": {
            "type": "string",
            "title": "reference_id",
            "description": "The gift card's reference ID."
          },
          "note": {
            "type": "string",
            "title": "note",
            "description": "A note with more information about the gift card."
          },
          "reference": {
            "type": "string",
            "title": "reference",
            "description": "The gift card's reference."
          },
          "expires_at": {
            "type": "string",
            "title": "expires_at",
            "description": "The date the gift card expires.",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the gift card was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the gift card was updated."
          }
        }
      },
      "StoreGiftCardResponse": {
        "type": "object",
        "description": "The gift card's details.",
        "x-schemaName": "StoreGiftCardResponse",
        "required": [
          "gift_card"
        ],
        "properties": {
          "gift_card": {
            "$ref": "#/components/schemas/StoreGiftCard"
          }
        }
      },
      "StoreInitializePaymentSession": {
        "type": "object",
        "description": "The payment session's details.",
        "required": [
          "provider_id"
        ],
        "properties": {
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the payment provider the customer chose.",
            "example": "pp_stripe_stripe"
          },
          "data": {
            "type": "object",
            "description": "Any data necessary for the payment provider to process the payment.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/payment/payment-session#data-property",
              "description": "Learn more about the payment session's data property"
            }
          }
        },
        "x-schemaName": "StoreInitializePaymentSession"
      },
      "StoreLocale": {
        "type": "object",
        "description": "The store locale's details.",
        "x-schemaName": "StoreLocale",
        "required": [
          "code",
          "name"
        ],
        "properties": {
          "code": {
            "type": "string",
            "title": "code",
            "description": "The locale's code in [BCP 47 format](https://gist.github.com/typpo/b2b828a35e683b9bf8db91b5404f1bd1).",
            "example": "en-US"
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The locale's display name.",
            "example": "English (United States)"
          }
        }
      },
      "StoreLocaleListResponse": {
        "type": "object",
        "description": "The list of supported locales in the store.",
        "x-schemaName": "StoreLocaleListResponse",
        "required": [
          "locales"
        ],
        "properties": {
          "locales": {
            "type": "array",
            "description": "The list of supported locales in the store.",
            "items": {
              "$ref": "#/components/schemas/StoreLocale"
            }
          }
        }
      },
      "StoreOrder": {
        "type": "object",
        "description": "The order's details.",
        "x-schemaName": "StoreOrder",
        "required": [
          "items",
          "shipping_methods",
          "status",
          "id",
          "region_id",
          "customer_id",
          "sales_channel_id",
          "email",
          "currency_code",
          "payment_status",
          "fulfillment_status",
          "summary",
          "created_at",
          "updated_at",
          "original_item_total",
          "original_item_subtotal",
          "original_item_tax_total",
          "item_total",
          "item_subtotal",
          "item_tax_total",
          "item_discount_total",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_total",
          "discount_tax_total",
          "gift_card_total",
          "gift_card_tax_total",
          "shipping_total",
          "shipping_subtotal",
          "shipping_tax_total",
          "shipping_discount_total",
          "original_shipping_total",
          "original_shipping_subtotal",
          "original_shipping_tax_total",
          "credit_line_total"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The order's ID."
          },
          "region_id": {
            "type": "string",
            "title": "region_id",
            "description": "The ID of the associated region."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that placed the order."
          },
          "sales_channel_id": {
            "type": "string",
            "title": "sales_channel_id",
            "description": "The ID of the sales channel the order was placed in."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The email of the customer that placed the order.",
            "format": "email"
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The order's currency code.",
            "example": "usd"
          },
          "display_id": {
            "type": "number",
            "title": "display_id",
            "description": "The order's display ID."
          },
          "shipping_address": {
            "$ref": "#/components/schemas/StoreOrderAddress"
          },
          "billing_address": {
            "$ref": "#/components/schemas/StoreOrderAddress"
          },
          "items": {
            "type": "array",
            "description": "The order's items.",
            "items": {
              "$ref": "#/components/schemas/StoreOrderLineItem"
            }
          },
          "shipping_methods": {
            "type": "array",
            "description": "The order's shipping methods.",
            "items": {
              "$ref": "#/components/schemas/StoreOrderShippingMethod"
            }
          },
          "payment_collections": {
            "type": "array",
            "description": "The order's payment collections.",
            "items": {
              "$ref": "#/components/schemas/StorePaymentCollection"
            }
          },
          "payment_status": {
            "type": "string",
            "description": "The order's payment status.",
            "enum": [
              "canceled",
              "not_paid",
              "awaiting",
              "authorized",
              "partially_authorized",
              "captured",
              "partially_captured",
              "partially_refunded",
              "refunded",
              "requires_action"
            ]
          },
          "fulfillments": {
            "type": "array",
            "description": "The order's fulfillments.",
            "items": {
              "$ref": "#/components/schemas/StoreOrderFulfillment"
            }
          },
          "fulfillment_status": {
            "type": "string",
            "description": "The order's fulfillment status.",
            "enum": [
              "canceled",
              "not_fulfilled",
              "partially_fulfilled",
              "fulfilled",
              "partially_shipped",
              "shipped",
              "partially_delivered",
              "delivered"
            ]
          },
          "summary": {
            "$ref": "#/components/schemas/BaseOrderSummary"
          },
          "metadata": {
            "type": "object",
            "description": "The order's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the order was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the order was updated."
          },
          "original_item_total": {
            "type": "number",
            "title": "original_item_total",
            "description": "The sum of all line items' original totals before discounts, including taxes."
          },
          "original_item_subtotal": {
            "type": "number",
            "title": "original_item_subtotal",
            "description": "The sum of all line items' original subtotals before discounts, excluding taxes."
          },
          "original_item_tax_total": {
            "type": "number",
            "title": "original_item_tax_total",
            "description": "The sum of all line items' original tax totals before discounts."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The sum of all line items' totals after discounts, including taxes."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The sum of all line items' subtotals before discounts, excluding taxes."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The sum of all line items' tax totals after discounts."
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The order's total before discounts, including taxes. Calculated as the sum of `original_item_total` and `original_shipping_total`."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The order's subtotal before discounts, excluding taxes. Calculated as the sum of `original_item_subtotal` and `original_shipping_subtotal`."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The order's tax total before discounts. Calculated as the sum of `original_item_tax_total` and `original_shipping_tax_total`."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The order's final total after discounts and credit lines, including taxes."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The order's subtotal before discounts, excluding taxes. Calculated as the sum of `item_subtotal` and `shipping_subtotal`."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The order's tax total after discounts. Calculated as the sum of `item_tax_total` and `shipping_tax_total`."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total amount of discounts applied to the order, including the tax portion of discounts."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The total amount of discounts applied to the order's tax. Represents the tax portion of discounts."
          },
          "gift_card_total": {
            "type": "number",
            "title": "gift_card_total",
            "description": "The order's gift card total."
          },
          "gift_card_tax_total": {
            "type": "number",
            "title": "gift_card_tax_total",
            "description": "The total taxes applied on the gift card's amount."
          },
          "shipping_total": {
            "type": "number",
            "title": "shipping_total",
            "description": "The sum of all shipping methods' totals after discounts, including taxes."
          },
          "shipping_subtotal": {
            "type": "number",
            "title": "shipping_subtotal",
            "description": "The sum of all shipping methods' subtotals before discounts, excluding taxes."
          },
          "shipping_tax_total": {
            "type": "number",
            "title": "shipping_tax_total",
            "description": "The sum of all shipping methods' tax totals after discounts."
          },
          "original_shipping_total": {
            "type": "number",
            "title": "original_shipping_total",
            "description": "The sum of all shipping methods' original totals before discounts, including taxes."
          },
          "original_shipping_subtotal": {
            "type": "number",
            "title": "original_shipping_subtotal",
            "description": "The sum of all shipping methods' original subtotals before discounts, excluding taxes."
          },
          "original_shipping_tax_total": {
            "type": "number",
            "title": "original_shipping_tax_total",
            "description": "The sum of all shipping methods' original tax totals before discounts."
          },
          "customer": {
            "$ref": "#/components/schemas/StoreCustomer"
          },
          "transactions": {
            "type": "array",
            "description": "The order's transactions.",
            "items": {
              "$ref": "#/components/schemas/BaseOrderTransaction"
            }
          },
          "status": {
            "type": "string",
            "title": "status",
            "description": "The order's status."
          },
          "credit_line_total": {
            "type": "number",
            "title": "credit_line_total",
            "description": "The total amount of credit lines applied to the order, including taxes. Subtracted from the final total."
          },
          "item_discount_total": {
            "type": "number",
            "title": "item_discount_total",
            "description": "The sum of all discounts applied to line items, including the tax portion of discounts."
          },
          "shipping_discount_total": {
            "type": "number",
            "title": "shipping_discount_total",
            "description": "The sum of all discounts applied to shipping methods, including the tax portion of discounts."
          },
          "custom_display_id": {
            "type": "string",
            "title": "custom_display_id",
            "description": "The custom display ID of the order.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/order/custom-display-id"
            }
          }
        }
      },
      "StoreOrderAddress": {
        "type": "object",
        "description": "An order address",
        "x-schemaName": "StoreOrderAddress",
        "required": [
          "id",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The address's ID."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer this address belongs to."
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The address's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The address's last name."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The address's phone."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The address's company."
          },
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The address's second line."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The address's city."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The address's country code.",
            "example": "us"
          },
          "country": {
            "$ref": "#/components/schemas/StoreRegionCountry"
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The address's lower-case ISO 3166-2 province code.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The address's postal code."
          },
          "metadata": {
            "type": "object",
            "description": "The address's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the address was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the address was updated."
          }
        }
      },
      "StoreOrderFulfillment": {
        "type": "object",
        "description": "The fulfillment's details.",
        "x-schemaName": "StoreOrderFulfillment",
        "required": [
          "id",
          "location_id",
          "packed_at",
          "shipped_at",
          "delivered_at",
          "canceled_at",
          "requires_shipping",
          "data",
          "provider_id",
          "shipping_option_id",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The fulfillment's ID."
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the location the items are fulfilled from."
          },
          "packed_at": {
            "type": "string",
            "title": "packed_at",
            "description": "The date the items were packed.",
            "format": "date-time"
          },
          "shipped_at": {
            "type": "string",
            "title": "shipped_at",
            "description": "The date the items were shipped.",
            "format": "date-time"
          },
          "delivered_at": {
            "type": "string",
            "title": "delivered_at",
            "description": "The date the items were delivered.",
            "format": "date-time"
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date the items were canceled.",
            "format": "date-time"
          },
          "data": {
            "type": "object",
            "description": "Data useful for the fulfillment provider handling it. This is taken from the associated shipping option.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property"
            }
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the fulfillment provider used to handle the fulfillment."
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the associated shipping option."
          },
          "metadata": {
            "type": "object",
            "description": "The fulfillment's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the fulfillment was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the fulfillment was updated."
          },
          "requires_shipping": {
            "type": "boolean",
            "title": "requires_shipping",
            "description": "The fulfillment's requires shipping."
          }
        }
      },
      "StoreOrderLineItem": {
        "type": "object",
        "description": "The item's details.",
        "x-schemaName": "StoreOrderLineItem",
        "required": [
          "detail",
          "title",
          "id",
          "metadata",
          "created_at",
          "updated_at",
          "item_total",
          "item_subtotal",
          "item_tax_total",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_total",
          "discount_tax_total",
          "subtitle",
          "thumbnail",
          "variant_id",
          "product_id",
          "product_title",
          "product_description",
          "product_subtitle",
          "product_type_id",
          "product_type",
          "product_collection",
          "product_handle",
          "variant_sku",
          "variant_barcode",
          "variant_title",
          "variant_option_values",
          "requires_shipping",
          "is_discountable",
          "is_tax_inclusive",
          "unit_price",
          "quantity",
          "refundable_total",
          "refundable_total_per_unit"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The item's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The item's title."
          },
          "subtitle": {
            "type": "string",
            "title": "subtitle",
            "description": "The item's subtitle."
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The URL of the item's thumbnail."
          },
          "variant": {
            "$ref": "#/components/schemas/StoreProductVariant"
          },
          "variant_id": {
            "type": "string",
            "title": "variant_id",
            "description": "The ID of the associated variant."
          },
          "product": {
            "$ref": "#/components/schemas/StoreProduct"
          },
          "product_id": {
            "type": "string",
            "title": "product_id",
            "description": "The ID of the associated product."
          },
          "product_title": {
            "type": "string",
            "title": "product_title",
            "description": "The item's product title."
          },
          "product_description": {
            "type": "string",
            "title": "product_description",
            "description": "The item's product description."
          },
          "product_subtitle": {
            "type": "string",
            "title": "product_subtitle",
            "description": "The item's product subtitle."
          },
          "product_type": {
            "type": "string",
            "title": "product_type",
            "description": "The item's product type."
          },
          "product_collection": {
            "type": "string",
            "title": "product_collection",
            "description": "The ID of the collection the item's product belongs to."
          },
          "product_handle": {
            "type": "string",
            "title": "product_handle",
            "description": "The item's product handle."
          },
          "variant_sku": {
            "type": "string",
            "title": "variant_sku",
            "description": "The item's variant SKU."
          },
          "variant_barcode": {
            "type": "string",
            "title": "variant_barcode",
            "description": "The item's variant barcode."
          },
          "variant_title": {
            "type": "string",
            "title": "variant_title",
            "description": "The item's variant title."
          },
          "variant_option_values": {
            "type": "object",
            "description": "The values of the item variant's options.",
            "example": {
              "Color": "Blue"
            }
          },
          "requires_shipping": {
            "type": "boolean",
            "title": "requires_shipping",
            "description": "Whether the item requires shipping."
          },
          "is_discountable": {
            "type": "boolean",
            "title": "is_discountable",
            "description": "Whether the item is discountable."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the item is tax inclusive."
          },
          "compare_at_unit_price": {
            "type": "number",
            "title": "compare_at_unit_price",
            "description": "The original price of the item before a promotion or sale."
          },
          "unit_price": {
            "type": "number",
            "title": "unit_price",
            "description": "The item's unit price."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "tax_lines": {
            "type": "array",
            "description": "The item's tax lines.",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "description": "The tax line's tax lines.",
                  "x-schemaName": "BaseOrderLineItemTaxLine",
                  "required": [
                    "item",
                    "item_id",
                    "total",
                    "subtotal",
                    "id",
                    "code",
                    "rate",
                    "created_at",
                    "updated_at"
                  ],
                  "properties": {
                    "item": {
                      "type": "object",
                      "description": "The tax line's item.",
                      "x-schemaName": "BaseOrderLineItem",
                      "required": [
                        "id",
                        "title",
                        "subtitle",
                        "thumbnail",
                        "variant_id",
                        "product_id",
                        "product_title",
                        "product_description",
                        "product_subtitle",
                        "product_type",
                        "product_collection",
                        "product_handle",
                        "variant_sku",
                        "variant_barcode",
                        "variant_title",
                        "variant_option_values",
                        "requires_shipping",
                        "is_discountable",
                        "is_tax_inclusive",
                        "unit_price",
                        "quantity",
                        "detail",
                        "created_at",
                        "updated_at",
                        "metadata",
                        "original_total",
                        "original_subtotal",
                        "original_tax_total",
                        "item_total",
                        "item_subtotal",
                        "item_tax_total",
                        "total",
                        "subtotal",
                        "tax_total",
                        "discount_total",
                        "discount_tax_total",
                        "refundable_total",
                        "refundable_total_per_unit"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "title": "id",
                          "description": "The item's ID."
                        },
                        "title": {
                          "type": "string",
                          "title": "title",
                          "description": "The item's title."
                        },
                        "subtitle": {
                          "type": "string",
                          "title": "subtitle",
                          "description": "The item's subtitle."
                        },
                        "thumbnail": {
                          "type": "string",
                          "title": "thumbnail",
                          "description": "The item's thumbnail."
                        },
                        "variant": {
                          "type": "object",
                          "description": "The item's variant.",
                          "x-schemaName": "BaseProductVariant",
                          "required": [
                            "id",
                            "title",
                            "sku",
                            "barcode",
                            "ean",
                            "upc",
                            "allow_backorder",
                            "manage_inventory",
                            "hs_code",
                            "origin_country",
                            "mid_code",
                            "material",
                            "weight",
                            "length",
                            "height",
                            "width",
                            "options",
                            "created_at",
                            "updated_at",
                            "deleted_at"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "The variant's ID."
                            },
                            "title": {
                              "type": "string",
                              "title": "title",
                              "description": "The variant's title."
                            },
                            "sku": {
                              "type": "string",
                              "title": "sku",
                              "description": "The variant's sku."
                            },
                            "barcode": {
                              "type": "string",
                              "title": "barcode",
                              "description": "The variant's barcode."
                            },
                            "ean": {
                              "type": "string",
                              "title": "ean",
                              "description": "The variant's ean."
                            },
                            "upc": {
                              "type": "string",
                              "title": "upc",
                              "description": "The variant's upc."
                            },
                            "allow_backorder": {
                              "type": "boolean",
                              "title": "allow_backorder",
                              "description": "The variant's allow backorder."
                            },
                            "manage_inventory": {
                              "type": "boolean",
                              "title": "manage_inventory",
                              "description": "The variant's manage inventory."
                            },
                            "inventory_quantity": {
                              "type": "number",
                              "title": "inventory_quantity",
                              "description": "The variant's inventory quantity."
                            },
                            "hs_code": {
                              "type": "string",
                              "title": "hs_code",
                              "description": "The variant's hs code."
                            },
                            "origin_country": {
                              "type": "string",
                              "title": "origin_country",
                              "description": "The variant's origin country."
                            },
                            "mid_code": {
                              "type": "string",
                              "title": "mid_code",
                              "description": "The variant's mid code."
                            },
                            "material": {
                              "type": "string",
                              "title": "material",
                              "description": "The variant's material."
                            },
                            "weight": {
                              "type": "number",
                              "title": "weight",
                              "description": "The variant's weight."
                            },
                            "length": {
                              "type": "number",
                              "title": "length",
                              "description": "The variant's length."
                            },
                            "height": {
                              "type": "number",
                              "title": "height",
                              "description": "The variant's height."
                            },
                            "width": {
                              "type": "number",
                              "title": "width",
                              "description": "The variant's width."
                            },
                            "variant_rank": {
                              "type": "number",
                              "title": "variant_rank",
                              "description": "The variant's variant rank."
                            },
                            "options": {
                              "type": "array",
                              "description": "The variant's options.",
                              "items": {
                                "type": "object",
                                "description": "The option's options.",
                                "x-schemaName": "BaseProductOptionValue"
                              }
                            },
                            "product": {
                              "type": "object",
                              "description": "The variant's product.",
                              "x-schemaName": "BaseProduct"
                            },
                            "product_id": {
                              "type": "string",
                              "title": "product_id",
                              "description": "The variant's product id."
                            },
                            "calculated_price": {
                              "type": "object",
                              "description": "The variant's calculated price.",
                              "x-schemaName": "BaseCalculatedPriceSet"
                            },
                            "created_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "created_at",
                              "description": "The variant's created at."
                            },
                            "updated_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "updated_at",
                              "description": "The variant's updated at."
                            },
                            "deleted_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "deleted_at",
                              "description": "The variant's deleted at."
                            },
                            "metadata": {
                              "type": "object",
                              "description": "The variant's metadata.",
                              "externalDocs": {
                                "url": "https://docs.medusajs.com/api/store#manage-metadata",
                                "description": "Learn how to manage metadata"
                              }
                            }
                          }
                        },
                        "variant_id": {
                          "type": "string",
                          "title": "variant_id",
                          "description": "The item's variant id."
                        },
                        "product": {
                          "type": "object",
                          "description": "The item's product.",
                          "x-schemaName": "BaseProduct",
                          "required": [
                            "id",
                            "title",
                            "handle",
                            "subtitle",
                            "description",
                            "is_giftcard",
                            "status",
                            "thumbnail",
                            "width",
                            "weight",
                            "length",
                            "height",
                            "origin_country",
                            "hs_code",
                            "mid_code",
                            "material",
                            "collection_id",
                            "type_id",
                            "variants",
                            "options",
                            "images",
                            "discountable",
                            "external_id",
                            "created_at",
                            "updated_at",
                            "deleted_at"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "The product's ID."
                            },
                            "title": {
                              "type": "string",
                              "title": "title",
                              "description": "The product's title."
                            },
                            "handle": {
                              "type": "string",
                              "title": "handle",
                              "description": "The product's handle."
                            },
                            "subtitle": {
                              "type": "string",
                              "title": "subtitle",
                              "description": "The product's subtitle."
                            },
                            "description": {
                              "type": "string",
                              "title": "description",
                              "description": "The product's description."
                            },
                            "is_giftcard": {
                              "type": "boolean",
                              "title": "is_giftcard",
                              "description": "The product's is giftcard."
                            },
                            "status": {
                              "type": "string",
                              "description": "The product's status.",
                              "enum": [
                                "draft",
                                "proposed",
                                "published",
                                "rejected"
                              ]
                            },
                            "thumbnail": {
                              "type": "string",
                              "title": "thumbnail",
                              "description": "The product's thumbnail."
                            },
                            "width": {
                              "type": "number",
                              "title": "width",
                              "description": "The product's width."
                            },
                            "weight": {
                              "type": "number",
                              "title": "weight",
                              "description": "The product's weight."
                            },
                            "length": {
                              "type": "number",
                              "title": "length",
                              "description": "The product's length."
                            },
                            "height": {
                              "type": "number",
                              "title": "height",
                              "description": "The product's height."
                            },
                            "origin_country": {
                              "type": "string",
                              "title": "origin_country",
                              "description": "The product's origin country."
                            },
                            "hs_code": {
                              "type": "string",
                              "title": "hs_code",
                              "description": "The product's hs code."
                            },
                            "mid_code": {
                              "type": "string",
                              "title": "mid_code",
                              "description": "The product's mid code."
                            },
                            "material": {
                              "type": "string",
                              "title": "material",
                              "description": "The product's material."
                            },
                            "collection": {
                              "type": "object",
                              "description": "The product's collection.",
                              "x-schemaName": "BaseCollection"
                            },
                            "collection_id": {
                              "type": "string",
                              "title": "collection_id",
                              "description": "The product's collection id."
                            },
                            "categories": {
                              "type": "array",
                              "description": "The product's categories.",
                              "items": {
                                "type": "object",
                                "description": "The category's categories.",
                                "x-schemaName": "BaseProductCategory"
                              }
                            },
                            "type": {
                              "type": "object",
                              "description": "The product's type.",
                              "x-schemaName": "BaseProduct"
                            },
                            "type_id": {
                              "type": "string",
                              "title": "type_id",
                              "description": "The product's type id."
                            },
                            "tags": {
                              "type": "array",
                              "description": "The product's tags.",
                              "items": {
                                "type": "object",
                                "description": "The tag's tags.",
                                "x-schemaName": "BaseProductTag"
                              }
                            },
                            "variants": {
                              "type": "array",
                              "description": "The product's variants.",
                              "items": {
                                "type": "object",
                                "description": "The variant's variants.",
                                "x-schemaName": "BaseProductVariant"
                              }
                            },
                            "options": {
                              "type": "array",
                              "description": "The product's options.",
                              "items": {
                                "type": "object",
                                "description": "The option's options.",
                                "x-schemaName": "BaseProductOption"
                              }
                            },
                            "images": {
                              "type": "array",
                              "description": "The product's images.",
                              "items": {
                                "type": "object",
                                "description": "The image's images.",
                                "x-schemaName": "BaseProductImage"
                              }
                            },
                            "discountable": {
                              "type": "boolean",
                              "title": "discountable",
                              "description": "The product's discountable."
                            },
                            "external_id": {
                              "type": "string",
                              "title": "external_id",
                              "description": "The product's external id."
                            },
                            "created_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "created_at",
                              "description": "The product's created at."
                            },
                            "updated_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "updated_at",
                              "description": "The product's updated at."
                            },
                            "deleted_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "deleted_at",
                              "description": "The product's deleted at."
                            },
                            "metadata": {
                              "type": "object",
                              "description": "The product's metadata.",
                              "externalDocs": {
                                "url": "https://docs.medusajs.com/api/store#manage-metadata",
                                "description": "Learn how to manage metadata"
                              }
                            }
                          }
                        },
                        "product_id": {
                          "type": "string",
                          "title": "product_id",
                          "description": "The item's product id."
                        },
                        "product_title": {
                          "type": "string",
                          "title": "product_title",
                          "description": "The item's product title."
                        },
                        "product_description": {
                          "type": "string",
                          "title": "product_description",
                          "description": "The item's product description."
                        },
                        "product_subtitle": {
                          "type": "string",
                          "title": "product_subtitle",
                          "description": "The item's product subtitle."
                        },
                        "product_type": {
                          "type": "string",
                          "title": "product_type",
                          "description": "The item's product type."
                        },
                        "product_collection": {
                          "type": "string",
                          "title": "product_collection",
                          "description": "The item's product collection."
                        },
                        "product_handle": {
                          "type": "string",
                          "title": "product_handle",
                          "description": "The item's product handle."
                        },
                        "variant_sku": {
                          "type": "string",
                          "title": "variant_sku",
                          "description": "The item's variant sku."
                        },
                        "variant_barcode": {
                          "type": "string",
                          "title": "variant_barcode",
                          "description": "The item's variant barcode."
                        },
                        "variant_title": {
                          "type": "string",
                          "title": "variant_title",
                          "description": "The item's variant title."
                        },
                        "variant_option_values": {
                          "type": "object",
                          "description": "The item's variant option values."
                        },
                        "requires_shipping": {
                          "type": "boolean",
                          "title": "requires_shipping",
                          "description": "The item's requires shipping."
                        },
                        "is_discountable": {
                          "type": "boolean",
                          "title": "is_discountable",
                          "description": "The item's is discountable."
                        },
                        "is_tax_inclusive": {
                          "type": "boolean",
                          "title": "is_tax_inclusive",
                          "description": "The item's is tax inclusive."
                        },
                        "compare_at_unit_price": {
                          "type": "number",
                          "title": "compare_at_unit_price",
                          "description": "The item's compare at unit price."
                        },
                        "unit_price": {
                          "type": "number",
                          "title": "unit_price",
                          "description": "The item's unit price."
                        },
                        "quantity": {
                          "type": "number",
                          "title": "quantity",
                          "description": "The item's quantity."
                        },
                        "tax_lines": {
                          "type": "array",
                          "description": "The item's tax lines.",
                          "items": {
                            "type": "object",
                            "description": "The tax line's tax lines.",
                            "x-schemaName": "BaseOrderLineItemTaxLine",
                            "required": [
                              "item",
                              "item_id",
                              "total",
                              "subtotal",
                              "id",
                              "code",
                              "rate",
                              "created_at",
                              "updated_at"
                            ],
                            "properties": {
                              "item": {
                                "type": "object",
                                "description": "The tax line's item.",
                                "x-schemaName": "BaseOrderLineItem"
                              },
                              "item_id": {
                                "type": "string",
                                "title": "item_id",
                                "description": "The tax line's item id."
                              },
                              "total": {
                                "type": "number",
                                "title": "total",
                                "description": "The tax line's total."
                              },
                              "subtotal": {
                                "type": "number",
                                "title": "subtotal",
                                "description": "The tax line's subtotal."
                              },
                              "id": {
                                "type": "string",
                                "title": "id",
                                "description": "The tax line's ID."
                              },
                              "description": {
                                "type": "string",
                                "title": "description",
                                "description": "The tax line's description."
                              },
                              "tax_rate_id": {
                                "type": "string",
                                "title": "tax_rate_id",
                                "description": "The tax line's tax rate id."
                              },
                              "code": {
                                "type": "string",
                                "title": "code",
                                "description": "The tax line's code."
                              },
                              "rate": {
                                "type": "number",
                                "title": "rate",
                                "description": "The tax line's rate."
                              },
                              "provider_id": {
                                "type": "string",
                                "title": "provider_id",
                                "description": "The tax line's provider id."
                              },
                              "created_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "created_at",
                                "description": "The tax line's created at."
                              },
                              "updated_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "updated_at",
                                "description": "The tax line's updated at."
                              }
                            }
                          }
                        },
                        "adjustments": {
                          "type": "array",
                          "description": "The item's adjustments.",
                          "items": {
                            "type": "object",
                            "description": "The adjustment's adjustments.",
                            "x-schemaName": "BaseOrderLineItemAdjustment",
                            "required": [
                              "item",
                              "item_id",
                              "id",
                              "amount",
                              "order_id",
                              "created_at",
                              "updated_at"
                            ],
                            "properties": {
                              "item": {
                                "type": "object",
                                "description": "The adjustment's item.",
                                "x-schemaName": "BaseOrderLineItem"
                              },
                              "item_id": {
                                "type": "string",
                                "title": "item_id",
                                "description": "The adjustment's item id."
                              },
                              "id": {
                                "type": "string",
                                "title": "id",
                                "description": "The adjustment's ID."
                              },
                              "code": {
                                "type": "string",
                                "title": "code",
                                "description": "The adjustment's code."
                              },
                              "amount": {
                                "type": "number",
                                "title": "amount",
                                "description": "The adjustment's amount."
                              },
                              "order_id": {
                                "type": "string",
                                "title": "order_id",
                                "description": "The adjustment's order id."
                              },
                              "description": {
                                "type": "string",
                                "title": "description",
                                "description": "The adjustment's description."
                              },
                              "promotion_id": {
                                "type": "string",
                                "title": "promotion_id",
                                "description": "The adjustment's promotion id."
                              },
                              "provider_id": {
                                "type": "string",
                                "title": "provider_id",
                                "description": "The adjustment's provider id."
                              },
                              "created_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "created_at",
                                "description": "The adjustment's created at."
                              },
                              "updated_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "updated_at",
                                "description": "The adjustment's updated at."
                              }
                            }
                          }
                        },
                        "detail": {
                          "type": "object",
                          "description": "The item's detail.",
                          "x-schemaName": "BaseOrderItemDetail",
                          "required": [
                            "id",
                            "item_id",
                            "item",
                            "quantity",
                            "fulfilled_quantity",
                            "delivered_quantity",
                            "shipped_quantity",
                            "return_requested_quantity",
                            "return_received_quantity",
                            "return_dismissed_quantity",
                            "written_off_quantity",
                            "metadata",
                            "created_at",
                            "updated_at"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "The detail's ID."
                            },
                            "item_id": {
                              "type": "string",
                              "title": "item_id",
                              "description": "The detail's item id."
                            },
                            "item": {
                              "type": "object",
                              "description": "The detail's item.",
                              "x-schemaName": "BaseOrderLineItem"
                            },
                            "quantity": {
                              "type": "number",
                              "title": "quantity",
                              "description": "The detail's quantity."
                            },
                            "fulfilled_quantity": {
                              "type": "number",
                              "title": "fulfilled_quantity",
                              "description": "The detail's fulfilled quantity."
                            },
                            "delivered_quantity": {
                              "type": "number",
                              "title": "delivered_quantity",
                              "description": "The detail's delivered quantity."
                            },
                            "shipped_quantity": {
                              "type": "number",
                              "title": "shipped_quantity",
                              "description": "The detail's shipped quantity."
                            },
                            "return_requested_quantity": {
                              "type": "number",
                              "title": "return_requested_quantity",
                              "description": "The detail's return requested quantity."
                            },
                            "return_received_quantity": {
                              "type": "number",
                              "title": "return_received_quantity",
                              "description": "The detail's return received quantity."
                            },
                            "return_dismissed_quantity": {
                              "type": "number",
                              "title": "return_dismissed_quantity",
                              "description": "The detail's return dismissed quantity."
                            },
                            "written_off_quantity": {
                              "type": "number",
                              "title": "written_off_quantity",
                              "description": "The detail's written off quantity."
                            },
                            "metadata": {
                              "type": "object",
                              "description": "The detail's metadata.",
                              "externalDocs": {
                                "url": "https://docs.medusajs.com/api/store#manage-metadata",
                                "description": "Learn how to manage metadata"
                              }
                            },
                            "created_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "created_at",
                              "description": "The detail's created at."
                            },
                            "updated_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "updated_at",
                              "description": "The detail's updated at."
                            }
                          }
                        },
                        "created_at": {
                          "type": "string",
                          "format": "date-time",
                          "title": "created_at",
                          "description": "The item's created at."
                        },
                        "updated_at": {
                          "type": "string",
                          "format": "date-time",
                          "title": "updated_at",
                          "description": "The item's updated at."
                        },
                        "metadata": {
                          "type": "object",
                          "description": "The item's metadata.",
                          "externalDocs": {
                            "url": "https://docs.medusajs.com/api/store#manage-metadata",
                            "description": "Learn how to manage metadata"
                          }
                        },
                        "original_total": {
                          "type": "number",
                          "title": "original_total",
                          "description": "The item's original total."
                        },
                        "original_subtotal": {
                          "type": "number",
                          "title": "original_subtotal",
                          "description": "The item's original subtotal."
                        },
                        "original_tax_total": {
                          "type": "number",
                          "title": "original_tax_total",
                          "description": "The item's original tax total."
                        },
                        "item_total": {
                          "type": "number",
                          "title": "item_total",
                          "description": "The item's item total."
                        },
                        "item_subtotal": {
                          "type": "number",
                          "title": "item_subtotal",
                          "description": "The item's item subtotal."
                        },
                        "item_tax_total": {
                          "type": "number",
                          "title": "item_tax_total",
                          "description": "The item's item tax total."
                        },
                        "total": {
                          "type": "number",
                          "title": "total",
                          "description": "The item's total."
                        },
                        "subtotal": {
                          "type": "number",
                          "title": "subtotal",
                          "description": "The item's subtotal."
                        },
                        "tax_total": {
                          "type": "number",
                          "title": "tax_total",
                          "description": "The item's tax total."
                        },
                        "discount_total": {
                          "type": "number",
                          "title": "discount_total",
                          "description": "The item's discount total."
                        },
                        "discount_tax_total": {
                          "type": "number",
                          "title": "discount_tax_total",
                          "description": "The item's discount tax total."
                        },
                        "refundable_total": {
                          "type": "number",
                          "title": "refundable_total",
                          "description": "The item's refundable total."
                        },
                        "refundable_total_per_unit": {
                          "type": "number",
                          "title": "refundable_total_per_unit",
                          "description": "The item's refundable total per unit."
                        }
                      }
                    },
                    "item_id": {
                      "type": "string",
                      "title": "item_id",
                      "description": "The tax line's item id."
                    },
                    "total": {
                      "type": "number",
                      "title": "total",
                      "description": "The tax line's total."
                    },
                    "subtotal": {
                      "type": "number",
                      "title": "subtotal",
                      "description": "The tax line's subtotal."
                    },
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The tax line's ID."
                    },
                    "description": {
                      "type": "string",
                      "title": "description",
                      "description": "The tax line's description."
                    },
                    "tax_rate_id": {
                      "type": "string",
                      "title": "tax_rate_id",
                      "description": "The tax line's tax rate id."
                    },
                    "code": {
                      "type": "string",
                      "title": "code",
                      "description": "The tax line's code."
                    },
                    "rate": {
                      "type": "number",
                      "title": "rate",
                      "description": "The tax line's rate."
                    },
                    "provider_id": {
                      "type": "string",
                      "title": "provider_id",
                      "description": "The tax line's provider id."
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "created_at",
                      "description": "The tax line's created at."
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "updated_at",
                      "description": "The tax line's updated at."
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "The tax line's tax lines.",
                  "required": [
                    "item"
                  ],
                  "properties": {
                    "item": {
                      "type": "object",
                      "description": "The tax line's item.",
                      "x-schemaName": "StoreOrderLineItem",
                      "required": [
                        "detail",
                        "title",
                        "id",
                        "metadata",
                        "created_at",
                        "updated_at",
                        "item_total",
                        "item_subtotal",
                        "item_tax_total",
                        "original_total",
                        "original_subtotal",
                        "original_tax_total",
                        "total",
                        "subtotal",
                        "tax_total",
                        "discount_total",
                        "discount_tax_total",
                        "subtitle",
                        "thumbnail",
                        "variant_id",
                        "product_id",
                        "product_title",
                        "product_description",
                        "product_subtitle",
                        "product_type",
                        "product_collection",
                        "product_handle",
                        "variant_sku",
                        "variant_barcode",
                        "variant_title",
                        "variant_option_values",
                        "requires_shipping",
                        "is_discountable",
                        "is_tax_inclusive",
                        "unit_price",
                        "quantity",
                        "refundable_total",
                        "refundable_total_per_unit"
                      ],
                      "properties": {
                        "variant": {
                          "type": "object",
                          "description": "The item's variant.",
                          "x-schemaName": "StoreProductVariant",
                          "required": [
                            "options",
                            "length",
                            "title",
                            "id",
                            "created_at",
                            "updated_at",
                            "width",
                            "weight",
                            "height",
                            "origin_country",
                            "hs_code",
                            "mid_code",
                            "material",
                            "deleted_at",
                            "sku",
                            "barcode",
                            "ean",
                            "upc",
                            "allow_backorder",
                            "manage_inventory"
                          ],
                          "properties": {
                            "options": {
                              "type": "array",
                              "description": "The variant's options.",
                              "items": {
                                "type": "object",
                                "description": "The option's options.",
                                "x-schemaName": "StoreProductOptionValue"
                              }
                            },
                            "product": {
                              "type": "object",
                              "description": "The variant's product.",
                              "x-schemaName": "StoreProduct"
                            },
                            "length": {
                              "type": "number",
                              "title": "length",
                              "description": "The variant's length."
                            },
                            "title": {
                              "type": "string",
                              "title": "title",
                              "description": "The variant's title."
                            },
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "The variant's ID."
                            },
                            "metadata": {
                              "type": "object",
                              "description": "The variant's metadata.",
                              "externalDocs": {
                                "url": "https://docs.medusajs.com/api/store#manage-metadata",
                                "description": "Learn how to manage metadata"
                              }
                            },
                            "created_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "created_at",
                              "description": "The variant's created at."
                            },
                            "updated_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "updated_at",
                              "description": "The variant's updated at."
                            },
                            "product_id": {
                              "type": "string",
                              "title": "product_id",
                              "description": "The variant's product id."
                            },
                            "width": {
                              "type": "number",
                              "title": "width",
                              "description": "The variant's width."
                            },
                            "weight": {
                              "type": "number",
                              "title": "weight",
                              "description": "The variant's weight."
                            },
                            "height": {
                              "type": "number",
                              "title": "height",
                              "description": "The variant's height."
                            },
                            "origin_country": {
                              "type": "string",
                              "title": "origin_country",
                              "description": "The variant's origin country."
                            },
                            "hs_code": {
                              "type": "string",
                              "title": "hs_code",
                              "description": "The variant's hs code."
                            },
                            "mid_code": {
                              "type": "string",
                              "title": "mid_code",
                              "description": "The variant's mid code."
                            },
                            "material": {
                              "type": "string",
                              "title": "material",
                              "description": "The variant's material."
                            },
                            "deleted_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "deleted_at",
                              "description": "The variant's deleted at."
                            },
                            "sku": {
                              "type": "string",
                              "title": "sku",
                              "description": "The variant's sku."
                            },
                            "barcode": {
                              "type": "string",
                              "title": "barcode",
                              "description": "The variant's barcode."
                            },
                            "ean": {
                              "type": "string",
                              "title": "ean",
                              "description": "The variant's ean."
                            },
                            "upc": {
                              "type": "string",
                              "title": "upc",
                              "description": "The variant's upc."
                            },
                            "allow_backorder": {
                              "type": "boolean",
                              "title": "allow_backorder",
                              "description": "The variant's allow backorder."
                            },
                            "manage_inventory": {
                              "type": "boolean",
                              "title": "manage_inventory",
                              "description": "The variant's manage inventory."
                            },
                            "inventory_quantity": {
                              "type": "number",
                              "title": "inventory_quantity",
                              "description": "The variant's inventory quantity."
                            },
                            "variant_rank": {
                              "type": "number",
                              "title": "variant_rank",
                              "description": "The variant's variant rank."
                            },
                            "calculated_price": {
                              "type": "object",
                              "description": "The variant's calculated price.",
                              "x-schemaName": "BaseCalculatedPriceSet"
                            }
                          }
                        },
                        "product": {
                          "type": "object",
                          "description": "The item's product.",
                          "x-schemaName": "StoreProduct",
                          "required": [
                            "variants",
                            "options",
                            "images",
                            "length",
                            "title",
                            "status",
                            "description",
                            "id",
                            "created_at",
                            "updated_at",
                            "subtitle",
                            "thumbnail",
                            "handle",
                            "is_giftcard",
                            "width",
                            "weight",
                            "height",
                            "origin_country",
                            "hs_code",
                            "mid_code",
                            "material",
                            "collection_id",
                            "type_id",
                            "discountable",
                            "external_id",
                            "deleted_at"
                          ],
                          "properties": {
                            "collection": {
                              "type": "object",
                              "description": "The product's collection.",
                              "x-schemaName": "StoreCollection"
                            },
                            "categories": {
                              "type": "array",
                              "description": "The product's categories.",
                              "items": {
                                "type": "object",
                                "description": "The category's categories.",
                                "x-schemaName": "StoreProductCategory"
                              }
                            },
                            "variants": {
                              "type": "array",
                              "description": "The product's variants.",
                              "items": {
                                "type": "object",
                                "description": "The variant's variants.",
                                "x-schemaName": "StoreProductVariant"
                              }
                            },
                            "type": {
                              "type": "object",
                              "description": "The product's type.",
                              "x-schemaName": "StoreProduct"
                            },
                            "tags": {
                              "type": "array",
                              "description": "The product's tags.",
                              "items": {
                                "type": "object",
                                "description": "The tag's tags.",
                                "x-schemaName": "StoreProductTag"
                              }
                            },
                            "options": {
                              "type": "array",
                              "description": "The product's options.",
                              "items": {
                                "type": "object",
                                "description": "The option's options.",
                                "x-schemaName": "StoreProductOption"
                              }
                            },
                            "images": {
                              "type": "array",
                              "description": "The product's images.",
                              "items": {
                                "type": "object",
                                "description": "The image's images.",
                                "x-schemaName": "StoreProductImage"
                              }
                            },
                            "length": {
                              "type": "number",
                              "title": "length",
                              "description": "The product's length."
                            },
                            "title": {
                              "type": "string",
                              "title": "title",
                              "description": "The product's title."
                            },
                            "status": {
                              "type": "string",
                              "description": "The product's status.",
                              "enum": [
                                "draft",
                                "proposed",
                                "published",
                                "rejected"
                              ]
                            },
                            "description": {
                              "type": "string",
                              "title": "description",
                              "description": "The product's description."
                            },
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "The product's ID."
                            },
                            "metadata": {
                              "type": "object",
                              "description": "The product's metadata.",
                              "externalDocs": {
                                "url": "https://docs.medusajs.com/api/store#manage-metadata",
                                "description": "Learn how to manage metadata"
                              }
                            },
                            "created_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "created_at",
                              "description": "The product's created at."
                            },
                            "updated_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "updated_at",
                              "description": "The product's updated at."
                            },
                            "subtitle": {
                              "type": "string",
                              "title": "subtitle",
                              "description": "The product's subtitle."
                            },
                            "thumbnail": {
                              "type": "string",
                              "title": "thumbnail",
                              "description": "The product's thumbnail."
                            },
                            "handle": {
                              "type": "string",
                              "title": "handle",
                              "description": "The product's handle."
                            },
                            "is_giftcard": {
                              "type": "boolean",
                              "title": "is_giftcard",
                              "description": "The product's is giftcard."
                            },
                            "width": {
                              "type": "number",
                              "title": "width",
                              "description": "The product's width."
                            },
                            "weight": {
                              "type": "number",
                              "title": "weight",
                              "description": "The product's weight."
                            },
                            "height": {
                              "type": "number",
                              "title": "height",
                              "description": "The product's height."
                            },
                            "origin_country": {
                              "type": "string",
                              "title": "origin_country",
                              "description": "The product's origin country."
                            },
                            "hs_code": {
                              "type": "string",
                              "title": "hs_code",
                              "description": "The product's hs code."
                            },
                            "mid_code": {
                              "type": "string",
                              "title": "mid_code",
                              "description": "The product's mid code."
                            },
                            "material": {
                              "type": "string",
                              "title": "material",
                              "description": "The product's material."
                            },
                            "collection_id": {
                              "type": "string",
                              "title": "collection_id",
                              "description": "The product's collection id."
                            },
                            "type_id": {
                              "type": "string",
                              "title": "type_id",
                              "description": "The product's type id."
                            },
                            "discountable": {
                              "type": "boolean",
                              "title": "discountable",
                              "description": "The product's discountable."
                            },
                            "external_id": {
                              "type": "string",
                              "title": "external_id",
                              "description": "The product's external id."
                            },
                            "deleted_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "deleted_at",
                              "description": "The product's deleted at."
                            }
                          }
                        },
                        "tax_lines": {
                          "type": "array",
                          "description": "The item's tax lines.",
                          "items": {
                            "allOf": [
                              {
                                "type": "object",
                                "description": "The tax line's tax lines.",
                                "x-schemaName": "BaseOrderLineItemTaxLine",
                                "required": [
                                  "item",
                                  "item_id",
                                  "total",
                                  "subtotal",
                                  "id",
                                  "code",
                                  "rate",
                                  "created_at",
                                  "updated_at"
                                ],
                                "properties": {
                                  "item": {
                                    "type": "object",
                                    "description": "The tax line's item.",
                                    "x-schemaName": "BaseOrderLineItem"
                                  },
                                  "item_id": {
                                    "type": "string",
                                    "title": "item_id",
                                    "description": "The tax line's item id."
                                  },
                                  "total": {
                                    "type": "number",
                                    "title": "total",
                                    "description": "The tax line's total."
                                  },
                                  "subtotal": {
                                    "type": "number",
                                    "title": "subtotal",
                                    "description": "The tax line's subtotal."
                                  },
                                  "id": {
                                    "type": "string",
                                    "title": "id",
                                    "description": "The tax line's ID."
                                  },
                                  "description": {
                                    "type": "string",
                                    "title": "description",
                                    "description": "The tax line's description."
                                  },
                                  "tax_rate_id": {
                                    "type": "string",
                                    "title": "tax_rate_id",
                                    "description": "The tax line's tax rate id."
                                  },
                                  "code": {
                                    "type": "string",
                                    "title": "code",
                                    "description": "The tax line's code."
                                  },
                                  "rate": {
                                    "type": "number",
                                    "title": "rate",
                                    "description": "The tax line's rate."
                                  },
                                  "provider_id": {
                                    "type": "string",
                                    "title": "provider_id",
                                    "description": "The tax line's provider id."
                                  },
                                  "created_at": {
                                    "type": "string",
                                    "format": "date-time",
                                    "title": "created_at",
                                    "description": "The tax line's created at."
                                  },
                                  "updated_at": {
                                    "type": "string",
                                    "format": "date-time",
                                    "title": "updated_at",
                                    "description": "The tax line's updated at."
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "description": "The tax line's tax lines.",
                                "required": [
                                  "item"
                                ],
                                "properties": {
                                  "item": {
                                    "type": "object",
                                    "description": "The tax line's item.",
                                    "x-schemaName": "StoreOrderLineItem"
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "adjustments": {
                          "type": "array",
                          "description": "The item's adjustments.",
                          "items": {
                            "allOf": [
                              {
                                "type": "object",
                                "description": "The adjustment's adjustments.",
                                "x-schemaName": "BaseOrderLineItemAdjustment",
                                "required": [
                                  "item",
                                  "item_id",
                                  "id",
                                  "amount",
                                  "order_id",
                                  "created_at",
                                  "updated_at"
                                ],
                                "properties": {
                                  "item": {
                                    "type": "object",
                                    "description": "The adjustment's item.",
                                    "x-schemaName": "BaseOrderLineItem"
                                  },
                                  "item_id": {
                                    "type": "string",
                                    "title": "item_id",
                                    "description": "The adjustment's item id."
                                  },
                                  "id": {
                                    "type": "string",
                                    "title": "id",
                                    "description": "The adjustment's ID."
                                  },
                                  "code": {
                                    "type": "string",
                                    "title": "code",
                                    "description": "The adjustment's code."
                                  },
                                  "amount": {
                                    "type": "number",
                                    "title": "amount",
                                    "description": "The adjustment's amount."
                                  },
                                  "order_id": {
                                    "type": "string",
                                    "title": "order_id",
                                    "description": "The adjustment's order id."
                                  },
                                  "description": {
                                    "type": "string",
                                    "title": "description",
                                    "description": "The adjustment's description."
                                  },
                                  "promotion_id": {
                                    "type": "string",
                                    "title": "promotion_id",
                                    "description": "The adjustment's promotion id."
                                  },
                                  "provider_id": {
                                    "type": "string",
                                    "title": "provider_id",
                                    "description": "The adjustment's provider id."
                                  },
                                  "created_at": {
                                    "type": "string",
                                    "format": "date-time",
                                    "title": "created_at",
                                    "description": "The adjustment's created at."
                                  },
                                  "updated_at": {
                                    "type": "string",
                                    "format": "date-time",
                                    "title": "updated_at",
                                    "description": "The adjustment's updated at."
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "description": "The adjustment's adjustments.",
                                "required": [
                                  "item"
                                ],
                                "properties": {
                                  "item": {
                                    "type": "object",
                                    "description": "The adjustment's item.",
                                    "x-schemaName": "StoreOrderLineItem"
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "detail": {
                          "allOf": [
                            {
                              "type": "object",
                              "description": "The item's detail.",
                              "x-schemaName": "BaseOrderItemDetail",
                              "required": [
                                "id",
                                "item_id",
                                "item",
                                "quantity",
                                "fulfilled_quantity",
                                "delivered_quantity",
                                "shipped_quantity",
                                "return_requested_quantity",
                                "return_received_quantity",
                                "return_dismissed_quantity",
                                "written_off_quantity",
                                "metadata",
                                "created_at",
                                "updated_at"
                              ],
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "title": "id",
                                  "description": "The detail's ID."
                                },
                                "item_id": {
                                  "type": "string",
                                  "title": "item_id",
                                  "description": "The detail's item id."
                                },
                                "item": {
                                  "type": "object",
                                  "description": "The detail's item.",
                                  "x-schemaName": "BaseOrderLineItem"
                                },
                                "quantity": {
                                  "type": "number",
                                  "title": "quantity",
                                  "description": "The detail's quantity."
                                },
                                "fulfilled_quantity": {
                                  "type": "number",
                                  "title": "fulfilled_quantity",
                                  "description": "The detail's fulfilled quantity."
                                },
                                "delivered_quantity": {
                                  "type": "number",
                                  "title": "delivered_quantity",
                                  "description": "The detail's delivered quantity."
                                },
                                "shipped_quantity": {
                                  "type": "number",
                                  "title": "shipped_quantity",
                                  "description": "The detail's shipped quantity."
                                },
                                "return_requested_quantity": {
                                  "type": "number",
                                  "title": "return_requested_quantity",
                                  "description": "The detail's return requested quantity."
                                },
                                "return_received_quantity": {
                                  "type": "number",
                                  "title": "return_received_quantity",
                                  "description": "The detail's return received quantity."
                                },
                                "return_dismissed_quantity": {
                                  "type": "number",
                                  "title": "return_dismissed_quantity",
                                  "description": "The detail's return dismissed quantity."
                                },
                                "written_off_quantity": {
                                  "type": "number",
                                  "title": "written_off_quantity",
                                  "description": "The detail's written off quantity."
                                },
                                "metadata": {
                                  "type": "object",
                                  "description": "The detail's metadata.",
                                  "externalDocs": {
                                    "url": "https://docs.medusajs.com/api/store#manage-metadata",
                                    "description": "Learn how to manage metadata"
                                  }
                                },
                                "created_at": {
                                  "type": "string",
                                  "format": "date-time",
                                  "title": "created_at",
                                  "description": "The detail's created at."
                                },
                                "updated_at": {
                                  "type": "string",
                                  "format": "date-time",
                                  "title": "updated_at",
                                  "description": "The detail's updated at."
                                }
                              }
                            },
                            {
                              "type": "object",
                              "description": "The item's detail.",
                              "required": [
                                "item"
                              ],
                              "properties": {
                                "item": {
                                  "type": "object",
                                  "description": "The detail's item.",
                                  "x-schemaName": "StoreOrderLineItem"
                                }
                              }
                            }
                          ]
                        },
                        "title": {
                          "type": "string",
                          "title": "title",
                          "description": "The item's title."
                        },
                        "id": {
                          "type": "string",
                          "title": "id",
                          "description": "The item's ID."
                        },
                        "metadata": {
                          "type": "object",
                          "description": "The item's metadata.",
                          "externalDocs": {
                            "url": "https://docs.medusajs.com/api/store#manage-metadata",
                            "description": "Learn how to manage metadata"
                          }
                        },
                        "created_at": {
                          "type": "string",
                          "format": "date-time",
                          "title": "created_at",
                          "description": "The item's created at."
                        },
                        "updated_at": {
                          "type": "string",
                          "format": "date-time",
                          "title": "updated_at",
                          "description": "The item's updated at."
                        },
                        "item_total": {
                          "type": "number",
                          "title": "item_total",
                          "description": "The item's item total."
                        },
                        "item_subtotal": {
                          "type": "number",
                          "title": "item_subtotal",
                          "description": "The item's item subtotal."
                        },
                        "item_tax_total": {
                          "type": "number",
                          "title": "item_tax_total",
                          "description": "The item's item tax total."
                        },
                        "original_total": {
                          "type": "number",
                          "title": "original_total",
                          "description": "The item's original total."
                        },
                        "original_subtotal": {
                          "type": "number",
                          "title": "original_subtotal",
                          "description": "The item's original subtotal."
                        },
                        "original_tax_total": {
                          "type": "number",
                          "title": "original_tax_total",
                          "description": "The item's original tax total."
                        },
                        "total": {
                          "type": "number",
                          "title": "total",
                          "description": "The item's total."
                        },
                        "subtotal": {
                          "type": "number",
                          "title": "subtotal",
                          "description": "The item's subtotal."
                        },
                        "tax_total": {
                          "type": "number",
                          "title": "tax_total",
                          "description": "The item's tax total."
                        },
                        "discount_total": {
                          "type": "number",
                          "title": "discount_total",
                          "description": "The item's discount total."
                        },
                        "discount_tax_total": {
                          "type": "number",
                          "title": "discount_tax_total",
                          "description": "The item's discount tax total."
                        },
                        "subtitle": {
                          "type": "string",
                          "title": "subtitle",
                          "description": "The item's subtitle."
                        },
                        "thumbnail": {
                          "type": "string",
                          "title": "thumbnail",
                          "description": "The item's thumbnail."
                        },
                        "variant_id": {
                          "type": "string",
                          "title": "variant_id",
                          "description": "The item's variant id."
                        },
                        "product_id": {
                          "type": "string",
                          "title": "product_id",
                          "description": "The item's product id."
                        },
                        "product_title": {
                          "type": "string",
                          "title": "product_title",
                          "description": "The item's product title."
                        },
                        "product_description": {
                          "type": "string",
                          "title": "product_description",
                          "description": "The item's product description."
                        },
                        "product_subtitle": {
                          "type": "string",
                          "title": "product_subtitle",
                          "description": "The item's product subtitle."
                        },
                        "product_type": {
                          "type": "string",
                          "title": "product_type",
                          "description": "The item's product type."
                        },
                        "product_collection": {
                          "type": "string",
                          "title": "product_collection",
                          "description": "The item's product collection."
                        },
                        "product_handle": {
                          "type": "string",
                          "title": "product_handle",
                          "description": "The item's product handle."
                        },
                        "variant_sku": {
                          "type": "string",
                          "title": "variant_sku",
                          "description": "The item's variant sku."
                        },
                        "variant_barcode": {
                          "type": "string",
                          "title": "variant_barcode",
                          "description": "The item's variant barcode."
                        },
                        "variant_title": {
                          "type": "string",
                          "title": "variant_title",
                          "description": "The item's variant title."
                        },
                        "variant_option_values": {
                          "type": "object",
                          "description": "The item's variant option values."
                        },
                        "requires_shipping": {
                          "type": "boolean",
                          "title": "requires_shipping",
                          "description": "The item's requires shipping."
                        },
                        "is_discountable": {
                          "type": "boolean",
                          "title": "is_discountable",
                          "description": "The item's is discountable."
                        },
                        "is_tax_inclusive": {
                          "type": "boolean",
                          "title": "is_tax_inclusive",
                          "description": "The item's is tax inclusive."
                        },
                        "compare_at_unit_price": {
                          "type": "number",
                          "title": "compare_at_unit_price",
                          "description": "The item's compare at unit price."
                        },
                        "unit_price": {
                          "type": "number",
                          "title": "unit_price",
                          "description": "The item's unit price."
                        },
                        "quantity": {
                          "type": "number",
                          "title": "quantity",
                          "description": "The item's quantity."
                        },
                        "refundable_total": {
                          "type": "number",
                          "title": "refundable_total",
                          "description": "The item's refundable total."
                        },
                        "refundable_total_per_unit": {
                          "type": "number",
                          "title": "refundable_total_per_unit",
                          "description": "The item's refundable total per unit."
                        }
                      }
                    }
                  }
                }
              ],
              "description": "The tax line's tax lines."
            }
          },
          "adjustments": {
            "type": "array",
            "description": "The item's adjustments.",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "description": "The adjustment's adjustments.",
                  "x-schemaName": "BaseOrderLineItemAdjustment",
                  "required": [
                    "item",
                    "item_id",
                    "id",
                    "amount",
                    "order_id",
                    "created_at",
                    "updated_at"
                  ],
                  "properties": {
                    "item": {
                      "type": "object",
                      "description": "The adjustment's item.",
                      "x-schemaName": "BaseOrderLineItem",
                      "required": [
                        "id",
                        "title",
                        "subtitle",
                        "thumbnail",
                        "variant_id",
                        "product_id",
                        "product_title",
                        "product_description",
                        "product_subtitle",
                        "product_type",
                        "product_collection",
                        "product_handle",
                        "variant_sku",
                        "variant_barcode",
                        "variant_title",
                        "variant_option_values",
                        "requires_shipping",
                        "is_discountable",
                        "is_tax_inclusive",
                        "unit_price",
                        "quantity",
                        "detail",
                        "created_at",
                        "updated_at",
                        "metadata",
                        "original_total",
                        "original_subtotal",
                        "original_tax_total",
                        "item_total",
                        "item_subtotal",
                        "item_tax_total",
                        "total",
                        "subtotal",
                        "tax_total",
                        "discount_total",
                        "discount_tax_total",
                        "refundable_total",
                        "refundable_total_per_unit"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "title": "id",
                          "description": "The item's ID."
                        },
                        "title": {
                          "type": "string",
                          "title": "title",
                          "description": "The item's title."
                        },
                        "subtitle": {
                          "type": "string",
                          "title": "subtitle",
                          "description": "The item's subtitle."
                        },
                        "thumbnail": {
                          "type": "string",
                          "title": "thumbnail",
                          "description": "The item's thumbnail."
                        },
                        "variant": {
                          "type": "object",
                          "description": "The item's variant.",
                          "x-schemaName": "BaseProductVariant",
                          "required": [
                            "id",
                            "title",
                            "sku",
                            "barcode",
                            "ean",
                            "upc",
                            "allow_backorder",
                            "manage_inventory",
                            "hs_code",
                            "origin_country",
                            "mid_code",
                            "material",
                            "weight",
                            "length",
                            "height",
                            "width",
                            "options",
                            "created_at",
                            "updated_at",
                            "deleted_at"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "The variant's ID."
                            },
                            "title": {
                              "type": "string",
                              "title": "title",
                              "description": "The variant's title."
                            },
                            "sku": {
                              "type": "string",
                              "title": "sku",
                              "description": "The variant's sku."
                            },
                            "barcode": {
                              "type": "string",
                              "title": "barcode",
                              "description": "The variant's barcode."
                            },
                            "ean": {
                              "type": "string",
                              "title": "ean",
                              "description": "The variant's ean."
                            },
                            "upc": {
                              "type": "string",
                              "title": "upc",
                              "description": "The variant's upc."
                            },
                            "allow_backorder": {
                              "type": "boolean",
                              "title": "allow_backorder",
                              "description": "The variant's allow backorder."
                            },
                            "manage_inventory": {
                              "type": "boolean",
                              "title": "manage_inventory",
                              "description": "The variant's manage inventory."
                            },
                            "inventory_quantity": {
                              "type": "number",
                              "title": "inventory_quantity",
                              "description": "The variant's inventory quantity."
                            },
                            "hs_code": {
                              "type": "string",
                              "title": "hs_code",
                              "description": "The variant's hs code."
                            },
                            "origin_country": {
                              "type": "string",
                              "title": "origin_country",
                              "description": "The variant's origin country."
                            },
                            "mid_code": {
                              "type": "string",
                              "title": "mid_code",
                              "description": "The variant's mid code."
                            },
                            "material": {
                              "type": "string",
                              "title": "material",
                              "description": "The variant's material."
                            },
                            "weight": {
                              "type": "number",
                              "title": "weight",
                              "description": "The variant's weight."
                            },
                            "length": {
                              "type": "number",
                              "title": "length",
                              "description": "The variant's length."
                            },
                            "height": {
                              "type": "number",
                              "title": "height",
                              "description": "The variant's height."
                            },
                            "width": {
                              "type": "number",
                              "title": "width",
                              "description": "The variant's width."
                            },
                            "variant_rank": {
                              "type": "number",
                              "title": "variant_rank",
                              "description": "The variant's variant rank."
                            },
                            "options": {
                              "type": "array",
                              "description": "The variant's options.",
                              "items": {
                                "type": "object",
                                "description": "The option's options.",
                                "x-schemaName": "BaseProductOptionValue"
                              }
                            },
                            "product": {
                              "type": "object",
                              "description": "The variant's product.",
                              "x-schemaName": "BaseProduct"
                            },
                            "product_id": {
                              "type": "string",
                              "title": "product_id",
                              "description": "The variant's product id."
                            },
                            "calculated_price": {
                              "type": "object",
                              "description": "The variant's calculated price.",
                              "x-schemaName": "BaseCalculatedPriceSet"
                            },
                            "created_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "created_at",
                              "description": "The variant's created at."
                            },
                            "updated_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "updated_at",
                              "description": "The variant's updated at."
                            },
                            "deleted_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "deleted_at",
                              "description": "The variant's deleted at."
                            },
                            "metadata": {
                              "type": "object",
                              "description": "The variant's metadata.",
                              "externalDocs": {
                                "url": "https://docs.medusajs.com/api/store#manage-metadata",
                                "description": "Learn how to manage metadata"
                              }
                            }
                          }
                        },
                        "variant_id": {
                          "type": "string",
                          "title": "variant_id",
                          "description": "The item's variant id."
                        },
                        "product": {
                          "type": "object",
                          "description": "The item's product.",
                          "x-schemaName": "BaseProduct",
                          "required": [
                            "id",
                            "title",
                            "handle",
                            "subtitle",
                            "description",
                            "is_giftcard",
                            "status",
                            "thumbnail",
                            "width",
                            "weight",
                            "length",
                            "height",
                            "origin_country",
                            "hs_code",
                            "mid_code",
                            "material",
                            "collection_id",
                            "type_id",
                            "variants",
                            "options",
                            "images",
                            "discountable",
                            "external_id",
                            "created_at",
                            "updated_at",
                            "deleted_at"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "The product's ID."
                            },
                            "title": {
                              "type": "string",
                              "title": "title",
                              "description": "The product's title."
                            },
                            "handle": {
                              "type": "string",
                              "title": "handle",
                              "description": "The product's handle."
                            },
                            "subtitle": {
                              "type": "string",
                              "title": "subtitle",
                              "description": "The product's subtitle."
                            },
                            "description": {
                              "type": "string",
                              "title": "description",
                              "description": "The product's description."
                            },
                            "is_giftcard": {
                              "type": "boolean",
                              "title": "is_giftcard",
                              "description": "The product's is giftcard."
                            },
                            "status": {
                              "type": "string",
                              "description": "The product's status.",
                              "enum": [
                                "draft",
                                "proposed",
                                "published",
                                "rejected"
                              ]
                            },
                            "thumbnail": {
                              "type": "string",
                              "title": "thumbnail",
                              "description": "The product's thumbnail."
                            },
                            "width": {
                              "type": "number",
                              "title": "width",
                              "description": "The product's width."
                            },
                            "weight": {
                              "type": "number",
                              "title": "weight",
                              "description": "The product's weight."
                            },
                            "length": {
                              "type": "number",
                              "title": "length",
                              "description": "The product's length."
                            },
                            "height": {
                              "type": "number",
                              "title": "height",
                              "description": "The product's height."
                            },
                            "origin_country": {
                              "type": "string",
                              "title": "origin_country",
                              "description": "The product's origin country."
                            },
                            "hs_code": {
                              "type": "string",
                              "title": "hs_code",
                              "description": "The product's hs code."
                            },
                            "mid_code": {
                              "type": "string",
                              "title": "mid_code",
                              "description": "The product's mid code."
                            },
                            "material": {
                              "type": "string",
                              "title": "material",
                              "description": "The product's material."
                            },
                            "collection": {
                              "type": "object",
                              "description": "The product's collection.",
                              "x-schemaName": "BaseCollection"
                            },
                            "collection_id": {
                              "type": "string",
                              "title": "collection_id",
                              "description": "The product's collection id."
                            },
                            "categories": {
                              "type": "array",
                              "description": "The product's categories.",
                              "items": {
                                "type": "object",
                                "description": "The category's categories.",
                                "x-schemaName": "BaseProductCategory"
                              }
                            },
                            "type": {
                              "type": "object",
                              "description": "The product's type.",
                              "x-schemaName": "BaseProduct"
                            },
                            "type_id": {
                              "type": "string",
                              "title": "type_id",
                              "description": "The product's type id."
                            },
                            "tags": {
                              "type": "array",
                              "description": "The product's tags.",
                              "items": {
                                "type": "object",
                                "description": "The tag's tags.",
                                "x-schemaName": "BaseProductTag"
                              }
                            },
                            "variants": {
                              "type": "array",
                              "description": "The product's variants.",
                              "items": {
                                "type": "object",
                                "description": "The variant's variants.",
                                "x-schemaName": "BaseProductVariant"
                              }
                            },
                            "options": {
                              "type": "array",
                              "description": "The product's options.",
                              "items": {
                                "type": "object",
                                "description": "The option's options.",
                                "x-schemaName": "BaseProductOption"
                              }
                            },
                            "images": {
                              "type": "array",
                              "description": "The product's images.",
                              "items": {
                                "type": "object",
                                "description": "The image's images.",
                                "x-schemaName": "BaseProductImage"
                              }
                            },
                            "discountable": {
                              "type": "boolean",
                              "title": "discountable",
                              "description": "The product's discountable."
                            },
                            "external_id": {
                              "type": "string",
                              "title": "external_id",
                              "description": "The product's external id."
                            },
                            "created_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "created_at",
                              "description": "The product's created at."
                            },
                            "updated_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "updated_at",
                              "description": "The product's updated at."
                            },
                            "deleted_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "deleted_at",
                              "description": "The product's deleted at."
                            },
                            "metadata": {
                              "type": "object",
                              "description": "The product's metadata.",
                              "externalDocs": {
                                "url": "https://docs.medusajs.com/api/store#manage-metadata",
                                "description": "Learn how to manage metadata"
                              }
                            }
                          }
                        },
                        "product_id": {
                          "type": "string",
                          "title": "product_id",
                          "description": "The item's product id."
                        },
                        "product_title": {
                          "type": "string",
                          "title": "product_title",
                          "description": "The item's product title."
                        },
                        "product_description": {
                          "type": "string",
                          "title": "product_description",
                          "description": "The item's product description."
                        },
                        "product_subtitle": {
                          "type": "string",
                          "title": "product_subtitle",
                          "description": "The item's product subtitle."
                        },
                        "product_type": {
                          "type": "string",
                          "title": "product_type",
                          "description": "The item's product type."
                        },
                        "product_collection": {
                          "type": "string",
                          "title": "product_collection",
                          "description": "The item's product collection."
                        },
                        "product_handle": {
                          "type": "string",
                          "title": "product_handle",
                          "description": "The item's product handle."
                        },
                        "variant_sku": {
                          "type": "string",
                          "title": "variant_sku",
                          "description": "The item's variant sku."
                        },
                        "variant_barcode": {
                          "type": "string",
                          "title": "variant_barcode",
                          "description": "The item's variant barcode."
                        },
                        "variant_title": {
                          "type": "string",
                          "title": "variant_title",
                          "description": "The item's variant title."
                        },
                        "variant_option_values": {
                          "type": "object",
                          "description": "The item's variant option values."
                        },
                        "requires_shipping": {
                          "type": "boolean",
                          "title": "requires_shipping",
                          "description": "The item's requires shipping."
                        },
                        "is_discountable": {
                          "type": "boolean",
                          "title": "is_discountable",
                          "description": "The item's is discountable."
                        },
                        "is_tax_inclusive": {
                          "type": "boolean",
                          "title": "is_tax_inclusive",
                          "description": "The item's is tax inclusive."
                        },
                        "compare_at_unit_price": {
                          "type": "number",
                          "title": "compare_at_unit_price",
                          "description": "The item's compare at unit price."
                        },
                        "unit_price": {
                          "type": "number",
                          "title": "unit_price",
                          "description": "The item's unit price."
                        },
                        "quantity": {
                          "type": "number",
                          "title": "quantity",
                          "description": "The item's quantity."
                        },
                        "tax_lines": {
                          "type": "array",
                          "description": "The item's tax lines.",
                          "items": {
                            "type": "object",
                            "description": "The tax line's tax lines.",
                            "x-schemaName": "BaseOrderLineItemTaxLine",
                            "required": [
                              "item",
                              "item_id",
                              "total",
                              "subtotal",
                              "id",
                              "code",
                              "rate",
                              "created_at",
                              "updated_at"
                            ],
                            "properties": {
                              "item": {
                                "type": "object",
                                "description": "The tax line's item.",
                                "x-schemaName": "BaseOrderLineItem"
                              },
                              "item_id": {
                                "type": "string",
                                "title": "item_id",
                                "description": "The tax line's item id."
                              },
                              "total": {
                                "type": "number",
                                "title": "total",
                                "description": "The tax line's total."
                              },
                              "subtotal": {
                                "type": "number",
                                "title": "subtotal",
                                "description": "The tax line's subtotal."
                              },
                              "id": {
                                "type": "string",
                                "title": "id",
                                "description": "The tax line's ID."
                              },
                              "description": {
                                "type": "string",
                                "title": "description",
                                "description": "The tax line's description."
                              },
                              "tax_rate_id": {
                                "type": "string",
                                "title": "tax_rate_id",
                                "description": "The tax line's tax rate id."
                              },
                              "code": {
                                "type": "string",
                                "title": "code",
                                "description": "The tax line's code."
                              },
                              "rate": {
                                "type": "number",
                                "title": "rate",
                                "description": "The tax line's rate."
                              },
                              "provider_id": {
                                "type": "string",
                                "title": "provider_id",
                                "description": "The tax line's provider id."
                              },
                              "created_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "created_at",
                                "description": "The tax line's created at."
                              },
                              "updated_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "updated_at",
                                "description": "The tax line's updated at."
                              }
                            }
                          }
                        },
                        "adjustments": {
                          "type": "array",
                          "description": "The item's adjustments.",
                          "items": {
                            "type": "object",
                            "description": "The adjustment's adjustments.",
                            "x-schemaName": "BaseOrderLineItemAdjustment",
                            "required": [
                              "item",
                              "item_id",
                              "id",
                              "amount",
                              "order_id",
                              "created_at",
                              "updated_at"
                            ],
                            "properties": {
                              "item": {
                                "type": "object",
                                "description": "The adjustment's item.",
                                "x-schemaName": "BaseOrderLineItem"
                              },
                              "item_id": {
                                "type": "string",
                                "title": "item_id",
                                "description": "The adjustment's item id."
                              },
                              "id": {
                                "type": "string",
                                "title": "id",
                                "description": "The adjustment's ID."
                              },
                              "code": {
                                "type": "string",
                                "title": "code",
                                "description": "The adjustment's code."
                              },
                              "amount": {
                                "type": "number",
                                "title": "amount",
                                "description": "The adjustment's amount."
                              },
                              "order_id": {
                                "type": "string",
                                "title": "order_id",
                                "description": "The adjustment's order id."
                              },
                              "description": {
                                "type": "string",
                                "title": "description",
                                "description": "The adjustment's description."
                              },
                              "promotion_id": {
                                "type": "string",
                                "title": "promotion_id",
                                "description": "The adjustment's promotion id."
                              },
                              "provider_id": {
                                "type": "string",
                                "title": "provider_id",
                                "description": "The adjustment's provider id."
                              },
                              "created_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "created_at",
                                "description": "The adjustment's created at."
                              },
                              "updated_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "updated_at",
                                "description": "The adjustment's updated at."
                              }
                            }
                          }
                        },
                        "detail": {
                          "type": "object",
                          "description": "The item's detail.",
                          "x-schemaName": "BaseOrderItemDetail",
                          "required": [
                            "id",
                            "item_id",
                            "item",
                            "quantity",
                            "fulfilled_quantity",
                            "delivered_quantity",
                            "shipped_quantity",
                            "return_requested_quantity",
                            "return_received_quantity",
                            "return_dismissed_quantity",
                            "written_off_quantity",
                            "metadata",
                            "created_at",
                            "updated_at"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "The detail's ID."
                            },
                            "item_id": {
                              "type": "string",
                              "title": "item_id",
                              "description": "The detail's item id."
                            },
                            "item": {
                              "type": "object",
                              "description": "The detail's item.",
                              "x-schemaName": "BaseOrderLineItem"
                            },
                            "quantity": {
                              "type": "number",
                              "title": "quantity",
                              "description": "The detail's quantity."
                            },
                            "fulfilled_quantity": {
                              "type": "number",
                              "title": "fulfilled_quantity",
                              "description": "The detail's fulfilled quantity."
                            },
                            "delivered_quantity": {
                              "type": "number",
                              "title": "delivered_quantity",
                              "description": "The detail's delivered quantity."
                            },
                            "shipped_quantity": {
                              "type": "number",
                              "title": "shipped_quantity",
                              "description": "The detail's shipped quantity."
                            },
                            "return_requested_quantity": {
                              "type": "number",
                              "title": "return_requested_quantity",
                              "description": "The detail's return requested quantity."
                            },
                            "return_received_quantity": {
                              "type": "number",
                              "title": "return_received_quantity",
                              "description": "The detail's return received quantity."
                            },
                            "return_dismissed_quantity": {
                              "type": "number",
                              "title": "return_dismissed_quantity",
                              "description": "The detail's return dismissed quantity."
                            },
                            "written_off_quantity": {
                              "type": "number",
                              "title": "written_off_quantity",
                              "description": "The detail's written off quantity."
                            },
                            "metadata": {
                              "type": "object",
                              "description": "The detail's metadata.",
                              "externalDocs": {
                                "url": "https://docs.medusajs.com/api/store#manage-metadata",
                                "description": "Learn how to manage metadata"
                              }
                            },
                            "created_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "created_at",
                              "description": "The detail's created at."
                            },
                            "updated_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "updated_at",
                              "description": "The detail's updated at."
                            }
                          }
                        },
                        "created_at": {
                          "type": "string",
                          "format": "date-time",
                          "title": "created_at",
                          "description": "The item's created at."
                        },
                        "updated_at": {
                          "type": "string",
                          "format": "date-time",
                          "title": "updated_at",
                          "description": "The item's updated at."
                        },
                        "metadata": {
                          "type": "object",
                          "description": "The item's metadata.",
                          "externalDocs": {
                            "url": "https://docs.medusajs.com/api/store#manage-metadata",
                            "description": "Learn how to manage metadata"
                          }
                        },
                        "original_total": {
                          "type": "number",
                          "title": "original_total",
                          "description": "The item's original total."
                        },
                        "original_subtotal": {
                          "type": "number",
                          "title": "original_subtotal",
                          "description": "The item's original subtotal."
                        },
                        "original_tax_total": {
                          "type": "number",
                          "title": "original_tax_total",
                          "description": "The item's original tax total."
                        },
                        "item_total": {
                          "type": "number",
                          "title": "item_total",
                          "description": "The item's item total."
                        },
                        "item_subtotal": {
                          "type": "number",
                          "title": "item_subtotal",
                          "description": "The item's item subtotal."
                        },
                        "item_tax_total": {
                          "type": "number",
                          "title": "item_tax_total",
                          "description": "The item's item tax total."
                        },
                        "total": {
                          "type": "number",
                          "title": "total",
                          "description": "The item's total."
                        },
                        "subtotal": {
                          "type": "number",
                          "title": "subtotal",
                          "description": "The item's subtotal."
                        },
                        "tax_total": {
                          "type": "number",
                          "title": "tax_total",
                          "description": "The item's tax total."
                        },
                        "discount_total": {
                          "type": "number",
                          "title": "discount_total",
                          "description": "The item's discount total."
                        },
                        "discount_tax_total": {
                          "type": "number",
                          "title": "discount_tax_total",
                          "description": "The item's discount tax total."
                        },
                        "refundable_total": {
                          "type": "number",
                          "title": "refundable_total",
                          "description": "The item's refundable total."
                        },
                        "refundable_total_per_unit": {
                          "type": "number",
                          "title": "refundable_total_per_unit",
                          "description": "The item's refundable total per unit."
                        }
                      }
                    },
                    "item_id": {
                      "type": "string",
                      "title": "item_id",
                      "description": "The adjustment's item id."
                    },
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The adjustment's ID."
                    },
                    "code": {
                      "type": "string",
                      "title": "code",
                      "description": "The adjustment's code."
                    },
                    "amount": {
                      "type": "number",
                      "title": "amount",
                      "description": "The adjustment's amount."
                    },
                    "order_id": {
                      "type": "string",
                      "title": "order_id",
                      "description": "The adjustment's order id."
                    },
                    "description": {
                      "type": "string",
                      "title": "description",
                      "description": "The adjustment's description."
                    },
                    "promotion_id": {
                      "type": "string",
                      "title": "promotion_id",
                      "description": "The adjustment's promotion id."
                    },
                    "provider_id": {
                      "type": "string",
                      "title": "provider_id",
                      "description": "The adjustment's provider id."
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "created_at",
                      "description": "The adjustment's created at."
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "updated_at",
                      "description": "The adjustment's updated at."
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "The adjustment's adjustments.",
                  "required": [
                    "item"
                  ],
                  "properties": {
                    "item": {
                      "type": "object",
                      "description": "The adjustment's item.",
                      "x-schemaName": "StoreOrderLineItem",
                      "required": [
                        "detail",
                        "title",
                        "id",
                        "metadata",
                        "created_at",
                        "updated_at",
                        "item_total",
                        "item_subtotal",
                        "item_tax_total",
                        "original_total",
                        "original_subtotal",
                        "original_tax_total",
                        "total",
                        "subtotal",
                        "tax_total",
                        "discount_total",
                        "discount_tax_total",
                        "subtitle",
                        "thumbnail",
                        "variant_id",
                        "product_id",
                        "product_title",
                        "product_description",
                        "product_subtitle",
                        "product_type",
                        "product_collection",
                        "product_handle",
                        "variant_sku",
                        "variant_barcode",
                        "variant_title",
                        "variant_option_values",
                        "requires_shipping",
                        "is_discountable",
                        "is_tax_inclusive",
                        "unit_price",
                        "quantity",
                        "refundable_total",
                        "refundable_total_per_unit"
                      ],
                      "properties": {
                        "variant": {
                          "type": "object",
                          "description": "The item's variant.",
                          "x-schemaName": "StoreProductVariant",
                          "required": [
                            "options",
                            "length",
                            "title",
                            "id",
                            "created_at",
                            "updated_at",
                            "width",
                            "weight",
                            "height",
                            "origin_country",
                            "hs_code",
                            "mid_code",
                            "material",
                            "deleted_at",
                            "sku",
                            "barcode",
                            "ean",
                            "upc",
                            "allow_backorder",
                            "manage_inventory"
                          ],
                          "properties": {
                            "options": {
                              "type": "array",
                              "description": "The variant's options.",
                              "items": {
                                "type": "object",
                                "description": "The option's options.",
                                "x-schemaName": "StoreProductOptionValue"
                              }
                            },
                            "product": {
                              "type": "object",
                              "description": "The variant's product.",
                              "x-schemaName": "StoreProduct"
                            },
                            "length": {
                              "type": "number",
                              "title": "length",
                              "description": "The variant's length."
                            },
                            "title": {
                              "type": "string",
                              "title": "title",
                              "description": "The variant's title."
                            },
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "The variant's ID."
                            },
                            "metadata": {
                              "type": "object",
                              "description": "The variant's metadata.",
                              "externalDocs": {
                                "url": "https://docs.medusajs.com/api/store#manage-metadata",
                                "description": "Learn how to manage metadata"
                              }
                            },
                            "created_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "created_at",
                              "description": "The variant's created at."
                            },
                            "updated_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "updated_at",
                              "description": "The variant's updated at."
                            },
                            "product_id": {
                              "type": "string",
                              "title": "product_id",
                              "description": "The variant's product id."
                            },
                            "width": {
                              "type": "number",
                              "title": "width",
                              "description": "The variant's width."
                            },
                            "weight": {
                              "type": "number",
                              "title": "weight",
                              "description": "The variant's weight."
                            },
                            "height": {
                              "type": "number",
                              "title": "height",
                              "description": "The variant's height."
                            },
                            "origin_country": {
                              "type": "string",
                              "title": "origin_country",
                              "description": "The variant's origin country."
                            },
                            "hs_code": {
                              "type": "string",
                              "title": "hs_code",
                              "description": "The variant's hs code."
                            },
                            "mid_code": {
                              "type": "string",
                              "title": "mid_code",
                              "description": "The variant's mid code."
                            },
                            "material": {
                              "type": "string",
                              "title": "material",
                              "description": "The variant's material."
                            },
                            "deleted_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "deleted_at",
                              "description": "The variant's deleted at."
                            },
                            "sku": {
                              "type": "string",
                              "title": "sku",
                              "description": "The variant's sku."
                            },
                            "barcode": {
                              "type": "string",
                              "title": "barcode",
                              "description": "The variant's barcode."
                            },
                            "ean": {
                              "type": "string",
                              "title": "ean",
                              "description": "The variant's ean."
                            },
                            "upc": {
                              "type": "string",
                              "title": "upc",
                              "description": "The variant's upc."
                            },
                            "allow_backorder": {
                              "type": "boolean",
                              "title": "allow_backorder",
                              "description": "The variant's allow backorder."
                            },
                            "manage_inventory": {
                              "type": "boolean",
                              "title": "manage_inventory",
                              "description": "The variant's manage inventory."
                            },
                            "inventory_quantity": {
                              "type": "number",
                              "title": "inventory_quantity",
                              "description": "The variant's inventory quantity."
                            },
                            "variant_rank": {
                              "type": "number",
                              "title": "variant_rank",
                              "description": "The variant's variant rank."
                            },
                            "calculated_price": {
                              "type": "object",
                              "description": "The variant's calculated price.",
                              "x-schemaName": "BaseCalculatedPriceSet"
                            }
                          }
                        },
                        "product": {
                          "type": "object",
                          "description": "The item's product.",
                          "x-schemaName": "StoreProduct",
                          "required": [
                            "variants",
                            "options",
                            "images",
                            "length",
                            "title",
                            "status",
                            "description",
                            "id",
                            "created_at",
                            "updated_at",
                            "subtitle",
                            "thumbnail",
                            "handle",
                            "is_giftcard",
                            "width",
                            "weight",
                            "height",
                            "origin_country",
                            "hs_code",
                            "mid_code",
                            "material",
                            "collection_id",
                            "type_id",
                            "discountable",
                            "external_id",
                            "deleted_at"
                          ],
                          "properties": {
                            "collection": {
                              "type": "object",
                              "description": "The product's collection.",
                              "x-schemaName": "StoreCollection"
                            },
                            "categories": {
                              "type": "array",
                              "description": "The product's categories.",
                              "items": {
                                "type": "object",
                                "description": "The category's categories.",
                                "x-schemaName": "StoreProductCategory"
                              }
                            },
                            "variants": {
                              "type": "array",
                              "description": "The product's variants.",
                              "items": {
                                "type": "object",
                                "description": "The variant's variants.",
                                "x-schemaName": "StoreProductVariant"
                              }
                            },
                            "type": {
                              "type": "object",
                              "description": "The product's type.",
                              "x-schemaName": "StoreProduct"
                            },
                            "tags": {
                              "type": "array",
                              "description": "The product's tags.",
                              "items": {
                                "type": "object",
                                "description": "The tag's tags.",
                                "x-schemaName": "StoreProductTag"
                              }
                            },
                            "options": {
                              "type": "array",
                              "description": "The product's options.",
                              "items": {
                                "type": "object",
                                "description": "The option's options.",
                                "x-schemaName": "StoreProductOption"
                              }
                            },
                            "images": {
                              "type": "array",
                              "description": "The product's images.",
                              "items": {
                                "type": "object",
                                "description": "The image's images.",
                                "x-schemaName": "StoreProductImage"
                              }
                            },
                            "length": {
                              "type": "number",
                              "title": "length",
                              "description": "The product's length."
                            },
                            "title": {
                              "type": "string",
                              "title": "title",
                              "description": "The product's title."
                            },
                            "status": {
                              "type": "string",
                              "description": "The product's status.",
                              "enum": [
                                "draft",
                                "proposed",
                                "published",
                                "rejected"
                              ]
                            },
                            "description": {
                              "type": "string",
                              "title": "description",
                              "description": "The product's description."
                            },
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "The product's ID."
                            },
                            "metadata": {
                              "type": "object",
                              "description": "The product's metadata.",
                              "externalDocs": {
                                "url": "https://docs.medusajs.com/api/store#manage-metadata",
                                "description": "Learn how to manage metadata"
                              }
                            },
                            "created_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "created_at",
                              "description": "The product's created at."
                            },
                            "updated_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "updated_at",
                              "description": "The product's updated at."
                            },
                            "subtitle": {
                              "type": "string",
                              "title": "subtitle",
                              "description": "The product's subtitle."
                            },
                            "thumbnail": {
                              "type": "string",
                              "title": "thumbnail",
                              "description": "The product's thumbnail."
                            },
                            "handle": {
                              "type": "string",
                              "title": "handle",
                              "description": "The product's handle."
                            },
                            "is_giftcard": {
                              "type": "boolean",
                              "title": "is_giftcard",
                              "description": "The product's is giftcard."
                            },
                            "width": {
                              "type": "number",
                              "title": "width",
                              "description": "The product's width."
                            },
                            "weight": {
                              "type": "number",
                              "title": "weight",
                              "description": "The product's weight."
                            },
                            "height": {
                              "type": "number",
                              "title": "height",
                              "description": "The product's height."
                            },
                            "origin_country": {
                              "type": "string",
                              "title": "origin_country",
                              "description": "The product's origin country."
                            },
                            "hs_code": {
                              "type": "string",
                              "title": "hs_code",
                              "description": "The product's hs code."
                            },
                            "mid_code": {
                              "type": "string",
                              "title": "mid_code",
                              "description": "The product's mid code."
                            },
                            "material": {
                              "type": "string",
                              "title": "material",
                              "description": "The product's material."
                            },
                            "collection_id": {
                              "type": "string",
                              "title": "collection_id",
                              "description": "The product's collection id."
                            },
                            "type_id": {
                              "type": "string",
                              "title": "type_id",
                              "description": "The product's type id."
                            },
                            "discountable": {
                              "type": "boolean",
                              "title": "discountable",
                              "description": "The product's discountable."
                            },
                            "external_id": {
                              "type": "string",
                              "title": "external_id",
                              "description": "The product's external id."
                            },
                            "deleted_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "deleted_at",
                              "description": "The product's deleted at."
                            }
                          }
                        },
                        "tax_lines": {
                          "type": "array",
                          "description": "The item's tax lines.",
                          "items": {
                            "allOf": [
                              {
                                "type": "object",
                                "description": "The tax line's tax lines.",
                                "x-schemaName": "BaseOrderLineItemTaxLine",
                                "required": [
                                  "item",
                                  "item_id",
                                  "total",
                                  "subtotal",
                                  "id",
                                  "code",
                                  "rate",
                                  "created_at",
                                  "updated_at"
                                ],
                                "properties": {
                                  "item": {
                                    "type": "object",
                                    "description": "The tax line's item.",
                                    "x-schemaName": "BaseOrderLineItem"
                                  },
                                  "item_id": {
                                    "type": "string",
                                    "title": "item_id",
                                    "description": "The tax line's item id."
                                  },
                                  "total": {
                                    "type": "number",
                                    "title": "total",
                                    "description": "The tax line's total."
                                  },
                                  "subtotal": {
                                    "type": "number",
                                    "title": "subtotal",
                                    "description": "The tax line's subtotal."
                                  },
                                  "id": {
                                    "type": "string",
                                    "title": "id",
                                    "description": "The tax line's ID."
                                  },
                                  "description": {
                                    "type": "string",
                                    "title": "description",
                                    "description": "The tax line's description."
                                  },
                                  "tax_rate_id": {
                                    "type": "string",
                                    "title": "tax_rate_id",
                                    "description": "The tax line's tax rate id."
                                  },
                                  "code": {
                                    "type": "string",
                                    "title": "code",
                                    "description": "The tax line's code."
                                  },
                                  "rate": {
                                    "type": "number",
                                    "title": "rate",
                                    "description": "The tax line's rate."
                                  },
                                  "provider_id": {
                                    "type": "string",
                                    "title": "provider_id",
                                    "description": "The tax line's provider id."
                                  },
                                  "created_at": {
                                    "type": "string",
                                    "format": "date-time",
                                    "title": "created_at",
                                    "description": "The tax line's created at."
                                  },
                                  "updated_at": {
                                    "type": "string",
                                    "format": "date-time",
                                    "title": "updated_at",
                                    "description": "The tax line's updated at."
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "description": "The tax line's tax lines.",
                                "required": [
                                  "item"
                                ],
                                "properties": {
                                  "item": {
                                    "type": "object",
                                    "description": "The tax line's item.",
                                    "x-schemaName": "StoreOrderLineItem"
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "adjustments": {
                          "type": "array",
                          "description": "The item's adjustments.",
                          "items": {
                            "allOf": [
                              {
                                "type": "object",
                                "description": "The adjustment's adjustments.",
                                "x-schemaName": "BaseOrderLineItemAdjustment",
                                "required": [
                                  "item",
                                  "item_id",
                                  "id",
                                  "amount",
                                  "order_id",
                                  "created_at",
                                  "updated_at"
                                ],
                                "properties": {
                                  "item": {
                                    "type": "object",
                                    "description": "The adjustment's item.",
                                    "x-schemaName": "BaseOrderLineItem"
                                  },
                                  "item_id": {
                                    "type": "string",
                                    "title": "item_id",
                                    "description": "The adjustment's item id."
                                  },
                                  "id": {
                                    "type": "string",
                                    "title": "id",
                                    "description": "The adjustment's ID."
                                  },
                                  "code": {
                                    "type": "string",
                                    "title": "code",
                                    "description": "The adjustment's code."
                                  },
                                  "amount": {
                                    "type": "number",
                                    "title": "amount",
                                    "description": "The adjustment's amount."
                                  },
                                  "order_id": {
                                    "type": "string",
                                    "title": "order_id",
                                    "description": "The adjustment's order id."
                                  },
                                  "description": {
                                    "type": "string",
                                    "title": "description",
                                    "description": "The adjustment's description."
                                  },
                                  "promotion_id": {
                                    "type": "string",
                                    "title": "promotion_id",
                                    "description": "The adjustment's promotion id."
                                  },
                                  "provider_id": {
                                    "type": "string",
                                    "title": "provider_id",
                                    "description": "The adjustment's provider id."
                                  },
                                  "created_at": {
                                    "type": "string",
                                    "format": "date-time",
                                    "title": "created_at",
                                    "description": "The adjustment's created at."
                                  },
                                  "updated_at": {
                                    "type": "string",
                                    "format": "date-time",
                                    "title": "updated_at",
                                    "description": "The adjustment's updated at."
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "description": "The adjustment's adjustments.",
                                "required": [
                                  "item"
                                ],
                                "properties": {
                                  "item": {
                                    "type": "object",
                                    "description": "The adjustment's item.",
                                    "x-schemaName": "StoreOrderLineItem"
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "detail": {
                          "allOf": [
                            {
                              "type": "object",
                              "description": "The item's detail.",
                              "x-schemaName": "BaseOrderItemDetail",
                              "required": [
                                "id",
                                "item_id",
                                "item",
                                "quantity",
                                "fulfilled_quantity",
                                "delivered_quantity",
                                "shipped_quantity",
                                "return_requested_quantity",
                                "return_received_quantity",
                                "return_dismissed_quantity",
                                "written_off_quantity",
                                "metadata",
                                "created_at",
                                "updated_at"
                              ],
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "title": "id",
                                  "description": "The detail's ID."
                                },
                                "item_id": {
                                  "type": "string",
                                  "title": "item_id",
                                  "description": "The detail's item id."
                                },
                                "item": {
                                  "type": "object",
                                  "description": "The detail's item.",
                                  "x-schemaName": "BaseOrderLineItem"
                                },
                                "quantity": {
                                  "type": "number",
                                  "title": "quantity",
                                  "description": "The detail's quantity."
                                },
                                "fulfilled_quantity": {
                                  "type": "number",
                                  "title": "fulfilled_quantity",
                                  "description": "The detail's fulfilled quantity."
                                },
                                "delivered_quantity": {
                                  "type": "number",
                                  "title": "delivered_quantity",
                                  "description": "The detail's delivered quantity."
                                },
                                "shipped_quantity": {
                                  "type": "number",
                                  "title": "shipped_quantity",
                                  "description": "The detail's shipped quantity."
                                },
                                "return_requested_quantity": {
                                  "type": "number",
                                  "title": "return_requested_quantity",
                                  "description": "The detail's return requested quantity."
                                },
                                "return_received_quantity": {
                                  "type": "number",
                                  "title": "return_received_quantity",
                                  "description": "The detail's return received quantity."
                                },
                                "return_dismissed_quantity": {
                                  "type": "number",
                                  "title": "return_dismissed_quantity",
                                  "description": "The detail's return dismissed quantity."
                                },
                                "written_off_quantity": {
                                  "type": "number",
                                  "title": "written_off_quantity",
                                  "description": "The detail's written off quantity."
                                },
                                "metadata": {
                                  "type": "object",
                                  "description": "The detail's metadata.",
                                  "externalDocs": {
                                    "url": "https://docs.medusajs.com/api/store#manage-metadata",
                                    "description": "Learn how to manage metadata"
                                  }
                                },
                                "created_at": {
                                  "type": "string",
                                  "format": "date-time",
                                  "title": "created_at",
                                  "description": "The detail's created at."
                                },
                                "updated_at": {
                                  "type": "string",
                                  "format": "date-time",
                                  "title": "updated_at",
                                  "description": "The detail's updated at."
                                }
                              }
                            },
                            {
                              "type": "object",
                              "description": "The item's detail.",
                              "required": [
                                "item"
                              ],
                              "properties": {
                                "item": {
                                  "type": "object",
                                  "description": "The detail's item.",
                                  "x-schemaName": "StoreOrderLineItem"
                                }
                              }
                            }
                          ]
                        },
                        "title": {
                          "type": "string",
                          "title": "title",
                          "description": "The item's title."
                        },
                        "id": {
                          "type": "string",
                          "title": "id",
                          "description": "The item's ID."
                        },
                        "metadata": {
                          "type": "object",
                          "description": "The item's metadata.",
                          "externalDocs": {
                            "url": "https://docs.medusajs.com/api/store#manage-metadata",
                            "description": "Learn how to manage metadata"
                          }
                        },
                        "created_at": {
                          "type": "string",
                          "format": "date-time",
                          "title": "created_at",
                          "description": "The item's created at."
                        },
                        "updated_at": {
                          "type": "string",
                          "format": "date-time",
                          "title": "updated_at",
                          "description": "The item's updated at."
                        },
                        "item_total": {
                          "type": "number",
                          "title": "item_total",
                          "description": "The item's item total."
                        },
                        "item_subtotal": {
                          "type": "number",
                          "title": "item_subtotal",
                          "description": "The item's item subtotal."
                        },
                        "item_tax_total": {
                          "type": "number",
                          "title": "item_tax_total",
                          "description": "The item's item tax total."
                        },
                        "original_total": {
                          "type": "number",
                          "title": "original_total",
                          "description": "The item's original total."
                        },
                        "original_subtotal": {
                          "type": "number",
                          "title": "original_subtotal",
                          "description": "The item's original subtotal."
                        },
                        "original_tax_total": {
                          "type": "number",
                          "title": "original_tax_total",
                          "description": "The item's original tax total."
                        },
                        "total": {
                          "type": "number",
                          "title": "total",
                          "description": "The item's total."
                        },
                        "subtotal": {
                          "type": "number",
                          "title": "subtotal",
                          "description": "The item's subtotal."
                        },
                        "tax_total": {
                          "type": "number",
                          "title": "tax_total",
                          "description": "The item's tax total."
                        },
                        "discount_total": {
                          "type": "number",
                          "title": "discount_total",
                          "description": "The item's discount total."
                        },
                        "discount_tax_total": {
                          "type": "number",
                          "title": "discount_tax_total",
                          "description": "The item's discount tax total."
                        },
                        "subtitle": {
                          "type": "string",
                          "title": "subtitle",
                          "description": "The item's subtitle."
                        },
                        "thumbnail": {
                          "type": "string",
                          "title": "thumbnail",
                          "description": "The item's thumbnail."
                        },
                        "variant_id": {
                          "type": "string",
                          "title": "variant_id",
                          "description": "The item's variant id."
                        },
                        "product_id": {
                          "type": "string",
                          "title": "product_id",
                          "description": "The item's product id."
                        },
                        "product_title": {
                          "type": "string",
                          "title": "product_title",
                          "description": "The item's product title."
                        },
                        "product_description": {
                          "type": "string",
                          "title": "product_description",
                          "description": "The item's product description."
                        },
                        "product_subtitle": {
                          "type": "string",
                          "title": "product_subtitle",
                          "description": "The item's product subtitle."
                        },
                        "product_type": {
                          "type": "string",
                          "title": "product_type",
                          "description": "The item's product type."
                        },
                        "product_collection": {
                          "type": "string",
                          "title": "product_collection",
                          "description": "The item's product collection."
                        },
                        "product_handle": {
                          "type": "string",
                          "title": "product_handle",
                          "description": "The item's product handle."
                        },
                        "variant_sku": {
                          "type": "string",
                          "title": "variant_sku",
                          "description": "The item's variant sku."
                        },
                        "variant_barcode": {
                          "type": "string",
                          "title": "variant_barcode",
                          "description": "The item's variant barcode."
                        },
                        "variant_title": {
                          "type": "string",
                          "title": "variant_title",
                          "description": "The item's variant title."
                        },
                        "variant_option_values": {
                          "type": "object",
                          "description": "The item's variant option values."
                        },
                        "requires_shipping": {
                          "type": "boolean",
                          "title": "requires_shipping",
                          "description": "The item's requires shipping."
                        },
                        "is_discountable": {
                          "type": "boolean",
                          "title": "is_discountable",
                          "description": "The item's is discountable."
                        },
                        "is_tax_inclusive": {
                          "type": "boolean",
                          "title": "is_tax_inclusive",
                          "description": "The item's is tax inclusive."
                        },
                        "compare_at_unit_price": {
                          "type": "number",
                          "title": "compare_at_unit_price",
                          "description": "The item's compare at unit price."
                        },
                        "unit_price": {
                          "type": "number",
                          "title": "unit_price",
                          "description": "The item's unit price."
                        },
                        "quantity": {
                          "type": "number",
                          "title": "quantity",
                          "description": "The item's quantity."
                        },
                        "refundable_total": {
                          "type": "number",
                          "title": "refundable_total",
                          "description": "The item's refundable total."
                        },
                        "refundable_total_per_unit": {
                          "type": "number",
                          "title": "refundable_total_per_unit",
                          "description": "The item's refundable total per unit."
                        }
                      }
                    }
                  }
                }
              ],
              "description": "The adjustment's details."
            }
          },
          "detail": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BaseOrderItemDetail"
              },
              {
                "type": "object",
                "description": "The item's detail.",
                "required": [
                  "item"
                ],
                "properties": {
                  "item": {
                    "type": "object",
                    "description": "The detail's item.",
                    "x-schemaName": "StoreOrderLineItem",
                    "required": [
                      "detail",
                      "title",
                      "id",
                      "metadata",
                      "created_at",
                      "updated_at",
                      "item_total",
                      "item_subtotal",
                      "item_tax_total",
                      "original_total",
                      "original_subtotal",
                      "original_tax_total",
                      "total",
                      "subtotal",
                      "tax_total",
                      "discount_total",
                      "discount_tax_total",
                      "subtitle",
                      "thumbnail",
                      "variant_id",
                      "product_id",
                      "product_title",
                      "product_description",
                      "product_subtitle",
                      "product_type",
                      "product_collection",
                      "product_handle",
                      "variant_sku",
                      "variant_barcode",
                      "variant_title",
                      "variant_option_values",
                      "requires_shipping",
                      "is_discountable",
                      "is_tax_inclusive",
                      "unit_price",
                      "quantity",
                      "refundable_total",
                      "refundable_total_per_unit"
                    ],
                    "properties": {
                      "variant": {
                        "type": "object",
                        "description": "The item's variant.",
                        "x-schemaName": "StoreProductVariant",
                        "required": [
                          "options",
                          "length",
                          "title",
                          "id",
                          "created_at",
                          "updated_at",
                          "width",
                          "weight",
                          "height",
                          "origin_country",
                          "hs_code",
                          "mid_code",
                          "material",
                          "deleted_at",
                          "sku",
                          "barcode",
                          "ean",
                          "upc",
                          "allow_backorder",
                          "manage_inventory"
                        ],
                        "properties": {
                          "options": {
                            "type": "array",
                            "description": "The variant's options.",
                            "items": {
                              "type": "object",
                              "description": "The option's options.",
                              "x-schemaName": "StoreProductOptionValue"
                            }
                          },
                          "product": {
                            "type": "object",
                            "description": "The variant's product.",
                            "x-schemaName": "StoreProduct"
                          },
                          "length": {
                            "type": "number",
                            "title": "length",
                            "description": "The variant's length."
                          },
                          "title": {
                            "type": "string",
                            "title": "title",
                            "description": "The variant's title."
                          },
                          "id": {
                            "type": "string",
                            "title": "id",
                            "description": "The variant's ID."
                          },
                          "metadata": {
                            "type": "object",
                            "description": "The variant's metadata.",
                            "externalDocs": {
                              "url": "https://docs.medusajs.com/api/store#manage-metadata",
                              "description": "Learn how to manage metadata"
                            }
                          },
                          "created_at": {
                            "type": "string",
                            "format": "date-time",
                            "title": "created_at",
                            "description": "The variant's created at."
                          },
                          "updated_at": {
                            "type": "string",
                            "format": "date-time",
                            "title": "updated_at",
                            "description": "The variant's updated at."
                          },
                          "product_id": {
                            "type": "string",
                            "title": "product_id",
                            "description": "The variant's product id."
                          },
                          "width": {
                            "type": "number",
                            "title": "width",
                            "description": "The variant's width."
                          },
                          "weight": {
                            "type": "number",
                            "title": "weight",
                            "description": "The variant's weight."
                          },
                          "height": {
                            "type": "number",
                            "title": "height",
                            "description": "The variant's height."
                          },
                          "origin_country": {
                            "type": "string",
                            "title": "origin_country",
                            "description": "The variant's origin country."
                          },
                          "hs_code": {
                            "type": "string",
                            "title": "hs_code",
                            "description": "The variant's hs code."
                          },
                          "mid_code": {
                            "type": "string",
                            "title": "mid_code",
                            "description": "The variant's mid code."
                          },
                          "material": {
                            "type": "string",
                            "title": "material",
                            "description": "The variant's material."
                          },
                          "deleted_at": {
                            "type": "string",
                            "format": "date-time",
                            "title": "deleted_at",
                            "description": "The variant's deleted at."
                          },
                          "sku": {
                            "type": "string",
                            "title": "sku",
                            "description": "The variant's sku."
                          },
                          "barcode": {
                            "type": "string",
                            "title": "barcode",
                            "description": "The variant's barcode."
                          },
                          "ean": {
                            "type": "string",
                            "title": "ean",
                            "description": "The variant's ean."
                          },
                          "upc": {
                            "type": "string",
                            "title": "upc",
                            "description": "The variant's upc."
                          },
                          "allow_backorder": {
                            "type": "boolean",
                            "title": "allow_backorder",
                            "description": "The variant's allow backorder."
                          },
                          "manage_inventory": {
                            "type": "boolean",
                            "title": "manage_inventory",
                            "description": "The variant's manage inventory."
                          },
                          "inventory_quantity": {
                            "type": "number",
                            "title": "inventory_quantity",
                            "description": "The variant's inventory quantity."
                          },
                          "variant_rank": {
                            "type": "number",
                            "title": "variant_rank",
                            "description": "The variant's variant rank."
                          },
                          "calculated_price": {
                            "type": "object",
                            "description": "The variant's calculated price.",
                            "x-schemaName": "BaseCalculatedPriceSet"
                          }
                        }
                      },
                      "product": {
                        "type": "object",
                        "description": "The item's product.",
                        "x-schemaName": "StoreProduct",
                        "required": [
                          "variants",
                          "options",
                          "images",
                          "length",
                          "title",
                          "status",
                          "description",
                          "id",
                          "created_at",
                          "updated_at",
                          "subtitle",
                          "thumbnail",
                          "handle",
                          "is_giftcard",
                          "width",
                          "weight",
                          "height",
                          "origin_country",
                          "hs_code",
                          "mid_code",
                          "material",
                          "collection_id",
                          "type_id",
                          "discountable",
                          "external_id",
                          "deleted_at"
                        ],
                        "properties": {
                          "collection": {
                            "type": "object",
                            "description": "The product's collection.",
                            "x-schemaName": "StoreCollection"
                          },
                          "categories": {
                            "type": "array",
                            "description": "The product's categories.",
                            "items": {
                              "type": "object",
                              "description": "The category's categories.",
                              "x-schemaName": "StoreProductCategory"
                            }
                          },
                          "variants": {
                            "type": "array",
                            "description": "The product's variants.",
                            "items": {
                              "type": "object",
                              "description": "The variant's variants.",
                              "x-schemaName": "StoreProductVariant"
                            }
                          },
                          "type": {
                            "type": "object",
                            "description": "The product's type.",
                            "x-schemaName": "StoreProduct"
                          },
                          "tags": {
                            "type": "array",
                            "description": "The product's tags.",
                            "items": {
                              "type": "object",
                              "description": "The tag's tags.",
                              "x-schemaName": "StoreProductTag"
                            }
                          },
                          "options": {
                            "type": "array",
                            "description": "The product's options.",
                            "items": {
                              "type": "object",
                              "description": "The option's options.",
                              "x-schemaName": "StoreProductOption"
                            }
                          },
                          "images": {
                            "type": "array",
                            "description": "The product's images.",
                            "items": {
                              "type": "object",
                              "description": "The image's images.",
                              "x-schemaName": "StoreProductImage"
                            }
                          },
                          "length": {
                            "type": "number",
                            "title": "length",
                            "description": "The product's length."
                          },
                          "title": {
                            "type": "string",
                            "title": "title",
                            "description": "The product's title."
                          },
                          "status": {
                            "type": "string",
                            "description": "The product's status.",
                            "enum": [
                              "draft",
                              "proposed",
                              "published",
                              "rejected"
                            ]
                          },
                          "description": {
                            "type": "string",
                            "title": "description",
                            "description": "The product's description."
                          },
                          "id": {
                            "type": "string",
                            "title": "id",
                            "description": "The product's ID."
                          },
                          "metadata": {
                            "type": "object",
                            "description": "The product's metadata.",
                            "externalDocs": {
                              "url": "https://docs.medusajs.com/api/store#manage-metadata",
                              "description": "Learn how to manage metadata"
                            }
                          },
                          "created_at": {
                            "type": "string",
                            "format": "date-time",
                            "title": "created_at",
                            "description": "The product's created at."
                          },
                          "updated_at": {
                            "type": "string",
                            "format": "date-time",
                            "title": "updated_at",
                            "description": "The product's updated at."
                          },
                          "subtitle": {
                            "type": "string",
                            "title": "subtitle",
                            "description": "The product's subtitle."
                          },
                          "thumbnail": {
                            "type": "string",
                            "title": "thumbnail",
                            "description": "The product's thumbnail."
                          },
                          "handle": {
                            "type": "string",
                            "title": "handle",
                            "description": "The product's handle."
                          },
                          "is_giftcard": {
                            "type": "boolean",
                            "title": "is_giftcard",
                            "description": "The product's is giftcard."
                          },
                          "width": {
                            "type": "number",
                            "title": "width",
                            "description": "The product's width."
                          },
                          "weight": {
                            "type": "number",
                            "title": "weight",
                            "description": "The product's weight."
                          },
                          "height": {
                            "type": "number",
                            "title": "height",
                            "description": "The product's height."
                          },
                          "origin_country": {
                            "type": "string",
                            "title": "origin_country",
                            "description": "The product's origin country."
                          },
                          "hs_code": {
                            "type": "string",
                            "title": "hs_code",
                            "description": "The product's hs code."
                          },
                          "mid_code": {
                            "type": "string",
                            "title": "mid_code",
                            "description": "The product's mid code."
                          },
                          "material": {
                            "type": "string",
                            "title": "material",
                            "description": "The product's material."
                          },
                          "collection_id": {
                            "type": "string",
                            "title": "collection_id",
                            "description": "The product's collection id."
                          },
                          "type_id": {
                            "type": "string",
                            "title": "type_id",
                            "description": "The product's type id."
                          },
                          "discountable": {
                            "type": "boolean",
                            "title": "discountable",
                            "description": "The product's discountable."
                          },
                          "external_id": {
                            "type": "string",
                            "title": "external_id",
                            "description": "The product's external id."
                          },
                          "deleted_at": {
                            "type": "string",
                            "format": "date-time",
                            "title": "deleted_at",
                            "description": "The product's deleted at."
                          }
                        }
                      },
                      "tax_lines": {
                        "type": "array",
                        "description": "The item's tax lines.",
                        "items": {
                          "allOf": [
                            {
                              "type": "object",
                              "description": "The tax line's tax lines.",
                              "x-schemaName": "BaseOrderLineItemTaxLine",
                              "required": [
                                "item",
                                "item_id",
                                "total",
                                "subtotal",
                                "id",
                                "code",
                                "rate",
                                "created_at",
                                "updated_at"
                              ],
                              "properties": {
                                "item": {
                                  "type": "object",
                                  "description": "The tax line's item.",
                                  "x-schemaName": "BaseOrderLineItem"
                                },
                                "item_id": {
                                  "type": "string",
                                  "title": "item_id",
                                  "description": "The tax line's item id."
                                },
                                "total": {
                                  "type": "number",
                                  "title": "total",
                                  "description": "The tax line's total."
                                },
                                "subtotal": {
                                  "type": "number",
                                  "title": "subtotal",
                                  "description": "The tax line's subtotal."
                                },
                                "id": {
                                  "type": "string",
                                  "title": "id",
                                  "description": "The tax line's ID."
                                },
                                "description": {
                                  "type": "string",
                                  "title": "description",
                                  "description": "The tax line's description."
                                },
                                "tax_rate_id": {
                                  "type": "string",
                                  "title": "tax_rate_id",
                                  "description": "The tax line's tax rate id."
                                },
                                "code": {
                                  "type": "string",
                                  "title": "code",
                                  "description": "The tax line's code."
                                },
                                "rate": {
                                  "type": "number",
                                  "title": "rate",
                                  "description": "The tax line's rate."
                                },
                                "provider_id": {
                                  "type": "string",
                                  "title": "provider_id",
                                  "description": "The tax line's provider id."
                                },
                                "created_at": {
                                  "type": "string",
                                  "format": "date-time",
                                  "title": "created_at",
                                  "description": "The tax line's created at."
                                },
                                "updated_at": {
                                  "type": "string",
                                  "format": "date-time",
                                  "title": "updated_at",
                                  "description": "The tax line's updated at."
                                }
                              }
                            },
                            {
                              "type": "object",
                              "description": "The tax line's tax lines.",
                              "required": [
                                "item"
                              ],
                              "properties": {
                                "item": {
                                  "type": "object",
                                  "description": "The tax line's item.",
                                  "x-schemaName": "StoreOrderLineItem"
                                }
                              }
                            }
                          ]
                        }
                      },
                      "adjustments": {
                        "type": "array",
                        "description": "The item's adjustments.",
                        "items": {
                          "allOf": [
                            {
                              "type": "object",
                              "description": "The adjustment's adjustments.",
                              "x-schemaName": "BaseOrderLineItemAdjustment",
                              "required": [
                                "item",
                                "item_id",
                                "id",
                                "amount",
                                "order_id",
                                "created_at",
                                "updated_at"
                              ],
                              "properties": {
                                "item": {
                                  "type": "object",
                                  "description": "The adjustment's item.",
                                  "x-schemaName": "BaseOrderLineItem"
                                },
                                "item_id": {
                                  "type": "string",
                                  "title": "item_id",
                                  "description": "The adjustment's item id."
                                },
                                "id": {
                                  "type": "string",
                                  "title": "id",
                                  "description": "The adjustment's ID."
                                },
                                "code": {
                                  "type": "string",
                                  "title": "code",
                                  "description": "The adjustment's code."
                                },
                                "amount": {
                                  "type": "number",
                                  "title": "amount",
                                  "description": "The adjustment's amount."
                                },
                                "order_id": {
                                  "type": "string",
                                  "title": "order_id",
                                  "description": "The adjustment's order id."
                                },
                                "description": {
                                  "type": "string",
                                  "title": "description",
                                  "description": "The adjustment's description."
                                },
                                "promotion_id": {
                                  "type": "string",
                                  "title": "promotion_id",
                                  "description": "The adjustment's promotion id."
                                },
                                "provider_id": {
                                  "type": "string",
                                  "title": "provider_id",
                                  "description": "The adjustment's provider id."
                                },
                                "created_at": {
                                  "type": "string",
                                  "format": "date-time",
                                  "title": "created_at",
                                  "description": "The adjustment's created at."
                                },
                                "updated_at": {
                                  "type": "string",
                                  "format": "date-time",
                                  "title": "updated_at",
                                  "description": "The adjustment's updated at."
                                }
                              }
                            },
                            {
                              "type": "object",
                              "description": "The adjustment's adjustments.",
                              "required": [
                                "item"
                              ],
                              "properties": {
                                "item": {
                                  "type": "object",
                                  "description": "The adjustment's item.",
                                  "x-schemaName": "StoreOrderLineItem"
                                }
                              }
                            }
                          ]
                        }
                      },
                      "detail": {
                        "allOf": [
                          {
                            "type": "object",
                            "description": "The item's detail.",
                            "x-schemaName": "BaseOrderItemDetail",
                            "required": [
                              "id",
                              "item_id",
                              "item",
                              "quantity",
                              "fulfilled_quantity",
                              "delivered_quantity",
                              "shipped_quantity",
                              "return_requested_quantity",
                              "return_received_quantity",
                              "return_dismissed_quantity",
                              "written_off_quantity",
                              "metadata",
                              "created_at",
                              "updated_at"
                            ],
                            "properties": {
                              "id": {
                                "type": "string",
                                "title": "id",
                                "description": "The detail's ID."
                              },
                              "item_id": {
                                "type": "string",
                                "title": "item_id",
                                "description": "The detail's item id."
                              },
                              "item": {
                                "type": "object",
                                "description": "The detail's item.",
                                "x-schemaName": "BaseOrderLineItem"
                              },
                              "quantity": {
                                "type": "number",
                                "title": "quantity",
                                "description": "The detail's quantity."
                              },
                              "fulfilled_quantity": {
                                "type": "number",
                                "title": "fulfilled_quantity",
                                "description": "The detail's fulfilled quantity."
                              },
                              "delivered_quantity": {
                                "type": "number",
                                "title": "delivered_quantity",
                                "description": "The detail's delivered quantity."
                              },
                              "shipped_quantity": {
                                "type": "number",
                                "title": "shipped_quantity",
                                "description": "The detail's shipped quantity."
                              },
                              "return_requested_quantity": {
                                "type": "number",
                                "title": "return_requested_quantity",
                                "description": "The detail's return requested quantity."
                              },
                              "return_received_quantity": {
                                "type": "number",
                                "title": "return_received_quantity",
                                "description": "The detail's return received quantity."
                              },
                              "return_dismissed_quantity": {
                                "type": "number",
                                "title": "return_dismissed_quantity",
                                "description": "The detail's return dismissed quantity."
                              },
                              "written_off_quantity": {
                                "type": "number",
                                "title": "written_off_quantity",
                                "description": "The detail's written off quantity."
                              },
                              "metadata": {
                                "type": "object",
                                "description": "The detail's metadata.",
                                "externalDocs": {
                                  "url": "https://docs.medusajs.com/api/store#manage-metadata",
                                  "description": "Learn how to manage metadata"
                                }
                              },
                              "created_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "created_at",
                                "description": "The detail's created at."
                              },
                              "updated_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "updated_at",
                                "description": "The detail's updated at."
                              }
                            }
                          },
                          {
                            "type": "object",
                            "description": "The item's detail.",
                            "required": [
                              "item"
                            ],
                            "properties": {
                              "item": {
                                "type": "object",
                                "description": "The detail's item.",
                                "x-schemaName": "StoreOrderLineItem"
                              }
                            }
                          }
                        ]
                      },
                      "title": {
                        "type": "string",
                        "title": "title",
                        "description": "The item's title."
                      },
                      "id": {
                        "type": "string",
                        "title": "id",
                        "description": "The item's ID."
                      },
                      "metadata": {
                        "type": "object",
                        "description": "The item's metadata.",
                        "externalDocs": {
                          "url": "https://docs.medusajs.com/api/store#manage-metadata",
                          "description": "Learn how to manage metadata"
                        }
                      },
                      "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "title": "created_at",
                        "description": "The item's created at."
                      },
                      "updated_at": {
                        "type": "string",
                        "format": "date-time",
                        "title": "updated_at",
                        "description": "The item's updated at."
                      },
                      "item_total": {
                        "type": "number",
                        "title": "item_total",
                        "description": "The item's item total."
                      },
                      "item_subtotal": {
                        "type": "number",
                        "title": "item_subtotal",
                        "description": "The item's item subtotal."
                      },
                      "item_tax_total": {
                        "type": "number",
                        "title": "item_tax_total",
                        "description": "The item's item tax total."
                      },
                      "original_total": {
                        "type": "number",
                        "title": "original_total",
                        "description": "The item's original total."
                      },
                      "original_subtotal": {
                        "type": "number",
                        "title": "original_subtotal",
                        "description": "The item's original subtotal."
                      },
                      "original_tax_total": {
                        "type": "number",
                        "title": "original_tax_total",
                        "description": "The item's original tax total."
                      },
                      "total": {
                        "type": "number",
                        "title": "total",
                        "description": "The item's total."
                      },
                      "subtotal": {
                        "type": "number",
                        "title": "subtotal",
                        "description": "The item's subtotal."
                      },
                      "tax_total": {
                        "type": "number",
                        "title": "tax_total",
                        "description": "The item's tax total."
                      },
                      "discount_total": {
                        "type": "number",
                        "title": "discount_total",
                        "description": "The item's discount total."
                      },
                      "discount_tax_total": {
                        "type": "number",
                        "title": "discount_tax_total",
                        "description": "The item's discount tax total."
                      },
                      "subtitle": {
                        "type": "string",
                        "title": "subtitle",
                        "description": "The item's subtitle."
                      },
                      "thumbnail": {
                        "type": "string",
                        "title": "thumbnail",
                        "description": "The item's thumbnail."
                      },
                      "variant_id": {
                        "type": "string",
                        "title": "variant_id",
                        "description": "The item's variant id."
                      },
                      "product_id": {
                        "type": "string",
                        "title": "product_id",
                        "description": "The item's product id."
                      },
                      "product_title": {
                        "type": "string",
                        "title": "product_title",
                        "description": "The item's product title."
                      },
                      "product_description": {
                        "type": "string",
                        "title": "product_description",
                        "description": "The item's product description."
                      },
                      "product_subtitle": {
                        "type": "string",
                        "title": "product_subtitle",
                        "description": "The item's product subtitle."
                      },
                      "product_type": {
                        "type": "string",
                        "title": "product_type",
                        "description": "The item's product type."
                      },
                      "product_collection": {
                        "type": "string",
                        "title": "product_collection",
                        "description": "The item's product collection."
                      },
                      "product_handle": {
                        "type": "string",
                        "title": "product_handle",
                        "description": "The item's product handle."
                      },
                      "variant_sku": {
                        "type": "string",
                        "title": "variant_sku",
                        "description": "The item's variant sku."
                      },
                      "variant_barcode": {
                        "type": "string",
                        "title": "variant_barcode",
                        "description": "The item's variant barcode."
                      },
                      "variant_title": {
                        "type": "string",
                        "title": "variant_title",
                        "description": "The item's variant title."
                      },
                      "variant_option_values": {
                        "type": "object",
                        "description": "The item's variant option values."
                      },
                      "requires_shipping": {
                        "type": "boolean",
                        "title": "requires_shipping",
                        "description": "The item's requires shipping."
                      },
                      "is_discountable": {
                        "type": "boolean",
                        "title": "is_discountable",
                        "description": "The item's is discountable."
                      },
                      "is_tax_inclusive": {
                        "type": "boolean",
                        "title": "is_tax_inclusive",
                        "description": "The item's is tax inclusive."
                      },
                      "compare_at_unit_price": {
                        "type": "number",
                        "title": "compare_at_unit_price",
                        "description": "The item's compare at unit price."
                      },
                      "unit_price": {
                        "type": "number",
                        "title": "unit_price",
                        "description": "The item's unit price."
                      },
                      "quantity": {
                        "type": "number",
                        "title": "quantity",
                        "description": "The item's quantity."
                      },
                      "refundable_total": {
                        "type": "number",
                        "title": "refundable_total",
                        "description": "The item's refundable total."
                      },
                      "refundable_total_per_unit": {
                        "type": "number",
                        "title": "refundable_total_per_unit",
                        "description": "The item's refundable total per unit."
                      }
                    }
                  }
                }
              }
            ],
            "description": "The item's detail."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the item was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the item was updated."
          },
          "metadata": {
            "type": "object",
            "description": "The item's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The item's total including taxes, excluding promotions."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The item's total excluding taxes, including promotions."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The total taxes of the item, excluding promotions."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The total taxes of the item, including promotions."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The item's total excluding taxes, including promotions."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The total taxes of the item, including promotions."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The item's total, including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The item's subtotal excluding taxes, including promotions."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The tax total of the item including promotions."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total discount amount of the item."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The total taxes applied on the discounted amount."
          },
          "refundable_total": {
            "type": "number",
            "title": "refundable_total",
            "description": "The total refundable amount of the item's total."
          },
          "refundable_total_per_unit": {
            "type": "number",
            "title": "refundable_total_per_unit",
            "description": "The total refundable amount of the item's total for a single quantity."
          },
          "product_type_id": {
            "type": "string",
            "title": "product_type_id",
            "description": "The ID of the associated product's type."
          }
        }
      },
      "StoreOrderResponse": {
        "type": "object",
        "description": "The order's details.",
        "x-schemaName": "StoreOrderResponse",
        "required": [
          "order"
        ],
        "properties": {
          "order": {
            "$ref": "#/components/schemas/StoreOrder"
          }
        }
      },
      "StoreOrderShippingMethod": {
        "type": "object",
        "description": "The shipping method's details.",
        "x-schemaName": "StoreOrderShippingMethod",
        "required": [
          "id",
          "order_id",
          "name",
          "amount",
          "is_tax_inclusive",
          "shipping_option_id",
          "data",
          "metadata",
          "original_total",
          "original_subtotal",
          "original_tax_total",
          "total",
          "subtotal",
          "tax_total",
          "discount_total",
          "discount_tax_total",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping method's ID."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order the shipping method belongs to."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The shipping method's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The shipping method's description."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The shipping method's amount."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the shipping method's amount includes applied taxes."
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the shipping option this method was created from."
          },
          "data": {
            "type": "object",
            "description": "The shipping method's data, useful for fulfillment provider handling its fulfillment.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The shipping method's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "tax_lines": {
            "type": "array",
            "description": "The shipping method's tax lines.",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "description": "The tax line's tax lines.",
                  "x-schemaName": "BaseOrderShippingMethodTaxLine",
                  "required": [
                    "shipping_method",
                    "shipping_method_id",
                    "total",
                    "subtotal",
                    "id",
                    "code",
                    "rate",
                    "created_at",
                    "updated_at"
                  ],
                  "properties": {
                    "shipping_method": {
                      "type": "object",
                      "description": "The tax line's shipping method.",
                      "x-schemaName": "BaseOrderShippingMethod",
                      "required": [
                        "id",
                        "order_id",
                        "name",
                        "amount",
                        "is_tax_inclusive",
                        "shipping_option_id",
                        "data",
                        "metadata",
                        "original_total",
                        "original_subtotal",
                        "original_tax_total",
                        "total",
                        "subtotal",
                        "tax_total",
                        "discount_total",
                        "discount_tax_total",
                        "created_at",
                        "updated_at"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "title": "id",
                          "description": "The shipping method's ID."
                        },
                        "order_id": {
                          "type": "string",
                          "title": "order_id",
                          "description": "The shipping method's order id."
                        },
                        "name": {
                          "type": "string",
                          "title": "name",
                          "description": "The shipping method's name."
                        },
                        "description": {
                          "type": "string",
                          "title": "description",
                          "description": "The shipping method's description."
                        },
                        "amount": {
                          "type": "number",
                          "title": "amount",
                          "description": "The shipping method's amount."
                        },
                        "is_tax_inclusive": {
                          "type": "boolean",
                          "title": "is_tax_inclusive",
                          "description": "The shipping method's is tax inclusive."
                        },
                        "shipping_option_id": {
                          "type": "string",
                          "title": "shipping_option_id",
                          "description": "The shipping method's shipping option id."
                        },
                        "data": {
                          "type": "object",
                          "description": "The shipping method's data."
                        },
                        "metadata": {
                          "type": "object",
                          "description": "The shipping method's metadata.",
                          "externalDocs": {
                            "url": "https://docs.medusajs.com/api/store#manage-metadata",
                            "description": "Learn how to manage metadata"
                          }
                        },
                        "tax_lines": {
                          "type": "array",
                          "description": "The shipping method's tax lines.",
                          "items": {
                            "type": "object",
                            "description": "The tax line's tax lines.",
                            "x-schemaName": "BaseOrderShippingMethodTaxLine",
                            "required": [
                              "shipping_method",
                              "shipping_method_id",
                              "total",
                              "subtotal",
                              "id",
                              "code",
                              "rate",
                              "created_at",
                              "updated_at"
                            ],
                            "properties": {
                              "shipping_method": {
                                "type": "object",
                                "description": "The tax line's shipping method.",
                                "x-schemaName": "BaseOrderShippingMethod"
                              },
                              "shipping_method_id": {
                                "type": "string",
                                "title": "shipping_method_id",
                                "description": "The tax line's shipping method id."
                              },
                              "total": {
                                "type": "number",
                                "title": "total",
                                "description": "The tax line's total."
                              },
                              "subtotal": {
                                "type": "number",
                                "title": "subtotal",
                                "description": "The tax line's subtotal."
                              },
                              "id": {
                                "type": "string",
                                "title": "id",
                                "description": "The tax line's ID."
                              },
                              "description": {
                                "type": "string",
                                "title": "description",
                                "description": "The tax line's description."
                              },
                              "tax_rate_id": {
                                "type": "string",
                                "title": "tax_rate_id",
                                "description": "The tax line's tax rate id."
                              },
                              "code": {
                                "type": "string",
                                "title": "code",
                                "description": "The tax line's code."
                              },
                              "rate": {
                                "type": "number",
                                "title": "rate",
                                "description": "The tax line's rate."
                              },
                              "provider_id": {
                                "type": "string",
                                "title": "provider_id",
                                "description": "The tax line's provider id."
                              },
                              "created_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "created_at",
                                "description": "The tax line's created at."
                              },
                              "updated_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "updated_at",
                                "description": "The tax line's updated at."
                              }
                            }
                          }
                        },
                        "adjustments": {
                          "type": "array",
                          "description": "The shipping method's adjustments.",
                          "items": {
                            "type": "object",
                            "description": "The adjustment's adjustments.",
                            "x-schemaName": "BaseOrderShippingMethodAdjustment",
                            "required": [
                              "shipping_method",
                              "shipping_method_id",
                              "id",
                              "amount",
                              "order_id",
                              "created_at",
                              "updated_at"
                            ],
                            "properties": {
                              "shipping_method": {
                                "type": "object",
                                "description": "The adjustment's shipping method.",
                                "x-schemaName": "BaseOrderShippingMethod"
                              },
                              "shipping_method_id": {
                                "type": "string",
                                "title": "shipping_method_id",
                                "description": "The adjustment's shipping method id."
                              },
                              "id": {
                                "type": "string",
                                "title": "id",
                                "description": "The adjustment's ID."
                              },
                              "code": {
                                "type": "string",
                                "title": "code",
                                "description": "The adjustment's code."
                              },
                              "amount": {
                                "type": "number",
                                "title": "amount",
                                "description": "The adjustment's amount."
                              },
                              "order_id": {
                                "type": "string",
                                "title": "order_id",
                                "description": "The adjustment's order id."
                              },
                              "description": {
                                "type": "string",
                                "title": "description",
                                "description": "The adjustment's description."
                              },
                              "promotion_id": {
                                "type": "string",
                                "title": "promotion_id",
                                "description": "The adjustment's promotion id."
                              },
                              "provider_id": {
                                "type": "string",
                                "title": "provider_id",
                                "description": "The adjustment's provider id."
                              },
                              "created_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "created_at",
                                "description": "The adjustment's created at."
                              },
                              "updated_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "updated_at",
                                "description": "The adjustment's updated at."
                              }
                            }
                          }
                        },
                        "original_total": {
                          "type": "number",
                          "title": "original_total",
                          "description": "The shipping method's original total."
                        },
                        "original_subtotal": {
                          "type": "number",
                          "title": "original_subtotal",
                          "description": "The shipping method's original subtotal."
                        },
                        "original_tax_total": {
                          "type": "number",
                          "title": "original_tax_total",
                          "description": "The shipping method's original tax total."
                        },
                        "total": {
                          "type": "number",
                          "title": "total",
                          "description": "The shipping method's total."
                        },
                        "detail": {
                          "type": "object",
                          "description": "The shipping method's detail.",
                          "x-schemaName": "BaseOrderShippingDetail",
                          "required": [
                            "id",
                            "shipping_method_id",
                            "shipping_method",
                            "created_at",
                            "updated_at"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "The detail's ID."
                            },
                            "shipping_method_id": {
                              "type": "string",
                              "title": "shipping_method_id",
                              "description": "The detail's shipping method id."
                            },
                            "shipping_method": {
                              "type": "object",
                              "description": "The detail's shipping method.",
                              "x-schemaName": "BaseOrderShippingMethod"
                            },
                            "claim_id": {
                              "type": "string",
                              "title": "claim_id",
                              "description": "The detail's claim id."
                            },
                            "exchange_id": {
                              "type": "string",
                              "title": "exchange_id",
                              "description": "The detail's exchange id."
                            },
                            "return_id": {
                              "type": "string",
                              "title": "return_id",
                              "description": "The detail's return id."
                            },
                            "created_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "created_at",
                              "description": "The detail's created at."
                            },
                            "updated_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "updated_at",
                              "description": "The detail's updated at."
                            }
                          }
                        },
                        "subtotal": {
                          "type": "number",
                          "title": "subtotal",
                          "description": "The shipping method's subtotal."
                        },
                        "tax_total": {
                          "type": "number",
                          "title": "tax_total",
                          "description": "The shipping method's tax total."
                        },
                        "discount_total": {
                          "type": "number",
                          "title": "discount_total",
                          "description": "The shipping method's discount total."
                        },
                        "discount_tax_total": {
                          "type": "number",
                          "title": "discount_tax_total",
                          "description": "The shipping method's discount tax total."
                        },
                        "created_at": {
                          "type": "string",
                          "format": "date-time",
                          "title": "created_at",
                          "description": "The shipping method's created at."
                        },
                        "updated_at": {
                          "type": "string",
                          "format": "date-time",
                          "title": "updated_at",
                          "description": "The shipping method's updated at."
                        }
                      }
                    },
                    "shipping_method_id": {
                      "type": "string",
                      "title": "shipping_method_id",
                      "description": "The tax line's shipping method id."
                    },
                    "total": {
                      "type": "number",
                      "title": "total",
                      "description": "The tax line's total."
                    },
                    "subtotal": {
                      "type": "number",
                      "title": "subtotal",
                      "description": "The tax line's subtotal."
                    },
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The tax line's ID."
                    },
                    "description": {
                      "type": "string",
                      "title": "description",
                      "description": "The tax line's description."
                    },
                    "tax_rate_id": {
                      "type": "string",
                      "title": "tax_rate_id",
                      "description": "The tax line's tax rate id."
                    },
                    "code": {
                      "type": "string",
                      "title": "code",
                      "description": "The tax line's code."
                    },
                    "rate": {
                      "type": "number",
                      "title": "rate",
                      "description": "The tax line's rate."
                    },
                    "provider_id": {
                      "type": "string",
                      "title": "provider_id",
                      "description": "The tax line's provider id."
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "created_at",
                      "description": "The tax line's created at."
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "updated_at",
                      "description": "The tax line's updated at."
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "The tax line's tax lines.",
                  "required": [
                    "shipping_method"
                  ],
                  "properties": {
                    "shipping_method": {
                      "type": "object",
                      "description": "The tax line's shipping method.",
                      "x-schemaName": "StoreOrderShippingMethod",
                      "required": [
                        "id",
                        "order_id",
                        "name",
                        "amount",
                        "is_tax_inclusive",
                        "shipping_option_id",
                        "data",
                        "metadata",
                        "original_total",
                        "original_subtotal",
                        "original_tax_total",
                        "total",
                        "subtotal",
                        "tax_total",
                        "discount_total",
                        "discount_tax_total",
                        "created_at",
                        "updated_at"
                      ],
                      "properties": {
                        "tax_lines": {
                          "type": "array",
                          "description": "The shipping method's tax lines.",
                          "items": {
                            "allOf": [
                              {
                                "type": "object",
                                "description": "The tax line's tax lines.",
                                "x-schemaName": "BaseOrderShippingMethodTaxLine",
                                "required": [
                                  "shipping_method",
                                  "shipping_method_id",
                                  "total",
                                  "subtotal",
                                  "id",
                                  "code",
                                  "rate",
                                  "created_at",
                                  "updated_at"
                                ],
                                "properties": {
                                  "shipping_method": {
                                    "type": "object",
                                    "description": "The tax line's shipping method.",
                                    "x-schemaName": "BaseOrderShippingMethod"
                                  },
                                  "shipping_method_id": {
                                    "type": "string",
                                    "title": "shipping_method_id",
                                    "description": "The tax line's shipping method id."
                                  },
                                  "total": {
                                    "type": "number",
                                    "title": "total",
                                    "description": "The tax line's total."
                                  },
                                  "subtotal": {
                                    "type": "number",
                                    "title": "subtotal",
                                    "description": "The tax line's subtotal."
                                  },
                                  "id": {
                                    "type": "string",
                                    "title": "id",
                                    "description": "The tax line's ID."
                                  },
                                  "description": {
                                    "type": "string",
                                    "title": "description",
                                    "description": "The tax line's description."
                                  },
                                  "tax_rate_id": {
                                    "type": "string",
                                    "title": "tax_rate_id",
                                    "description": "The tax line's tax rate id."
                                  },
                                  "code": {
                                    "type": "string",
                                    "title": "code",
                                    "description": "The tax line's code."
                                  },
                                  "rate": {
                                    "type": "number",
                                    "title": "rate",
                                    "description": "The tax line's rate."
                                  },
                                  "provider_id": {
                                    "type": "string",
                                    "title": "provider_id",
                                    "description": "The tax line's provider id."
                                  },
                                  "created_at": {
                                    "type": "string",
                                    "format": "date-time",
                                    "title": "created_at",
                                    "description": "The tax line's created at."
                                  },
                                  "updated_at": {
                                    "type": "string",
                                    "format": "date-time",
                                    "title": "updated_at",
                                    "description": "The tax line's updated at."
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "description": "The tax line's tax lines.",
                                "required": [
                                  "shipping_method"
                                ],
                                "properties": {
                                  "shipping_method": {
                                    "type": "object",
                                    "description": "The tax line's shipping method.",
                                    "x-schemaName": "StoreOrderShippingMethod"
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "adjustments": {
                          "type": "array",
                          "description": "The shipping method's adjustments.",
                          "items": {
                            "allOf": [
                              {
                                "type": "object",
                                "description": "The adjustment's adjustments.",
                                "x-schemaName": "BaseOrderShippingMethodAdjustment",
                                "required": [
                                  "shipping_method",
                                  "shipping_method_id",
                                  "id",
                                  "amount",
                                  "order_id",
                                  "created_at",
                                  "updated_at"
                                ],
                                "properties": {
                                  "shipping_method": {
                                    "type": "object",
                                    "description": "The adjustment's shipping method.",
                                    "x-schemaName": "BaseOrderShippingMethod"
                                  },
                                  "shipping_method_id": {
                                    "type": "string",
                                    "title": "shipping_method_id",
                                    "description": "The adjustment's shipping method id."
                                  },
                                  "id": {
                                    "type": "string",
                                    "title": "id",
                                    "description": "The adjustment's ID."
                                  },
                                  "code": {
                                    "type": "string",
                                    "title": "code",
                                    "description": "The adjustment's code."
                                  },
                                  "amount": {
                                    "type": "number",
                                    "title": "amount",
                                    "description": "The adjustment's amount."
                                  },
                                  "order_id": {
                                    "type": "string",
                                    "title": "order_id",
                                    "description": "The adjustment's order id."
                                  },
                                  "description": {
                                    "type": "string",
                                    "title": "description",
                                    "description": "The adjustment's description."
                                  },
                                  "promotion_id": {
                                    "type": "string",
                                    "title": "promotion_id",
                                    "description": "The adjustment's promotion id."
                                  },
                                  "provider_id": {
                                    "type": "string",
                                    "title": "provider_id",
                                    "description": "The adjustment's provider id."
                                  },
                                  "created_at": {
                                    "type": "string",
                                    "format": "date-time",
                                    "title": "created_at",
                                    "description": "The adjustment's created at."
                                  },
                                  "updated_at": {
                                    "type": "string",
                                    "format": "date-time",
                                    "title": "updated_at",
                                    "description": "The adjustment's updated at."
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "description": "The adjustment's adjustments.",
                                "required": [
                                  "shipping_method"
                                ],
                                "properties": {
                                  "shipping_method": {
                                    "type": "object",
                                    "description": "The adjustment's shipping method.",
                                    "x-schemaName": "StoreOrderShippingMethod"
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "detail": {
                          "allOf": [
                            {
                              "type": "object",
                              "description": "The shipping method's detail.",
                              "x-schemaName": "BaseOrderShippingDetail",
                              "required": [
                                "id",
                                "shipping_method_id",
                                "shipping_method",
                                "created_at",
                                "updated_at"
                              ],
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "title": "id",
                                  "description": "The detail's ID."
                                },
                                "shipping_method_id": {
                                  "type": "string",
                                  "title": "shipping_method_id",
                                  "description": "The detail's shipping method id."
                                },
                                "shipping_method": {
                                  "type": "object",
                                  "description": "The detail's shipping method.",
                                  "x-schemaName": "BaseOrderShippingMethod"
                                },
                                "claim_id": {
                                  "type": "string",
                                  "title": "claim_id",
                                  "description": "The detail's claim id."
                                },
                                "exchange_id": {
                                  "type": "string",
                                  "title": "exchange_id",
                                  "description": "The detail's exchange id."
                                },
                                "return_id": {
                                  "type": "string",
                                  "title": "return_id",
                                  "description": "The detail's return id."
                                },
                                "created_at": {
                                  "type": "string",
                                  "format": "date-time",
                                  "title": "created_at",
                                  "description": "The detail's created at."
                                },
                                "updated_at": {
                                  "type": "string",
                                  "format": "date-time",
                                  "title": "updated_at",
                                  "description": "The detail's updated at."
                                }
                              }
                            },
                            {
                              "type": "object",
                              "description": "The shipping method's detail.",
                              "required": [
                                "shipping_method"
                              ],
                              "properties": {
                                "shipping_method": {
                                  "type": "object",
                                  "description": "The detail's shipping method.",
                                  "x-schemaName": "StoreOrderShippingMethod"
                                }
                              }
                            }
                          ]
                        },
                        "id": {
                          "type": "string",
                          "title": "id",
                          "description": "The shipping method's ID."
                        },
                        "order_id": {
                          "type": "string",
                          "title": "order_id",
                          "description": "The shipping method's order id."
                        },
                        "name": {
                          "type": "string",
                          "title": "name",
                          "description": "The shipping method's name."
                        },
                        "description": {
                          "type": "string",
                          "title": "description",
                          "description": "The shipping method's description."
                        },
                        "amount": {
                          "type": "number",
                          "title": "amount",
                          "description": "The shipping method's amount."
                        },
                        "is_tax_inclusive": {
                          "type": "boolean",
                          "title": "is_tax_inclusive",
                          "description": "The shipping method's is tax inclusive."
                        },
                        "shipping_option_id": {
                          "type": "string",
                          "title": "shipping_option_id",
                          "description": "The shipping method's shipping option id."
                        },
                        "data": {
                          "type": "object",
                          "description": "The shipping method's data."
                        },
                        "metadata": {
                          "type": "object",
                          "description": "The shipping method's metadata.",
                          "externalDocs": {
                            "url": "https://docs.medusajs.com/api/store#manage-metadata",
                            "description": "Learn how to manage metadata"
                          }
                        },
                        "original_total": {
                          "type": "number",
                          "title": "original_total",
                          "description": "The shipping method's original total."
                        },
                        "original_subtotal": {
                          "type": "number",
                          "title": "original_subtotal",
                          "description": "The shipping method's original subtotal."
                        },
                        "original_tax_total": {
                          "type": "number",
                          "title": "original_tax_total",
                          "description": "The shipping method's original tax total."
                        },
                        "total": {
                          "type": "number",
                          "title": "total",
                          "description": "The shipping method's total."
                        },
                        "subtotal": {
                          "type": "number",
                          "title": "subtotal",
                          "description": "The shipping method's subtotal."
                        },
                        "tax_total": {
                          "type": "number",
                          "title": "tax_total",
                          "description": "The shipping method's tax total."
                        },
                        "discount_total": {
                          "type": "number",
                          "title": "discount_total",
                          "description": "The shipping method's discount total."
                        },
                        "discount_tax_total": {
                          "type": "number",
                          "title": "discount_tax_total",
                          "description": "The shipping method's discount tax total."
                        },
                        "created_at": {
                          "type": "string",
                          "format": "date-time",
                          "title": "created_at",
                          "description": "The shipping method's created at."
                        },
                        "updated_at": {
                          "type": "string",
                          "format": "date-time",
                          "title": "updated_at",
                          "description": "The shipping method's updated at."
                        }
                      }
                    }
                  }
                }
              ],
              "description": "The tax line's details."
            }
          },
          "adjustments": {
            "type": "array",
            "description": "The shipping method's adjustments.",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "description": "The adjustment's adjustments.",
                  "x-schemaName": "BaseOrderShippingMethodAdjustment",
                  "required": [
                    "shipping_method",
                    "shipping_method_id",
                    "id",
                    "amount",
                    "order_id",
                    "created_at",
                    "updated_at"
                  ],
                  "properties": {
                    "shipping_method": {
                      "type": "object",
                      "description": "The adjustment's shipping method.",
                      "x-schemaName": "BaseOrderShippingMethod",
                      "required": [
                        "id",
                        "order_id",
                        "name",
                        "amount",
                        "is_tax_inclusive",
                        "shipping_option_id",
                        "data",
                        "metadata",
                        "original_total",
                        "original_subtotal",
                        "original_tax_total",
                        "total",
                        "subtotal",
                        "tax_total",
                        "discount_total",
                        "discount_tax_total",
                        "created_at",
                        "updated_at"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "title": "id",
                          "description": "The shipping method's ID."
                        },
                        "order_id": {
                          "type": "string",
                          "title": "order_id",
                          "description": "The shipping method's order id."
                        },
                        "name": {
                          "type": "string",
                          "title": "name",
                          "description": "The shipping method's name."
                        },
                        "description": {
                          "type": "string",
                          "title": "description",
                          "description": "The shipping method's description."
                        },
                        "amount": {
                          "type": "number",
                          "title": "amount",
                          "description": "The shipping method's amount."
                        },
                        "is_tax_inclusive": {
                          "type": "boolean",
                          "title": "is_tax_inclusive",
                          "description": "The shipping method's is tax inclusive."
                        },
                        "shipping_option_id": {
                          "type": "string",
                          "title": "shipping_option_id",
                          "description": "The shipping method's shipping option id."
                        },
                        "data": {
                          "type": "object",
                          "description": "The shipping method's data."
                        },
                        "metadata": {
                          "type": "object",
                          "description": "The shipping method's metadata.",
                          "externalDocs": {
                            "url": "https://docs.medusajs.com/api/store#manage-metadata",
                            "description": "Learn how to manage metadata"
                          }
                        },
                        "tax_lines": {
                          "type": "array",
                          "description": "The shipping method's tax lines.",
                          "items": {
                            "type": "object",
                            "description": "The tax line's tax lines.",
                            "x-schemaName": "BaseOrderShippingMethodTaxLine",
                            "required": [
                              "shipping_method",
                              "shipping_method_id",
                              "total",
                              "subtotal",
                              "id",
                              "code",
                              "rate",
                              "created_at",
                              "updated_at"
                            ],
                            "properties": {
                              "shipping_method": {
                                "type": "object",
                                "description": "The tax line's shipping method.",
                                "x-schemaName": "BaseOrderShippingMethod"
                              },
                              "shipping_method_id": {
                                "type": "string",
                                "title": "shipping_method_id",
                                "description": "The tax line's shipping method id."
                              },
                              "total": {
                                "type": "number",
                                "title": "total",
                                "description": "The tax line's total."
                              },
                              "subtotal": {
                                "type": "number",
                                "title": "subtotal",
                                "description": "The tax line's subtotal."
                              },
                              "id": {
                                "type": "string",
                                "title": "id",
                                "description": "The tax line's ID."
                              },
                              "description": {
                                "type": "string",
                                "title": "description",
                                "description": "The tax line's description."
                              },
                              "tax_rate_id": {
                                "type": "string",
                                "title": "tax_rate_id",
                                "description": "The tax line's tax rate id."
                              },
                              "code": {
                                "type": "string",
                                "title": "code",
                                "description": "The tax line's code."
                              },
                              "rate": {
                                "type": "number",
                                "title": "rate",
                                "description": "The tax line's rate."
                              },
                              "provider_id": {
                                "type": "string",
                                "title": "provider_id",
                                "description": "The tax line's provider id."
                              },
                              "created_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "created_at",
                                "description": "The tax line's created at."
                              },
                              "updated_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "updated_at",
                                "description": "The tax line's updated at."
                              }
                            }
                          }
                        },
                        "adjustments": {
                          "type": "array",
                          "description": "The shipping method's adjustments.",
                          "items": {
                            "type": "object",
                            "description": "The adjustment's adjustments.",
                            "x-schemaName": "BaseOrderShippingMethodAdjustment",
                            "required": [
                              "shipping_method",
                              "shipping_method_id",
                              "id",
                              "amount",
                              "order_id",
                              "created_at",
                              "updated_at"
                            ],
                            "properties": {
                              "shipping_method": {
                                "type": "object",
                                "description": "The adjustment's shipping method.",
                                "x-schemaName": "BaseOrderShippingMethod"
                              },
                              "shipping_method_id": {
                                "type": "string",
                                "title": "shipping_method_id",
                                "description": "The adjustment's shipping method id."
                              },
                              "id": {
                                "type": "string",
                                "title": "id",
                                "description": "The adjustment's ID."
                              },
                              "code": {
                                "type": "string",
                                "title": "code",
                                "description": "The adjustment's code."
                              },
                              "amount": {
                                "type": "number",
                                "title": "amount",
                                "description": "The adjustment's amount."
                              },
                              "order_id": {
                                "type": "string",
                                "title": "order_id",
                                "description": "The adjustment's order id."
                              },
                              "description": {
                                "type": "string",
                                "title": "description",
                                "description": "The adjustment's description."
                              },
                              "promotion_id": {
                                "type": "string",
                                "title": "promotion_id",
                                "description": "The adjustment's promotion id."
                              },
                              "provider_id": {
                                "type": "string",
                                "title": "provider_id",
                                "description": "The adjustment's provider id."
                              },
                              "created_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "created_at",
                                "description": "The adjustment's created at."
                              },
                              "updated_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "updated_at",
                                "description": "The adjustment's updated at."
                              }
                            }
                          }
                        },
                        "original_total": {
                          "type": "number",
                          "title": "original_total",
                          "description": "The shipping method's original total."
                        },
                        "original_subtotal": {
                          "type": "number",
                          "title": "original_subtotal",
                          "description": "The shipping method's original subtotal."
                        },
                        "original_tax_total": {
                          "type": "number",
                          "title": "original_tax_total",
                          "description": "The shipping method's original tax total."
                        },
                        "total": {
                          "type": "number",
                          "title": "total",
                          "description": "The shipping method's total."
                        },
                        "detail": {
                          "type": "object",
                          "description": "The shipping method's detail.",
                          "x-schemaName": "BaseOrderShippingDetail",
                          "required": [
                            "id",
                            "shipping_method_id",
                            "shipping_method",
                            "created_at",
                            "updated_at"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "The detail's ID."
                            },
                            "shipping_method_id": {
                              "type": "string",
                              "title": "shipping_method_id",
                              "description": "The detail's shipping method id."
                            },
                            "shipping_method": {
                              "type": "object",
                              "description": "The detail's shipping method.",
                              "x-schemaName": "BaseOrderShippingMethod"
                            },
                            "claim_id": {
                              "type": "string",
                              "title": "claim_id",
                              "description": "The detail's claim id."
                            },
                            "exchange_id": {
                              "type": "string",
                              "title": "exchange_id",
                              "description": "The detail's exchange id."
                            },
                            "return_id": {
                              "type": "string",
                              "title": "return_id",
                              "description": "The detail's return id."
                            },
                            "created_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "created_at",
                              "description": "The detail's created at."
                            },
                            "updated_at": {
                              "type": "string",
                              "format": "date-time",
                              "title": "updated_at",
                              "description": "The detail's updated at."
                            }
                          }
                        },
                        "subtotal": {
                          "type": "number",
                          "title": "subtotal",
                          "description": "The shipping method's subtotal."
                        },
                        "tax_total": {
                          "type": "number",
                          "title": "tax_total",
                          "description": "The shipping method's tax total."
                        },
                        "discount_total": {
                          "type": "number",
                          "title": "discount_total",
                          "description": "The shipping method's discount total."
                        },
                        "discount_tax_total": {
                          "type": "number",
                          "title": "discount_tax_total",
                          "description": "The shipping method's discount tax total."
                        },
                        "created_at": {
                          "type": "string",
                          "format": "date-time",
                          "title": "created_at",
                          "description": "The shipping method's created at."
                        },
                        "updated_at": {
                          "type": "string",
                          "format": "date-time",
                          "title": "updated_at",
                          "description": "The shipping method's updated at."
                        }
                      }
                    },
                    "shipping_method_id": {
                      "type": "string",
                      "title": "shipping_method_id",
                      "description": "The adjustment's shipping method id."
                    },
                    "id": {
                      "type": "string",
                      "title": "id",
                      "description": "The adjustment's ID."
                    },
                    "code": {
                      "type": "string",
                      "title": "code",
                      "description": "The adjustment's code."
                    },
                    "amount": {
                      "type": "number",
                      "title": "amount",
                      "description": "The adjustment's amount."
                    },
                    "order_id": {
                      "type": "string",
                      "title": "order_id",
                      "description": "The adjustment's order id."
                    },
                    "description": {
                      "type": "string",
                      "title": "description",
                      "description": "The adjustment's description."
                    },
                    "promotion_id": {
                      "type": "string",
                      "title": "promotion_id",
                      "description": "The adjustment's promotion id."
                    },
                    "provider_id": {
                      "type": "string",
                      "title": "provider_id",
                      "description": "The adjustment's provider id."
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "created_at",
                      "description": "The adjustment's created at."
                    },
                    "updated_at": {
                      "type": "string",
                      "format": "date-time",
                      "title": "updated_at",
                      "description": "The adjustment's updated at."
                    }
                  }
                },
                {
                  "type": "object",
                  "description": "The adjustment's adjustments.",
                  "required": [
                    "shipping_method"
                  ],
                  "properties": {
                    "shipping_method": {
                      "type": "object",
                      "description": "The adjustment's shipping method.",
                      "x-schemaName": "StoreOrderShippingMethod",
                      "required": [
                        "id",
                        "order_id",
                        "name",
                        "amount",
                        "is_tax_inclusive",
                        "shipping_option_id",
                        "data",
                        "metadata",
                        "original_total",
                        "original_subtotal",
                        "original_tax_total",
                        "total",
                        "subtotal",
                        "tax_total",
                        "discount_total",
                        "discount_tax_total",
                        "created_at",
                        "updated_at"
                      ],
                      "properties": {
                        "tax_lines": {
                          "type": "array",
                          "description": "The shipping method's tax lines.",
                          "items": {
                            "allOf": [
                              {
                                "type": "object",
                                "description": "The tax line's tax lines.",
                                "x-schemaName": "BaseOrderShippingMethodTaxLine",
                                "required": [
                                  "shipping_method",
                                  "shipping_method_id",
                                  "total",
                                  "subtotal",
                                  "id",
                                  "code",
                                  "rate",
                                  "created_at",
                                  "updated_at"
                                ],
                                "properties": {
                                  "shipping_method": {
                                    "type": "object",
                                    "description": "The tax line's shipping method.",
                                    "x-schemaName": "BaseOrderShippingMethod"
                                  },
                                  "shipping_method_id": {
                                    "type": "string",
                                    "title": "shipping_method_id",
                                    "description": "The tax line's shipping method id."
                                  },
                                  "total": {
                                    "type": "number",
                                    "title": "total",
                                    "description": "The tax line's total."
                                  },
                                  "subtotal": {
                                    "type": "number",
                                    "title": "subtotal",
                                    "description": "The tax line's subtotal."
                                  },
                                  "id": {
                                    "type": "string",
                                    "title": "id",
                                    "description": "The tax line's ID."
                                  },
                                  "description": {
                                    "type": "string",
                                    "title": "description",
                                    "description": "The tax line's description."
                                  },
                                  "tax_rate_id": {
                                    "type": "string",
                                    "title": "tax_rate_id",
                                    "description": "The tax line's tax rate id."
                                  },
                                  "code": {
                                    "type": "string",
                                    "title": "code",
                                    "description": "The tax line's code."
                                  },
                                  "rate": {
                                    "type": "number",
                                    "title": "rate",
                                    "description": "The tax line's rate."
                                  },
                                  "provider_id": {
                                    "type": "string",
                                    "title": "provider_id",
                                    "description": "The tax line's provider id."
                                  },
                                  "created_at": {
                                    "type": "string",
                                    "format": "date-time",
                                    "title": "created_at",
                                    "description": "The tax line's created at."
                                  },
                                  "updated_at": {
                                    "type": "string",
                                    "format": "date-time",
                                    "title": "updated_at",
                                    "description": "The tax line's updated at."
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "description": "The tax line's tax lines.",
                                "required": [
                                  "shipping_method"
                                ],
                                "properties": {
                                  "shipping_method": {
                                    "type": "object",
                                    "description": "The tax line's shipping method.",
                                    "x-schemaName": "StoreOrderShippingMethod"
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "adjustments": {
                          "type": "array",
                          "description": "The shipping method's adjustments.",
                          "items": {
                            "allOf": [
                              {
                                "type": "object",
                                "description": "The adjustment's adjustments.",
                                "x-schemaName": "BaseOrderShippingMethodAdjustment",
                                "required": [
                                  "shipping_method",
                                  "shipping_method_id",
                                  "id",
                                  "amount",
                                  "order_id",
                                  "created_at",
                                  "updated_at"
                                ],
                                "properties": {
                                  "shipping_method": {
                                    "type": "object",
                                    "description": "The adjustment's shipping method.",
                                    "x-schemaName": "BaseOrderShippingMethod"
                                  },
                                  "shipping_method_id": {
                                    "type": "string",
                                    "title": "shipping_method_id",
                                    "description": "The adjustment's shipping method id."
                                  },
                                  "id": {
                                    "type": "string",
                                    "title": "id",
                                    "description": "The adjustment's ID."
                                  },
                                  "code": {
                                    "type": "string",
                                    "title": "code",
                                    "description": "The adjustment's code."
                                  },
                                  "amount": {
                                    "type": "number",
                                    "title": "amount",
                                    "description": "The adjustment's amount."
                                  },
                                  "order_id": {
                                    "type": "string",
                                    "title": "order_id",
                                    "description": "The adjustment's order id."
                                  },
                                  "description": {
                                    "type": "string",
                                    "title": "description",
                                    "description": "The adjustment's description."
                                  },
                                  "promotion_id": {
                                    "type": "string",
                                    "title": "promotion_id",
                                    "description": "The adjustment's promotion id."
                                  },
                                  "provider_id": {
                                    "type": "string",
                                    "title": "provider_id",
                                    "description": "The adjustment's provider id."
                                  },
                                  "created_at": {
                                    "type": "string",
                                    "format": "date-time",
                                    "title": "created_at",
                                    "description": "The adjustment's created at."
                                  },
                                  "updated_at": {
                                    "type": "string",
                                    "format": "date-time",
                                    "title": "updated_at",
                                    "description": "The adjustment's updated at."
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "description": "The adjustment's adjustments.",
                                "required": [
                                  "shipping_method"
                                ],
                                "properties": {
                                  "shipping_method": {
                                    "type": "object",
                                    "description": "The adjustment's shipping method.",
                                    "x-schemaName": "StoreOrderShippingMethod"
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "detail": {
                          "allOf": [
                            {
                              "type": "object",
                              "description": "The shipping method's detail.",
                              "x-schemaName": "BaseOrderShippingDetail",
                              "required": [
                                "id",
                                "shipping_method_id",
                                "shipping_method",
                                "created_at",
                                "updated_at"
                              ],
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "title": "id",
                                  "description": "The detail's ID."
                                },
                                "shipping_method_id": {
                                  "type": "string",
                                  "title": "shipping_method_id",
                                  "description": "The detail's shipping method id."
                                },
                                "shipping_method": {
                                  "type": "object",
                                  "description": "The detail's shipping method.",
                                  "x-schemaName": "BaseOrderShippingMethod"
                                },
                                "claim_id": {
                                  "type": "string",
                                  "title": "claim_id",
                                  "description": "The detail's claim id."
                                },
                                "exchange_id": {
                                  "type": "string",
                                  "title": "exchange_id",
                                  "description": "The detail's exchange id."
                                },
                                "return_id": {
                                  "type": "string",
                                  "title": "return_id",
                                  "description": "The detail's return id."
                                },
                                "created_at": {
                                  "type": "string",
                                  "format": "date-time",
                                  "title": "created_at",
                                  "description": "The detail's created at."
                                },
                                "updated_at": {
                                  "type": "string",
                                  "format": "date-time",
                                  "title": "updated_at",
                                  "description": "The detail's updated at."
                                }
                              }
                            },
                            {
                              "type": "object",
                              "description": "The shipping method's detail.",
                              "required": [
                                "shipping_method"
                              ],
                              "properties": {
                                "shipping_method": {
                                  "type": "object",
                                  "description": "The detail's shipping method.",
                                  "x-schemaName": "StoreOrderShippingMethod"
                                }
                              }
                            }
                          ]
                        },
                        "id": {
                          "type": "string",
                          "title": "id",
                          "description": "The shipping method's ID."
                        },
                        "order_id": {
                          "type": "string",
                          "title": "order_id",
                          "description": "The shipping method's order id."
                        },
                        "name": {
                          "type": "string",
                          "title": "name",
                          "description": "The shipping method's name."
                        },
                        "description": {
                          "type": "string",
                          "title": "description",
                          "description": "The shipping method's description."
                        },
                        "amount": {
                          "type": "number",
                          "title": "amount",
                          "description": "The shipping method's amount."
                        },
                        "is_tax_inclusive": {
                          "type": "boolean",
                          "title": "is_tax_inclusive",
                          "description": "The shipping method's is tax inclusive."
                        },
                        "shipping_option_id": {
                          "type": "string",
                          "title": "shipping_option_id",
                          "description": "The shipping method's shipping option id."
                        },
                        "data": {
                          "type": "object",
                          "description": "The shipping method's data."
                        },
                        "metadata": {
                          "type": "object",
                          "description": "The shipping method's metadata.",
                          "externalDocs": {
                            "url": "https://docs.medusajs.com/api/store#manage-metadata",
                            "description": "Learn how to manage metadata"
                          }
                        },
                        "original_total": {
                          "type": "number",
                          "title": "original_total",
                          "description": "The shipping method's original total."
                        },
                        "original_subtotal": {
                          "type": "number",
                          "title": "original_subtotal",
                          "description": "The shipping method's original subtotal."
                        },
                        "original_tax_total": {
                          "type": "number",
                          "title": "original_tax_total",
                          "description": "The shipping method's original tax total."
                        },
                        "total": {
                          "type": "number",
                          "title": "total",
                          "description": "The shipping method's total."
                        },
                        "subtotal": {
                          "type": "number",
                          "title": "subtotal",
                          "description": "The shipping method's subtotal."
                        },
                        "tax_total": {
                          "type": "number",
                          "title": "tax_total",
                          "description": "The shipping method's tax total."
                        },
                        "discount_total": {
                          "type": "number",
                          "title": "discount_total",
                          "description": "The shipping method's discount total."
                        },
                        "discount_tax_total": {
                          "type": "number",
                          "title": "discount_tax_total",
                          "description": "The shipping method's discount tax total."
                        },
                        "created_at": {
                          "type": "string",
                          "format": "date-time",
                          "title": "created_at",
                          "description": "The shipping method's created at."
                        },
                        "updated_at": {
                          "type": "string",
                          "format": "date-time",
                          "title": "updated_at",
                          "description": "The shipping method's updated at."
                        }
                      }
                    }
                  }
                }
              ],
              "description": "The adjustment's adjustments."
            }
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The shipping method's total including taxes, excluding promotions."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The shipping method's total excluding taxes, including promotions."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The shipping method's total taxes excluding promotions."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The shipping method's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The shipping method's total excluding taxes, including promotions."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The shipping method's tax total including promotions."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total discounts applied on the shipping method."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The taxes applied on the discount amount."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the shipping method was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the shipping method was updated."
          },
          "detail": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BaseOrderShippingDetail"
              },
              {
                "type": "object",
                "description": "The shipping method's detail.",
                "required": [
                  "shipping_method"
                ],
                "properties": {
                  "shipping_method": {
                    "type": "object",
                    "description": "The detail's shipping method.",
                    "x-schemaName": "StoreOrderShippingMethod",
                    "required": [
                      "id",
                      "order_id",
                      "name",
                      "amount",
                      "is_tax_inclusive",
                      "shipping_option_id",
                      "data",
                      "metadata",
                      "original_total",
                      "original_subtotal",
                      "original_tax_total",
                      "total",
                      "subtotal",
                      "tax_total",
                      "discount_total",
                      "discount_tax_total",
                      "created_at",
                      "updated_at"
                    ],
                    "properties": {
                      "tax_lines": {
                        "type": "array",
                        "description": "The shipping method's tax lines.",
                        "items": {
                          "allOf": [
                            {
                              "type": "object",
                              "description": "The tax line's tax lines.",
                              "x-schemaName": "BaseOrderShippingMethodTaxLine",
                              "required": [
                                "shipping_method",
                                "shipping_method_id",
                                "total",
                                "subtotal",
                                "id",
                                "code",
                                "rate",
                                "created_at",
                                "updated_at"
                              ],
                              "properties": {
                                "shipping_method": {
                                  "type": "object",
                                  "description": "The tax line's shipping method.",
                                  "x-schemaName": "BaseOrderShippingMethod"
                                },
                                "shipping_method_id": {
                                  "type": "string",
                                  "title": "shipping_method_id",
                                  "description": "The tax line's shipping method id."
                                },
                                "total": {
                                  "type": "number",
                                  "title": "total",
                                  "description": "The tax line's total."
                                },
                                "subtotal": {
                                  "type": "number",
                                  "title": "subtotal",
                                  "description": "The tax line's subtotal."
                                },
                                "id": {
                                  "type": "string",
                                  "title": "id",
                                  "description": "The tax line's ID."
                                },
                                "description": {
                                  "type": "string",
                                  "title": "description",
                                  "description": "The tax line's description."
                                },
                                "tax_rate_id": {
                                  "type": "string",
                                  "title": "tax_rate_id",
                                  "description": "The tax line's tax rate id."
                                },
                                "code": {
                                  "type": "string",
                                  "title": "code",
                                  "description": "The tax line's code."
                                },
                                "rate": {
                                  "type": "number",
                                  "title": "rate",
                                  "description": "The tax line's rate."
                                },
                                "provider_id": {
                                  "type": "string",
                                  "title": "provider_id",
                                  "description": "The tax line's provider id."
                                },
                                "created_at": {
                                  "type": "string",
                                  "format": "date-time",
                                  "title": "created_at",
                                  "description": "The tax line's created at."
                                },
                                "updated_at": {
                                  "type": "string",
                                  "format": "date-time",
                                  "title": "updated_at",
                                  "description": "The tax line's updated at."
                                }
                              }
                            },
                            {
                              "type": "object",
                              "description": "The tax line's tax lines.",
                              "required": [
                                "shipping_method"
                              ],
                              "properties": {
                                "shipping_method": {
                                  "type": "object",
                                  "description": "The tax line's shipping method.",
                                  "x-schemaName": "StoreOrderShippingMethod"
                                }
                              }
                            }
                          ]
                        }
                      },
                      "adjustments": {
                        "type": "array",
                        "description": "The shipping method's adjustments.",
                        "items": {
                          "allOf": [
                            {
                              "type": "object",
                              "description": "The adjustment's adjustments.",
                              "x-schemaName": "BaseOrderShippingMethodAdjustment",
                              "required": [
                                "shipping_method",
                                "shipping_method_id",
                                "id",
                                "amount",
                                "order_id",
                                "created_at",
                                "updated_at"
                              ],
                              "properties": {
                                "shipping_method": {
                                  "type": "object",
                                  "description": "The adjustment's shipping method.",
                                  "x-schemaName": "BaseOrderShippingMethod"
                                },
                                "shipping_method_id": {
                                  "type": "string",
                                  "title": "shipping_method_id",
                                  "description": "The adjustment's shipping method id."
                                },
                                "id": {
                                  "type": "string",
                                  "title": "id",
                                  "description": "The adjustment's ID."
                                },
                                "code": {
                                  "type": "string",
                                  "title": "code",
                                  "description": "The adjustment's code."
                                },
                                "amount": {
                                  "type": "number",
                                  "title": "amount",
                                  "description": "The adjustment's amount."
                                },
                                "order_id": {
                                  "type": "string",
                                  "title": "order_id",
                                  "description": "The adjustment's order id."
                                },
                                "description": {
                                  "type": "string",
                                  "title": "description",
                                  "description": "The adjustment's description."
                                },
                                "promotion_id": {
                                  "type": "string",
                                  "title": "promotion_id",
                                  "description": "The adjustment's promotion id."
                                },
                                "provider_id": {
                                  "type": "string",
                                  "title": "provider_id",
                                  "description": "The adjustment's provider id."
                                },
                                "created_at": {
                                  "type": "string",
                                  "format": "date-time",
                                  "title": "created_at",
                                  "description": "The adjustment's created at."
                                },
                                "updated_at": {
                                  "type": "string",
                                  "format": "date-time",
                                  "title": "updated_at",
                                  "description": "The adjustment's updated at."
                                }
                              }
                            },
                            {
                              "type": "object",
                              "description": "The adjustment's adjustments.",
                              "required": [
                                "shipping_method"
                              ],
                              "properties": {
                                "shipping_method": {
                                  "type": "object",
                                  "description": "The adjustment's shipping method.",
                                  "x-schemaName": "StoreOrderShippingMethod"
                                }
                              }
                            }
                          ]
                        }
                      },
                      "detail": {
                        "allOf": [
                          {
                            "type": "object",
                            "description": "The shipping method's detail.",
                            "x-schemaName": "BaseOrderShippingDetail",
                            "required": [
                              "id",
                              "shipping_method_id",
                              "shipping_method",
                              "created_at",
                              "updated_at"
                            ],
                            "properties": {
                              "id": {
                                "type": "string",
                                "title": "id",
                                "description": "The detail's ID."
                              },
                              "shipping_method_id": {
                                "type": "string",
                                "title": "shipping_method_id",
                                "description": "The detail's shipping method id."
                              },
                              "shipping_method": {
                                "type": "object",
                                "description": "The detail's shipping method.",
                                "x-schemaName": "BaseOrderShippingMethod"
                              },
                              "claim_id": {
                                "type": "string",
                                "title": "claim_id",
                                "description": "The detail's claim id."
                              },
                              "exchange_id": {
                                "type": "string",
                                "title": "exchange_id",
                                "description": "The detail's exchange id."
                              },
                              "return_id": {
                                "type": "string",
                                "title": "return_id",
                                "description": "The detail's return id."
                              },
                              "created_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "created_at",
                                "description": "The detail's created at."
                              },
                              "updated_at": {
                                "type": "string",
                                "format": "date-time",
                                "title": "updated_at",
                                "description": "The detail's updated at."
                              }
                            }
                          },
                          {
                            "type": "object",
                            "description": "The shipping method's detail.",
                            "required": [
                              "shipping_method"
                            ],
                            "properties": {
                              "shipping_method": {
                                "type": "object",
                                "description": "The detail's shipping method.",
                                "x-schemaName": "StoreOrderShippingMethod"
                              }
                            }
                          }
                        ]
                      },
                      "id": {
                        "type": "string",
                        "title": "id",
                        "description": "The shipping method's ID."
                      },
                      "order_id": {
                        "type": "string",
                        "title": "order_id",
                        "description": "The shipping method's order id."
                      },
                      "name": {
                        "type": "string",
                        "title": "name",
                        "description": "The shipping method's name."
                      },
                      "description": {
                        "type": "string",
                        "title": "description",
                        "description": "The shipping method's description."
                      },
                      "amount": {
                        "type": "number",
                        "title": "amount",
                        "description": "The shipping method's amount."
                      },
                      "is_tax_inclusive": {
                        "type": "boolean",
                        "title": "is_tax_inclusive",
                        "description": "The shipping method's is tax inclusive."
                      },
                      "shipping_option_id": {
                        "type": "string",
                        "title": "shipping_option_id",
                        "description": "The shipping method's shipping option id."
                      },
                      "data": {
                        "type": "object",
                        "description": "The shipping method's data."
                      },
                      "metadata": {
                        "type": "object",
                        "description": "The shipping method's metadata.",
                        "externalDocs": {
                          "url": "https://docs.medusajs.com/api/store#manage-metadata",
                          "description": "Learn how to manage metadata"
                        }
                      },
                      "original_total": {
                        "type": "number",
                        "title": "original_total",
                        "description": "The shipping method's original total."
                      },
                      "original_subtotal": {
                        "type": "number",
                        "title": "original_subtotal",
                        "description": "The shipping method's original subtotal."
                      },
                      "original_tax_total": {
                        "type": "number",
                        "title": "original_tax_total",
                        "description": "The shipping method's original tax total."
                      },
                      "total": {
                        "type": "number",
                        "title": "total",
                        "description": "The shipping method's total."
                      },
                      "subtotal": {
                        "type": "number",
                        "title": "subtotal",
                        "description": "The shipping method's subtotal."
                      },
                      "tax_total": {
                        "type": "number",
                        "title": "tax_total",
                        "description": "The shipping method's tax total."
                      },
                      "discount_total": {
                        "type": "number",
                        "title": "discount_total",
                        "description": "The shipping method's discount total."
                      },
                      "discount_tax_total": {
                        "type": "number",
                        "title": "discount_tax_total",
                        "description": "The shipping method's discount tax total."
                      },
                      "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "title": "created_at",
                        "description": "The shipping method's created at."
                      },
                      "updated_at": {
                        "type": "string",
                        "format": "date-time",
                        "title": "updated_at",
                        "description": "The shipping method's updated at."
                      }
                    }
                  }
                }
              }
            ],
            "description": "Details of changes to a shipping method."
          }
        }
      },
      "StorePaymentCollection": {
        "type": "object",
        "description": "The payment collection's details.",
        "x-schemaName": "StorePaymentCollection",
        "required": [
          "payment_providers",
          "id",
          "currency_code",
          "amount",
          "status"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The payment collection's ID."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The payment collection's currency code."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The total amount to be paid."
          },
          "authorized_amount": {
            "type": "number",
            "title": "authorized_amount",
            "description": "The total authorized amount of the collection's payments."
          },
          "captured_amount": {
            "type": "number",
            "title": "captured_amount",
            "description": "The total captured amount of the collection's payments."
          },
          "refunded_amount": {
            "type": "number",
            "title": "refunded_amount",
            "description": "The total refunded amount of the collection's payments."
          },
          "completed_at": {
            "type": "string",
            "format": "date-time",
            "title": "completed_at",
            "description": "The date the payment collection was completed."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the payment collection was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the payment collection was updated."
          },
          "metadata": {
            "type": "object",
            "description": "The payment collection's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "status": {
            "type": "string",
            "description": "The payment collection's status.",
            "enum": [
              "canceled",
              "not_paid",
              "awaiting",
              "authorized",
              "partially_authorized"
            ]
          },
          "payment_providers": {
            "type": "array",
            "description": "The payment provider used to process the collection's payments and sessions.",
            "items": {
              "$ref": "#/components/schemas/StorePaymentProvider"
            }
          },
          "payment_sessions": {
            "type": "array",
            "description": "The payment collection's payment sessions.",
            "items": {
              "$ref": "#/components/schemas/StorePaymentSession"
            }
          },
          "payments": {
            "type": "array",
            "description": "The payment collection's payments.",
            "items": {
              "$ref": "#/components/schemas/BasePayment"
            }
          }
        }
      },
      "StorePaymentCollectionResponse": {
        "type": "object",
        "description": "The payment collection's details.",
        "x-schemaName": "StorePaymentCollectionResponse",
        "required": [
          "payment_collection"
        ],
        "properties": {
          "payment_collection": {
            "$ref": "#/components/schemas/StorePaymentCollection"
          }
        }
      },
      "StorePaymentProvider": {
        "type": "object",
        "description": "The payment provider's details",
        "x-schemaName": "StorePaymentProvider",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The payment provider's ID."
          }
        }
      },
      "StorePaymentSession": {
        "type": "object",
        "description": "The payment session's details.",
        "x-schemaName": "StorePaymentSession",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The payment session's ID."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The payment session's amount."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The payment session's currency code.",
            "example": "usd"
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the payment provider processing this session."
          },
          "data": {
            "type": "object",
            "description": "The payment session's data, useful for the payment provider processing the payment.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/payment/payment-session#data-property"
            }
          },
          "context": {
            "type": "object",
            "description": "The context around the payment, such as the customer's details.",
            "example": {
              "customer": {
                "id": "cus_123"
              }
            }
          },
          "status": {
            "type": "string",
            "description": "The payment session's status.",
            "enum": [
              "authorized",
              "captured",
              "canceled",
              "pending",
              "requires_more",
              "error"
            ]
          },
          "authorized_at": {
            "type": "string",
            "title": "authorized_at",
            "description": "The date the payment session was authorized.",
            "format": "date-time"
          },
          "payment_collection": {
            "type": "object"
          },
          "payment": {
            "$ref": "#/components/schemas/BasePayment"
          }
        },
        "required": [
          "id",
          "amount",
          "currency_code",
          "provider_id",
          "data",
          "status"
        ]
      },
      "StorePrice": {
        "type": "object",
        "description": "The price's details.",
        "x-schemaName": "StorePrice",
        "required": [
          "id",
          "currency_code",
          "amount",
          "min_quantity",
          "max_quantity"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The price's ID."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The price's ISO 2 currency code.",
            "example": "usd"
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The price's amount."
          },
          "min_quantity": {
            "type": "number",
            "title": "min_quantity",
            "description": "The minimum quantity required in the cart for the price to apply."
          },
          "max_quantity": {
            "type": "number",
            "title": "max_quantity",
            "description": "The maximum quantity required in the cart for the price to apply."
          },
          "price_rules": {
            "type": "array",
            "description": "The price's rules.",
            "items": {
              "$ref": "#/components/schemas/StorePriceRule"
            }
          }
        }
      },
      "StorePriceRule": {
        "type": "object",
        "description": "The price rule's details.",
        "x-schemaName": "StorePriceRule",
        "required": [
          "id",
          "attribute",
          "operator",
          "value"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The price rule's ID."
          },
          "attribute": {
            "type": "string",
            "title": "attribute",
            "description": "The price rule's attribute."
          },
          "operator": {
            "type": "string",
            "description": "The price rule's operator.",
            "enum": [
              "gt",
              "lt",
              "eq",
              "lte",
              "gte"
            ]
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The price rule's value."
          }
        }
      },
      "StoreProduct": {
        "type": "object",
        "description": "The product's details.",
        "x-schemaName": "StoreProduct",
        "required": [
          "variants",
          "options",
          "images",
          "length",
          "title",
          "status",
          "description",
          "id",
          "created_at",
          "updated_at",
          "subtitle",
          "thumbnail",
          "handle",
          "is_giftcard",
          "width",
          "weight",
          "height",
          "origin_country",
          "hs_code",
          "mid_code",
          "material",
          "collection_id",
          "type_id",
          "discountable",
          "external_id",
          "deleted_at"
        ],
        "properties": {
          "categories": {
            "type": "array",
            "description": "The product's categories.",
            "items": {
              "type": "object"
            }
          },
          "type": {
            "$ref": "#/components/schemas/StoreProductType"
          },
          "length": {
            "type": "number",
            "title": "length",
            "description": "The product's length."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The product's title."
          },
          "status": {
            "type": "string",
            "description": "The product's status.",
            "enum": [
              "draft",
              "proposed",
              "published",
              "rejected"
            ]
          },
          "options": {
            "type": "array",
            "description": "The product's options.",
            "items": {
              "$ref": "#/components/schemas/StoreProductOption"
            }
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The product's description."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The product's ID."
          },
          "metadata": {
            "type": "object",
            "description": "The product's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the product was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the product was updated."
          },
          "variants": {
            "type": "array",
            "description": "The product's variants.",
            "items": {
              "$ref": "#/components/schemas/StoreProductVariant"
            }
          },
          "handle": {
            "type": "string",
            "title": "handle",
            "description": "The product's handle."
          },
          "subtitle": {
            "type": "string",
            "title": "subtitle",
            "description": "The product's subtitle."
          },
          "is_giftcard": {
            "type": "boolean",
            "title": "is_giftcard",
            "description": "Whether the product is a gift card."
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The product's thumbnail URL."
          },
          "width": {
            "type": "number",
            "title": "width",
            "description": "The product's width."
          },
          "weight": {
            "type": "number",
            "title": "weight",
            "description": "The product's weight."
          },
          "height": {
            "type": "number",
            "title": "height",
            "description": "The product's height."
          },
          "origin_country": {
            "type": "string",
            "title": "origin_country",
            "description": "The product's origin country."
          },
          "hs_code": {
            "type": "string",
            "title": "hs_code",
            "description": "The product's HS code."
          },
          "mid_code": {
            "type": "string",
            "title": "mid_code",
            "description": "The product's MID code."
          },
          "material": {
            "type": "string",
            "title": "material",
            "description": "The product's material."
          },
          "collection": {
            "$ref": "#/components/schemas/StoreCollection"
          },
          "collection_id": {
            "type": "string",
            "title": "collection_id",
            "description": "The ID of the collection that the product belongs to."
          },
          "type_id": {
            "type": "string",
            "title": "type_id",
            "description": "The ID of the product's type."
          },
          "tags": {
            "type": "array",
            "description": "The product's tags.",
            "items": {
              "$ref": "#/components/schemas/StoreProductTag"
            }
          },
          "images": {
            "type": "array",
            "description": "The product's images.",
            "items": {
              "$ref": "#/components/schemas/StoreProductImage"
            }
          },
          "discountable": {
            "type": "boolean",
            "title": "discountable",
            "description": "Whether the product can be discounted."
          },
          "external_id": {
            "type": "string",
            "title": "external_id",
            "description": "The ID of the product in an external service or system."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the product was deleted."
          }
        }
      },
      "StoreProductCategory": {
        "type": "object",
        "description": "The category's details.",
        "x-schemaName": "StoreProductCategory",
        "required": [
          "id",
          "name",
          "description",
          "handle",
          "rank",
          "parent_category_id",
          "parent_category",
          "category_children",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The category's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The category's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The category's description."
          },
          "handle": {
            "type": "string",
            "title": "handle",
            "description": "The category's handle."
          },
          "rank": {
            "type": "number",
            "title": "rank",
            "description": "The category's rank."
          },
          "parent_category_id": {
            "type": "string",
            "title": "parent_category_id",
            "description": "The ID of the category's parent."
          },
          "parent_category": {
            "type": "object"
          },
          "category_children": {
            "type": "array",
            "description": "The category's children.",
            "items": {
              "type": "object"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The category's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the category was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the category was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the category was deleted."
          },
          "products": {
            "type": "array",
            "description": "The category's products.",
            "items": {
              "$ref": "#/components/schemas/StoreProduct"
            }
          }
        }
      },
      "StoreProductCategoryListResponse": {
        "type": "object",
        "description": "The paginated list of product categories.",
        "x-schemaName": "StoreProductCategoryListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "product_categories"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items skipped before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items."
          },
          "product_categories": {
            "type": "array",
            "description": "The list of product categories.",
            "items": {
              "$ref": "#/components/schemas/StoreProductCategory"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "StoreProductCategoryResponse": {
        "type": "object",
        "description": "The product category's details.",
        "x-schemaName": "StoreProductCategoryResponse",
        "required": [
          "product_category"
        ],
        "properties": {
          "product_category": {
            "$ref": "#/components/schemas/StoreProductCategory"
          }
        }
      },
      "StoreProductImage": {
        "type": "object",
        "description": "The image's details.",
        "x-schemaName": "StoreProductImage",
        "required": [
          "id",
          "url",
          "rank"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The image's ID."
          },
          "url": {
            "type": "string",
            "title": "url",
            "description": "The image's URL."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the image was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the image was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the image was deleted."
          },
          "metadata": {
            "type": "object",
            "description": "The image's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "rank": {
            "type": "number",
            "title": "rank",
            "description": "The image's rank among its sibling images"
          }
        }
      },
      "StoreProductListResponse": {
        "type": "object",
        "description": "The paginated list of products.",
        "x-schemaName": "StoreProductListResponse",
        "allOf": [
          {
            "type": "object",
            "description": "Pagination details",
            "required": [
              "limit",
              "offset",
              "count"
            ],
            "properties": {
              "limit": {
                "type": "number",
                "title": "limit",
                "description": "The maximum number of items returned."
              },
              "offset": {
                "type": "number",
                "title": "offset",
                "description": "The number of items skipped before retrieving the returned items."
              },
              "count": {
                "type": "number",
                "title": "count",
                "description": "The total count of items."
              },
              "estimate_count": {
                "type": "number",
                "title": "estimate_count",
                "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
                "x-featureFlag": "index_engine"
              }
            }
          },
          {
            "type": "object",
            "description": "The list of products.",
            "required": [
              "products"
            ],
            "properties": {
              "products": {
                "type": "array",
                "description": "The list of products.",
                "items": {
                  "$ref": "#/components/schemas/StoreProduct"
                }
              }
            }
          }
        ]
      },
      "StoreProductOption": {
        "type": "object",
        "description": "The product option's details.",
        "x-schemaName": "StoreProductOption",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The option's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The option's title."
          },
          "product": {
            "type": "object"
          },
          "product_id": {
            "type": "string",
            "title": "product_id",
            "description": "The ID of the product this option belongs to."
          },
          "values": {
            "type": "array",
            "description": "The option's values.",
            "items": {
              "$ref": "#/components/schemas/StoreProductOptionValue"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The option's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the product option was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the product option was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the product option was deleted."
          }
        },
        "required": [
          "title",
          "id"
        ]
      },
      "StoreProductOptionValue": {
        "type": "object",
        "description": "The product option value's details.",
        "x-schemaName": "StoreProductOptionValue",
        "required": [
          "value",
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The value's ID."
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The value."
          },
          "option": {
            "type": "object"
          },
          "option_id": {
            "type": "string",
            "title": "option_id",
            "description": "The ID of the option this value belongs to."
          },
          "metadata": {
            "type": "object",
            "description": "The value's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the value was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the value was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the value was deleted."
          }
        }
      },
      "StoreProductResponse": {
        "type": "object",
        "description": "The product's details.",
        "x-schemaName": "StoreProductResponse",
        "required": [
          "product"
        ],
        "properties": {
          "product": {
            "$ref": "#/components/schemas/StoreProduct"
          }
        }
      },
      "StoreProductTag": {
        "type": "object",
        "description": "The tag's details.",
        "x-schemaName": "StoreProductTag",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The tag's ID."
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The tag's value."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the tag was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the tag was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the tag was deleted."
          },
          "metadata": {
            "type": "object",
            "description": "The tag's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        },
        "required": [
          "id",
          "value",
          "created_at",
          "updated_at"
        ]
      },
      "StoreProductTagListResponse": {
        "type": "object",
        "description": "The paginated list of product tags.",
        "x-schemaName": "StoreProductTagListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "product_tags"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items to skip before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items available."
          },
          "product_tags": {
            "type": "array",
            "description": "The list of product tags.",
            "items": {
              "$ref": "#/components/schemas/StoreProductTag"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "StoreProductTagResponse": {
        "type": "object",
        "description": "The product tag's details.",
        "x-schemaName": "StoreProductTagResponse",
        "required": [
          "product_tag"
        ],
        "properties": {
          "product_tag": {
            "$ref": "#/components/schemas/StoreProductTag"
          }
        }
      },
      "StoreProductType": {
        "type": "object",
        "description": "The product type's details.",
        "x-schemaName": "StoreProductType",
        "required": [
          "id",
          "value",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The product type's ID."
          },
          "metadata": {
            "type": "object",
            "description": "The product type's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the product type was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the product type was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the product type was deleted."
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The type's value."
          }
        }
      },
      "StoreProductTypeListResponse": {
        "type": "object",
        "description": "The paginated list of product types.",
        "x-schemaName": "StoreProductTypeListResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "product_types"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of items returned."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of items to skip before retrieving the returned items."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of items available."
          },
          "product_types": {
            "type": "array",
            "description": "The list of product types.",
            "items": {
              "$ref": "#/components/schemas/StoreProductType"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "StoreProductTypeResponse": {
        "type": "object",
        "description": "The product type's details.",
        "x-schemaName": "StoreProductTypeResponse",
        "required": [
          "product_type"
        ],
        "properties": {
          "product_type": {
            "$ref": "#/components/schemas/StoreProductType"
          }
        }
      },
      "StoreProductVariant": {
        "type": "object",
        "description": "The variant's details.",
        "x-schemaName": "StoreProductVariant",
        "properties": {
          "options": {
            "type": "array",
            "description": "The variant's options.",
            "items": {
              "$ref": "#/components/schemas/StoreProductOptionValue"
            }
          },
          "product": {
            "type": "object"
          },
          "length": {
            "type": "number",
            "title": "length",
            "description": "The variant's length."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The variant's title."
          },
          "metadata": {
            "type": "object",
            "description": "The variant's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The variant's ID."
          },
          "width": {
            "type": "number",
            "title": "width",
            "description": "The variant's width."
          },
          "weight": {
            "type": "number",
            "title": "weight",
            "description": "The variant's weight."
          },
          "height": {
            "type": "number",
            "title": "height",
            "description": "The variant's height."
          },
          "origin_country": {
            "type": "string",
            "title": "origin_country",
            "description": "The variant's origin country."
          },
          "hs_code": {
            "type": "string",
            "title": "hs_code",
            "description": "The variant's HS code."
          },
          "mid_code": {
            "type": "string",
            "title": "mid_code",
            "description": "The variant's MID code."
          },
          "material": {
            "type": "string",
            "title": "material",
            "description": "The variant's material."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the variant was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the variant was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the variant was deleted."
          },
          "product_id": {
            "type": "string",
            "title": "product_id",
            "description": "The ID of the product this variant belongs to."
          },
          "sku": {
            "type": "string",
            "title": "sku",
            "description": "The variant's SKU."
          },
          "barcode": {
            "type": "string",
            "title": "barcode",
            "description": "The variant's barcode."
          },
          "ean": {
            "type": "string",
            "title": "ean",
            "description": "The variant's EAN."
          },
          "upc": {
            "type": "string",
            "title": "upc",
            "description": "The variant's UPC."
          },
          "allow_backorder": {
            "type": "boolean",
            "title": "allow_backorder",
            "description": "Whether the variant can be ordered even if it's not in stock."
          },
          "manage_inventory": {
            "type": "boolean",
            "title": "manage_inventory",
            "description": "Whether Medusa manages the variant's inventory. If disabled, the variant is always considered in stock.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/storefront-development/products/inventory",
              "description": "Storefront guide: How to retrieve a product variant's inventory details."
            }
          },
          "inventory_quantity": {
            "type": "number",
            "title": "inventory_quantity",
            "description": "The variant's inventory quantity. This property is only available if you pass `+variants.inventory_quantity` in the `fields` query parameter.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/storefront-development/products/inventory",
              "description": "Storefront guide: How to retrieve a product variant's inventory details."
            }
          },
          "variant_rank": {
            "type": "number",
            "title": "variant_rank",
            "description": "The variant's rank among its siblings."
          },
          "calculated_price": {
            "$ref": "#/components/schemas/BaseCalculatedPriceSet"
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The variant's thumbnail."
          },
          "images": {
            "type": "array",
            "description": "The variant's images.",
            "items": {
              "$ref": "#/components/schemas/BaseProductImage"
            }
          }
        },
        "required": [
          "options",
          "title",
          "length",
          "id",
          "created_at",
          "updated_at",
          "thumbnail",
          "width",
          "weight",
          "height",
          "origin_country",
          "hs_code",
          "mid_code",
          "material",
          "images",
          "deleted_at",
          "manage_inventory",
          "allow_backorder",
          "ean",
          "upc",
          "barcode",
          "sku"
        ]
      },
      "StoreRegion": {
        "type": "object",
        "description": "The region's details.",
        "x-schemaName": "StoreRegion",
        "required": [
          "id",
          "name",
          "currency_code"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The region's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The region's name."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The region's currency code.",
            "example": "usd"
          },
          "automatic_taxes": {
            "type": "boolean",
            "title": "automatic_taxes",
            "description": "Whether taxes are calculated automatically during checkout for carts that belong to this region."
          },
          "countries": {
            "type": "array",
            "description": "The region's countries.",
            "items": {
              "$ref": "#/components/schemas/BaseRegionCountry"
            }
          },
          "payment_providers": {
            "type": "array",
            "description": "The region's payment providers.",
            "items": {
              "$ref": "#/components/schemas/AdminPaymentProvider"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The region's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the region was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the region was updated."
          }
        }
      },
      "StoreRegionCountry": {
        "type": "object",
        "description": "The country's details.",
        "x-schemaName": "StoreRegionCountry",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The country's ID."
          },
          "iso_2": {
            "type": "string",
            "title": "iso_2",
            "description": "The country's ISO 2.",
            "example": "us"
          },
          "iso_3": {
            "type": "string",
            "title": "iso_3",
            "description": "The country's ISO 3.",
            "example": "usa"
          },
          "num_code": {
            "type": "string",
            "title": "num_code",
            "description": "The country's num code.",
            "example": 840
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The country's name."
          },
          "display_name": {
            "type": "string",
            "title": "display_name",
            "description": "The country's display name."
          }
        }
      },
      "StoreRemoveGiftCardFromCart": {
        "type": "object",
        "description": "The details to remove a gift card from the cart.",
        "x-schemaName": "StoreRemoveGiftCardFromCart",
        "required": [
          "code"
        ],
        "properties": {
          "code": {
            "type": "string",
            "title": "code",
            "description": "The gift card code to remove from the cart."
          }
        }
      },
      "StoreRequestOrderTransfer": {
        "type": "object",
        "description": "The details of requesting the order transfer.",
        "x-schemaName": "StoreRequestOrderTransfer",
        "properties": {
          "description": {
            "type": "string",
            "title": "description",
            "description": "The transfer's description, which can be shown to the other customer receiving the request."
          }
        }
      },
      "StoreReturn": {
        "type": "object",
        "description": "The return's details.",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The return's ID."
          },
          "status": {
            "type": "string",
            "description": "The return's status.",
            "enum": [
              "canceled",
              "requested",
              "received",
              "partially_received"
            ]
          },
          "refund_amount": {
            "type": "number",
            "title": "refund_amount",
            "description": "The amount refunded by this return."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the associated order."
          },
          "items": {
            "type": "array",
            "description": "The return's items.",
            "items": {
              "$ref": "#/components/schemas/StoreReturnItem"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the return was created."
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date the return was canceled.",
            "format": "date-time"
          },
          "exchange_id": {
            "type": "string",
            "title": "exchange_id",
            "description": "The return's exchange id."
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The return's location id."
          },
          "claim_id": {
            "type": "string",
            "title": "claim_id",
            "description": "The return's claim id."
          },
          "order_version": {
            "type": "number",
            "title": "order_version",
            "description": "The return's order version."
          },
          "display_id": {
            "type": "number",
            "title": "display_id",
            "description": "The return's display id."
          },
          "no_notification": {
            "type": "boolean",
            "title": "no_notification",
            "description": "Whether the customer should receive notifications about the return's updates."
          },
          "received_at": {
            "type": "string",
            "title": "received_at",
            "description": "The date the return was received."
          }
        }
      },
      "StoreReturnItem": {
        "type": "object",
        "description": "The return item's details.",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The return item's ID."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The return item's quantity."
          },
          "received_quantity": {
            "type": "number",
            "title": "received_quantity",
            "description": "The received quantity of the item. This quantity is added to the stocked inventory quantity of the item."
          },
          "damaged_quantity": {
            "type": "number",
            "title": "damaged_quantity",
            "description": "The received damaged quantity of the item, which isn't added to the stocked inventory quantity of the item."
          },
          "reason_id": {
            "type": "string",
            "title": "reason_id",
            "description": "The ID of the return reason associated with the item."
          },
          "note": {
            "type": "string",
            "title": "note",
            "description": "A note about why the item was returned."
          },
          "item_id": {
            "type": "string",
            "title": "item_id",
            "description": "The ID of the associated order item."
          },
          "return_id": {
            "type": "string",
            "title": "return_id",
            "description": "The ID of the return this return item belongs to."
          },
          "metadata": {
            "type": "object",
            "description": "The return item's metadata, can hold custom key-value pairs."
          }
        }
      },
      "StoreReturnReason": {
        "type": "object",
        "description": "The return reason's details.",
        "x-schemaName": "StoreReturnReason",
        "required": [
          "id",
          "value",
          "label",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The return reason's ID."
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The return reason's value."
          },
          "label": {
            "type": "string",
            "title": "label",
            "description": "The return reason's label."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The return reason's description."
          },
          "metadata": {
            "type": "object",
            "description": "The return reason's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the return reason was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the return reason was updated."
          }
        }
      },
      "StoreReturnReasonResponse": {
        "type": "object",
        "description": "The return reason's details.",
        "x-schemaName": "StoreReturnReasonResponse",
        "required": [
          "return_reason"
        ],
        "properties": {
          "return_reason": {
            "$ref": "#/components/schemas/StoreReturnReason"
          }
        }
      },
      "StoreReturnResponse": {
        "type": "object",
        "description": "The return's details.",
        "x-schemaName": "StoreReturnResponse",
        "required": [
          "return"
        ],
        "properties": {
          "return": {
            "$ref": "#/components/schemas/StoreReturn"
          }
        }
      },
      "StoreShippingOption": {
        "type": "object",
        "description": "The shipping option's details.",
        "x-schemaName": "StoreShippingOption",
        "required": [
          "id",
          "name",
          "price_type",
          "service_zone_id",
          "provider_id",
          "provider",
          "shipping_option_type_id",
          "type",
          "shipping_profile_id",
          "amount",
          "is_tax_inclusive",
          "data",
          "metadata"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping option's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The shipping option's name."
          },
          "price_type": {
            "type": "string",
            "description": "The shipping option's price type. If it's `flat`, the price is fixed and is set in the `prices` property. If it's `calculated`, the price is calculated on checkout by the associated fulfillment provider.",
            "enum": [
              "flat",
              "calculated"
            ]
          },
          "service_zone_id": {
            "type": "string",
            "title": "service_zone_id",
            "description": "The ID of the service zone the shipping option belongs to."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the fulfillment provider handling this option."
          },
          "provider": {
            "$ref": "#/components/schemas/BaseFulfillmentProvider"
          },
          "shipping_option_type_id": {
            "type": "string",
            "title": "shipping_option_type_id",
            "description": "The ID of the shipping option's type."
          },
          "type": {
            "$ref": "#/components/schemas/StoreShippingOptionType"
          },
          "shipping_profile_id": {
            "type": "string",
            "title": "shipping_profile_id",
            "description": "The ID of the associated shipping profile."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The shipping option's amount."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the amount includes taxes."
          },
          "data": {
            "type": "object",
            "description": "The shipping option's data, useful for the provider handling fulfillment.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The shipping option's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "StoreShippingOptionListResponse": {
        "type": "object",
        "description": "The list of shipping options.",
        "x-schemaName": "StoreShippingOptionListResponse",
        "required": [
          "shipping_options"
        ],
        "properties": {
          "shipping_options": {
            "type": "array",
            "description": "The list of shipping options.",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/StoreCartShippingOption"
                },
                {
                  "type": "object",
                  "description": "The shipping option's details.",
                  "required": [
                    "service_zone"
                  ],
                  "properties": {
                    "service_zone": {
                      "type": "object",
                      "description": "The shipping option's service zone.",
                      "required": [
                        "id",
                        "fulfillment_set_id",
                        "fulfillment_set"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "title": "id",
                          "description": "The service zone's ID."
                        },
                        "fulfillment_set_id": {
                          "type": "string",
                          "title": "fulfillment_set_id",
                          "description": "The ID of the service zone's fulfillment set."
                        },
                        "fulfillment_set": {
                          "type": "object",
                          "description": "The service zone's fulfillment set.",
                          "required": [
                            "id",
                            "type",
                            "location"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "title": "id",
                              "description": "The fulfillment set's ID."
                            },
                            "type": {
                              "type": "string",
                              "title": "type",
                              "description": "The fulfillment set's type."
                            },
                            "location": {
                              "type": "object",
                              "description": "The fulfillment set's location details.",
                              "required": [
                                "id",
                                "address"
                              ],
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "title": "id",
                                  "description": "The location's ID."
                                },
                                "address": {
                                  "type": "object",
                                  "description": "The location's address.",
                                  "x-schemaName": "StoreFulfillmentAddress",
                                  "required": [
                                    "id",
                                    "company",
                                    "address_1",
                                    "address_2",
                                    "city",
                                    "country_code",
                                    "province",
                                    "postal_code",
                                    "phone",
                                    "metadata",
                                    "created_at",
                                    "updated_at",
                                    "deleted_at"
                                  ],
                                  "properties": {
                                    "id": {
                                      "type": "string",
                                      "title": "id",
                                      "description": "The address's ID."
                                    },
                                    "company": {
                                      "type": "string",
                                      "title": "company",
                                      "description": "The address's company."
                                    },
                                    "address_1": {
                                      "type": "string",
                                      "title": "address_1",
                                      "description": "The first line of the address."
                                    },
                                    "address_2": {
                                      "type": "string",
                                      "title": "address_2",
                                      "description": "The second line of the address."
                                    },
                                    "city": {
                                      "type": "string",
                                      "title": "city",
                                      "description": "The address's city."
                                    },
                                    "country_code": {
                                      "type": "string",
                                      "title": "country_code",
                                      "description": "The address's country code.",
                                      "example": "us"
                                    },
                                    "province": {
                                      "type": "string",
                                      "title": "province",
                                      "description": "The address's province."
                                    },
                                    "postal_code": {
                                      "type": "string",
                                      "title": "postal_code",
                                      "description": "The address's postal code."
                                    },
                                    "phone": {
                                      "type": "string",
                                      "title": "phone",
                                      "description": "The address's phone."
                                    },
                                    "metadata": {
                                      "type": "object",
                                      "description": "The address's metadata. Can hold custom key-value pairs."
                                    },
                                    "created_at": {
                                      "type": "string",
                                      "format": "date-time",
                                      "title": "created_at",
                                      "description": "The date the address was created."
                                    },
                                    "updated_at": {
                                      "type": "string",
                                      "format": "date-time",
                                      "title": "updated_at",
                                      "description": "The date the address was updated."
                                    },
                                    "deleted_at": {
                                      "type": "string",
                                      "format": "date-time",
                                      "title": "deleted_at",
                                      "description": "The date the address was deleted."
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              ],
              "description": "The shipping option's details."
            }
          }
        }
      },
      "StoreShippingOptionResponse": {
        "type": "object",
        "description": "The shipping option's details.",
        "x-schemaName": "StoreShippingOptionResponse",
        "required": [
          "shipping_option"
        ],
        "properties": {
          "shipping_option": {
            "$ref": "#/components/schemas/StoreCartShippingOption"
          }
        }
      },
      "StoreShippingOptionType": {
        "type": "object",
        "description": "The shipping option type's details.",
        "x-schemaName": "StoreShippingOptionType",
        "required": [
          "id",
          "label",
          "description",
          "code",
          "shipping_option_id",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The type's ID."
          },
          "label": {
            "type": "string",
            "title": "label",
            "description": "The type's label."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The type's description."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The type's code."
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the associated shipping option."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the type was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the type was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the type was deleted."
          }
        }
      },
      "StoreStoreCreditAccount": {
        "type": "object",
        "description": "The store credit account's details.",
        "x-schemaName": "StoreStoreCreditAccount",
        "required": [
          "customer",
          "transaction_groups",
          "id",
          "customer_id",
          "currency_code",
          "credits",
          "debits",
          "balance",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "customer": {
            "$ref": "#/components/schemas/StoreCustomer"
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The store credit account's ID."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that the store credit account belongs to."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The store credit account's currency code.",
            "example": "usd"
          },
          "credits": {
            "type": "number",
            "title": "credits",
            "description": "The account's credits."
          },
          "debits": {
            "type": "number",
            "title": "debits",
            "description": "The account's debits."
          },
          "balance": {
            "type": "number",
            "title": "balance",
            "description": "The store credit account's balance."
          },
          "transaction_groups": {
            "type": "array",
            "description": "The store credit account's transaction groups.",
            "items": {
              "$ref": "#/components/schemas/StoreTransactionGroup"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The store credit account's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the store credit account was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the store credit account was updated."
          }
        }
      },
      "StoreStoreCreditAccountResponse": {
        "type": "object",
        "description": "The store credit account's details.",
        "x-schemaName": "StoreStoreCreditAccountResponse",
        "required": [
          "store_credit_account"
        ],
        "properties": {
          "store_credit_account": {
            "$ref": "#/components/schemas/StoreStoreCreditAccount"
          }
        }
      },
      "StoreStoreCreditAccountsResponse": {
        "type": "object",
        "description": "The paginated list of store credit accounts.",
        "x-schemaName": "StoreStoreCreditAccountsResponse",
        "required": [
          "limit",
          "offset",
          "count",
          "store_credit_accounts"
        ],
        "properties": {
          "limit": {
            "type": "number",
            "title": "limit",
            "description": "The maximum number of store credit accounts to return."
          },
          "offset": {
            "type": "number",
            "title": "offset",
            "description": "The number of store credit accounts to skip before retrieving the results."
          },
          "count": {
            "type": "number",
            "title": "count",
            "description": "The total number of store credit accounts available."
          },
          "store_credit_accounts": {
            "type": "array",
            "description": "The list of store credit accounts.",
            "items": {
              "$ref": "#/components/schemas/StoreStoreCreditAccount"
            }
          },
          "estimate_count": {
            "type": "number",
            "title": "estimate_count",
            "description": "The store credit account's estimate count.",
            "x-featureFlag": "index_engine"
          }
        }
      },
      "StoreTransactionGroup": {
        "type": "object",
        "description": "The transaction group's details.",
        "required": [
          "account",
          "id",
          "code",
          "credits",
          "debits",
          "balance",
          "metadata"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The transaction group's ID."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The transaction group's code."
          },
          "credits": {
            "type": "number",
            "title": "credits",
            "description": "The transaction group's credits."
          },
          "debits": {
            "type": "number",
            "title": "debits",
            "description": "The transaction group's debits."
          },
          "balance": {
            "type": "number",
            "title": "balance",
            "description": "The transaction group's balance."
          },
          "account": {
            "type": "object"
          },
          "metadata": {
            "type": "object",
            "description": "The transaction group's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        },
        "x-schemaName": "StoreTransactionGroup"
      },
      "StoreUpdateCustomer": {
        "type": "object",
        "description": "The details to update in the customer.",
        "x-schemaName": "StoreUpdateCustomer",
        "properties": {
          "company_name": {
            "type": "string",
            "title": "company_name",
            "description": "The customer's company name."
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The customer's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The customer's last name."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The customer's phone."
          },
          "metadata": {
            "type": "object",
            "description": "The customer's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "StoreUpdateCustomerAddress": {
        "type": "object",
        "description": "The properties to update in the address.",
        "properties": {
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The customer's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The customer's last name."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The customer's phone."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The address's company."
          },
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The address's second line."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The address's city."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The address's country code."
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The address's ISO 3166-2 province code. Must be lower-case.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The address's postal code."
          },
          "address_name": {
            "type": "string",
            "title": "address_name",
            "description": "The address's name."
          },
          "is_default_shipping": {
            "type": "boolean",
            "title": "is_default_shipping",
            "description": "Whether the address is used by default for shipping during checkout."
          },
          "is_default_billing": {
            "type": "boolean",
            "title": "is_default_billing",
            "description": "Whether the address is used by default for billing during checkout."
          },
          "metadata": {
            "type": "object",
            "description": "Holds custom key-value pairs."
          }
        },
        "x-schemaName": "StoreUpdateCustomerAddress"
      },
      "UpdateAddress": {
        "type": "object",
        "description": "The details to update in the address.",
        "x-schemaName": "UpdateAddress",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The ID of an existing address to update."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that this address belongs to."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The address's company."
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The address's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The address's last name."
          },
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The address's second line."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The address's city."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The address's country code.",
            "example": "usd"
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The address's ISO 3166-2 province code. Must be lower-case.",
            "example": "us-ca",
            "externalDocs": {
              "url": "https://en.wikipedia.org/wiki/ISO_3166-2",
              "description": "Learn more about ISO 3166-2"
            }
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The address's postal code."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The address's phone."
          },
          "metadata": {
            "type": "object",
            "description": "The address's metadata, can hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "UpdateCartData": {
        "type": "object",
        "description": "The details to update in a cart.",
        "x-schemaName": "UpdateCartData",
        "properties": {
          "region_id": {
            "type": "string",
            "title": "region_id",
            "description": "The ID of the associated region. This can affect the prices and currency code of the cart."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that the cart belongs to."
          },
          "sales_channel_id": {
            "type": "string",
            "title": "sales_channel_id",
            "description": "The ID of the associated sales channel. Only products available in this channel can be added to the cart."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The email of the customer that the cart belongs to.",
            "format": "email"
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The cart's currency code.",
            "example": "usd"
          },
          "shipping_address_id": {
            "type": "string",
            "title": "shipping_address_id",
            "description": "The ID of the cart's shipping address."
          },
          "billing_address_id": {
            "type": "string",
            "title": "billing_address_id",
            "description": "The ID of the cart's billing address."
          },
          "billing_address": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateAddress"
              },
              {
                "$ref": "#/components/schemas/UpdateAddress"
              }
            ]
          },
          "shipping_address": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateAddress"
              },
              {
                "$ref": "#/components/schemas/UpdateAddress"
              }
            ]
          },
          "metadata": {
            "type": "object",
            "description": "The cart's metadata, ca hold custom key-value pairs.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/api/store#manage-metadata",
              "description": "Learn how to manage metadata"
            }
          }
        }
      },
      "WorkflowExecutionContext": {
        "type": "object",
        "description": "The workflow execution's context.",
        "x-schemaName": "WorkflowExecutionContext",
        "required": [
          "compensate",
          "errors"
        ],
        "properties": {
          "data": {
            "type": "object",
            "description": "The context's data.",
            "properties": {
              "invoke": {
                "type": "object",
                "description": "The step's invokation details.",
                "required": [
                  "output"
                ],
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "output": {
                      "type": "object",
                      "description": "The invokation's details.",
                      "required": [
                        "output",
                        "compensateInput"
                      ],
                      "properties": {
                        "output": {
                          "description": "the step's output"
                        },
                        "compensateInput": {
                          "description": "the compensation function's input."
                        }
                      }
                    }
                  }
                }
              },
              "payload": {
                "description": "the payload of the transaction."
              }
            },
            "required": [
              "invoke"
            ]
          },
          "compensate": {
            "type": "object",
            "description": "The context's compensate."
          },
          "errors": {
            "type": "array",
            "description": "The context's errors.",
            "items": {
              "type": "object",
              "description": "The error's details.",
              "properties": {
                "error": {
                  "type": "object",
                  "description": "The error's details."
                },
                "action": {
                  "type": "string",
                  "title": "action",
                  "description": "The error's action."
                },
                "handlerType": {
                  "type": "string",
                  "title": "handlerType",
                  "description": "The error's handler type."
                }
              },
              "required": [
                "error",
                "action",
                "handlerType"
              ]
            }
          }
        }
      },
      "AdminCommissionAggregate": {
        "title": "CommissionAggregate",
        "description": "Commission aggregate object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier."
          },
          "name": {
            "type": "string",
            "description": "Commission rule name."
          },
          "type": {
            "type": "string",
            "enum": [
              "flat",
              "percentage"
            ],
            "description": "Commission rate type."
          },
          "reference": {
            "type": "string",
            "description": "Rule reference type"
          },
          "reference_id": {
            "type": "string",
            "description": "Rule reference id"
          },
          "is_active": {
            "type": "boolean",
            "description": "Indicates if rule is active."
          },
          "include_tax": {
            "type": "boolean",
            "description": "Indicates if rate is calculated including tax."
          },
          "percentage_rate": {
            "type": "number",
            "description": "Percent of commission."
          },
          "price_set_id": {
            "type": "string",
            "description": "Flat rate price set id"
          },
          "price_set": {
            "type": "array",
            "description": "Flat rate price set",
            "items": {
              "$ref": "#/components/schemas/AdminCommissionPriceValue"
            }
          },
          "min_price_set_id": {
            "type": "string",
            "description": "Min price set id"
          },
          "min_price_set": {
            "type": "array",
            "description": "Min price set",
            "items": {
              "$ref": "#/components/schemas/AdminCommissionPriceValue"
            }
          },
          "max_price_set_id": {
            "type": "string",
            "description": "Max price set id"
          },
          "max_price_set": {
            "type": "array",
            "description": "Max price set",
            "items": {
              "$ref": "#/components/schemas/AdminCommissionPriceValue"
            }
          },
          "ref_value": {
            "type": "string",
            "description": "Aggregated reference value"
          },
          "fee_value": {
            "type": "string",
            "description": "Aggregated fee value"
          }
        }
      },
      "AdminCommissionLine": {
        "title": "CommissionLine",
        "description": "Commission line object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the commission line."
          },
          "item_line_id": {
            "type": "string",
            "description": "The ID of the order item line this commission applies to."
          },
          "rule_id": {
            "type": "string",
            "description": "The ID of the commission rule that generated this line."
          },
          "currency_code": {
            "type": "string",
            "description": "The currency code for the commission value."
          },
          "value": {
            "type": "number",
            "description": "The commission amount."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "order": {
            "type": "object",
            "description": "The order associated with this commission line (when expanded)."
          },
          "rule": {
            "type": "object",
            "description": "The commission rule associated with this line (when expanded)."
          }
        }
      },
      "AdminCommissionPriceValue": {
        "title": "AdminCommissionPriceValue",
        "description": "Commission price value",
        "required": [
          "amount",
          "currency_code"
        ],
        "properties": {
          "amount": {
            "type": "number"
          },
          "currency_code": {
            "type": "string"
          }
        }
      },
      "AdminCommissionRate": {
        "title": "CommissionRate",
        "description": "Commission rate object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier."
          },
          "type": {
            "type": "string",
            "enum": [
              "flat",
              "percentage"
            ],
            "description": "Commission rate type."
          },
          "percentage_rate": {
            "type": "number",
            "description": "Percent of commission."
          },
          "include_tax": {
            "type": "boolean",
            "description": "Indicates if rate is calculated including tax."
          },
          "price_set_id": {
            "type": "string",
            "description": "Flat commission value."
          },
          "min_price_set_id": {
            "type": "string",
            "description": "Min commission value."
          },
          "max_price_set_id": {
            "type": "string",
            "description": "Max commission value."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          }
        }
      },
      "AdminCommissionRatePrice": {
        "type": "object",
        "properties": {
          "currency_code": {
            "type": "string",
            "description": "Currency of the price."
          },
          "amount": {
            "type": "number",
            "description": "The subtitle of the product."
          }
        }
      },
      "AdminCommissionRule": {
        "title": "CommissionRule",
        "description": "Commission rule object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier."
          },
          "name": {
            "type": "string",
            "description": "Commission rule name."
          },
          "reference": {
            "type": "string",
            "description": "Rule reference type"
          },
          "reference_id": {
            "type": "string",
            "description": "Rule reference id"
          },
          "is_active": {
            "type": "boolean",
            "description": "Indicates if rule is active."
          },
          "rate": {
            "$ref": "#/components/schemas/AdminCommissionRate"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          }
        }
      },
      "AdminCreateCommissionRate": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "flat",
              "percentage"
            ],
            "description": "Rate type."
          },
          "percentage_rate": {
            "type": "number",
            "description": "The subtitle of the product."
          },
          "include_tax": {
            "type": "boolean",
            "description": "The description of the product."
          },
          "price_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdminCommissionRatePrice"
            }
          },
          "min_price_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdminCommissionRatePrice"
            }
          },
          "max_price_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdminCommissionRatePrice"
            }
          }
        }
      },
      "AdminCreateCommissionRule": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Commission rule name."
          },
          "reference": {
            "type": "string",
            "description": "Rule reference type"
          },
          "reference_id": {
            "type": "string",
            "description": "Rule reference id"
          },
          "is_active": {
            "type": "boolean",
            "description": "Indicates if rule is active."
          },
          "rate": {
            "$ref": "#/components/schemas/AdminCreateCommissionRate"
          }
        }
      },
      "AdminCreateRule": {
        "type": "object",
        "properties": {
          "rule_type": {
            "type": "string",
            "description": "The type of the rule",
            "enum": [
              "global_product_catalog",
              "require_product_approval",
              "product_request_enabled",
              "product_import_enabled"
            ]
          },
          "is_enabled": {
            "type": "boolean"
          }
        }
      },
      "AdminOrderReturnRequest": {
        "title": "Order return request",
        "description": "A return request object with its properties",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the order return request."
          },
          "customer_id": {
            "type": "string",
            "description": "The id of the submitter"
          },
          "customer_note": {
            "type": "string",
            "description": "Note from the submitter"
          },
          "vendor_reviewer_id": {
            "type": "string",
            "description": "The id of the vendor reviewer"
          },
          "vendor_reviewer_note": {
            "type": "string",
            "description": "Note from the vendor reviewer"
          },
          "vendor_reviewer_date": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone of the vendor review"
          },
          "admin_reviewer_id": {
            "type": "string",
            "description": "The id of the admin reviewer"
          },
          "admin_reviewer_note": {
            "type": "string",
            "description": "Note from the admin reviewer"
          },
          "admin_reviewer_date": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone of the admin review"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "refunded",
              "withdrawn",
              "escalated",
              "canceled"
            ]
          },
          "order": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "customer": {
                "type": "object",
                "properties": {
                  "first_name": {
                    "type": "string"
                  },
                  "last_name": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "seller": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          },
          "line_items": {
            "type": "array",
            "description": "The line items to return.",
            "items": {
              "$ref": "#/components/schemas/OrderReturnRequestLineItem"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          }
        }
      },
      "AdminOrderSet": {
        "title": "OrderSet",
        "description": "Order set object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the order set."
          },
          "display_id": {
            "type": "number",
            "description": "The display ID of the order set."
          },
          "customer_id": {
            "type": "string",
            "description": "The ID of the customer associated with the order set."
          },
          "cart_id": {
            "type": "string",
            "description": "The ID of the cart associated with the order set."
          },
          "sales_channel_id": {
            "type": "string",
            "description": "The ID of the sales channel associated with the order set."
          },
          "payment_collection_id": {
            "type": "string",
            "description": "The ID of the payment collection associated with the order set."
          },
          "status": {
            "type": "string",
            "description": "The status of the order set.",
            "enum": [
              "pending",
              "completed",
              "canceled",
              "archived"
            ]
          },
          "payment_status": {
            "type": "string",
            "description": "The payment status of the order set.",
            "enum": [
              "awaiting",
              "not_paid",
              "captured",
              "partially_refunded",
              "refunded",
              "canceled",
              "requires_action"
            ]
          },
          "fulfillment_status": {
            "type": "string",
            "description": "The fulfillment status of the order set.",
            "enum": [
              "not_fulfilled",
              "fulfilled",
              "partially_fulfilled",
              "shipped",
              "partially_shipped",
              "delivered",
              "partially_delivered",
              "canceled"
            ]
          },
          "total": {
            "type": "number",
            "description": "The total amount of the order set."
          },
          "tax_total": {
            "type": "number",
            "description": "The tax total of the order set."
          },
          "subtotal": {
            "type": "number",
            "description": "The subtotal of the order set."
          },
          "shipping_total": {
            "type": "number",
            "description": "The shipping total of the order set."
          },
          "shipping_tax_total": {
            "type": "number",
            "description": "The shipping tax total of the order set."
          },
          "orders": {
            "type": "array",
            "description": "The orders associated with this order set.",
            "items": {
              "type": "object",
              "description": "Order object with details."
            }
          },
          "customer": {
            "type": "object",
            "description": "The customer associated with the order set."
          },
          "cart": {
            "type": "object",
            "description": "The cart associated with the order set."
          },
          "sales_channel": {
            "type": "object",
            "description": "The sales channel associated with the order set."
          },
          "payment_collection": {
            "type": "object",
            "description": "The payment collection associated with the order set."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          }
        }
      },
      "AdminRequest": {
        "title": "Request",
        "description": "A request object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the request."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "type": {
            "type": "string",
            "description": "The type of the request object."
          },
          "data": {
            "type": "object",
            "description": "The request payload."
          },
          "submitter_id": {
            "type": "string",
            "description": "A unique id of the submitter"
          },
          "reviewer_id": {
            "type": "string",
            "description": "A unique id of the reviewer",
            "nullable": true
          },
          "reviewer_note": {
            "type": "string",
            "description": "A note provided by the reviewer",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "The status of the request"
          },
          "seller": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          }
        }
      },
      "AdminReviewRequest": {
        "title": "Update Request",
        "description": "A schema for the admin review of request.",
        "x-resourceId": "AdminReviewRequest",
        "type": "object",
        "properties": {
          "reviewer_note": {
            "type": "string",
            "description": "Reviewer note."
          },
          "status": {
            "type": "string",
            "enum": [
              "accepted",
              "rejected"
            ],
            "description": "A status of the request"
          }
        }
      },
      "AdminSeller": {
        "title": "Seller",
        "description": "Seller object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the seller."
          },
          "store_status": {
            "type": "string",
            "enum": [
              "active",
              "inactive",
              "suspended"
            ],
            "description": "The status of the seller's store."
          },
          "name": {
            "type": "string",
            "description": "The name of the seller."
          },
          "handle": {
            "type": "string",
            "description": "A unique handle for the seller."
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "A description of the seller."
          },
          "photo": {
            "type": "string",
            "nullable": true,
            "description": "URL to the seller's photo."
          },
          "email": {
            "type": "string",
            "nullable": true,
            "description": "Store contact email."
          },
          "phone": {
            "type": "string",
            "nullable": true,
            "description": "Store contact phone."
          },
          "address_line": {
            "type": "string",
            "nullable": true,
            "description": "Seller address line."
          },
          "city": {
            "type": "string",
            "nullable": true,
            "description": "Seller city."
          },
          "state": {
            "type": "string",
            "nullable": true,
            "description": "Seller state."
          },
          "postal_code": {
            "type": "string",
            "nullable": true,
            "description": "Seller postal code."
          },
          "country_code": {
            "type": "string",
            "nullable": true,
            "description": "Seller country code."
          },
          "tax_id": {
            "type": "string",
            "nullable": true,
            "description": "Seller tax ID."
          },
          "members": {
            "type": "array",
            "description": "Array of members associated with the seller.",
            "items": {
              "type": "object",
              "description": "Member object with details."
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          }
        }
      },
      "AdminSellerInvitation": {
        "title": "SellerInvitation",
        "description": "Seller invitation object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the invitation."
          },
          "email": {
            "type": "string",
            "description": "The email address of the invited seller."
          },
          "registration_url": {
            "type": "string",
            "description": "The registration URL for the invitation."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          }
        }
      },
      "AdminUpdateCommissionRule": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Commission rule name."
          },
          "is_active": {
            "type": "boolean",
            "description": "Indicates if rule is active."
          }
        }
      },
      "AdminUpdateRule": {
        "type": "object",
        "properties": {
          "is_enabled": {
            "type": "boolean"
          }
        }
      },
      "AdminUpsertDefaultCommissionRule": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Commission rule name."
          },
          "reference": {
            "type": "string",
            "enum": [
              "site"
            ],
            "description": "Rule reference type"
          },
          "reference_id": {
            "type": "string",
            "description": "Rule reference id"
          },
          "is_active": {
            "type": "boolean",
            "description": "Indicates if rule is active."
          },
          "rate": {
            "$ref": "#/components/schemas/AdminCreateCommissionRate"
          }
        }
      },
      "Attribute": {
        "title": "Attribute",
        "description": "Attribute object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the attribute."
          },
          "name": {
            "type": "string",
            "description": "The name of the attribute."
          },
          "description": {
            "type": "string",
            "description": "A description of the attribute."
          },
          "handle": {
            "type": "string",
            "description": "A unique handle for the attribute."
          },
          "is_filterable": {
            "type": "boolean",
            "description": "Whether the attribute can be used for filtering products."
          },
          "is_required": {
            "type": "boolean",
            "description": "Whether the attribute is required for products."
          },
          "ui_component": {
            "type": "string",
            "enum": [
              "select",
              "multivalue",
              "unit",
              "toggle",
              "text_area",
              "color_picker"
            ],
            "description": "The UI component type for this attribute."
          },
          "metadata": {
            "type": "object",
            "description": "Additional metadata for the attribute."
          },
          "possible_values": {
            "type": "array",
            "description": "Array of possible values for the attribute.",
            "items": {
              "$ref": "#/components/schemas/AttributePossibleValue"
            }
          },
          "values": {
            "type": "array",
            "description": "Array of attribute values.",
            "items": {
              "$ref": "#/components/schemas/AttributeValue"
            }
          },
          "product_categories": {
            "type": "array",
            "description": "Array of product categories associated with this attribute.",
            "items": {
              "$ref": "#/components/schemas/ProductCategory"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "The date with timezone at which the resource was deleted."
          }
        }
      },
      "AttributePossibleValue": {
        "title": "AttributePossibleValue",
        "description": "Attribute possible value object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the possible value."
          },
          "value": {
            "type": "string",
            "description": "The value of the possible value."
          },
          "rank": {
            "type": "number",
            "description": "The rank/order of the possible value."
          },
          "metadata": {
            "type": "object",
            "description": "Additional metadata for the possible value."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          }
        }
      },
      "AttributeValue": {
        "title": "AttributeValue",
        "description": "Attribute value object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the attribute value."
          },
          "value": {
            "type": "string",
            "description": "The value of the attribute."
          }
        }
      },
      "ConfigurationRule": {
        "title": "Configuration rule",
        "description": "A configuration rule object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the rule."
          },
          "rule_type": {
            "type": "string",
            "description": "The unique type of the rule."
          },
          "is_enabled": {
            "type": "boolean",
            "description": "Flag that indicates if rule is enabled."
          }
        }
      },
      "CreateProduct": {
        "type": "object",
        "required": [
          "title"
        ],
        "properties": {
          "title": {
            "type": "string",
            "description": "The title of the product."
          },
          "subtitle": {
            "type": "string",
            "description": "The subtitle of the product."
          },
          "description": {
            "type": "string",
            "description": "The description of the product."
          },
          "is_giftcard": {
            "type": "boolean",
            "description": "Whether the product is a gift card.",
            "default": false
          },
          "discountable": {
            "type": "boolean",
            "description": "Whether the product can be discounted.",
            "default": true
          },
          "images": {
            "type": "array",
            "description": "Images of the product.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string"
                }
              }
            }
          },
          "thumbnail": {
            "type": "string",
            "description": "The thumbnail of the product."
          },
          "handle": {
            "type": "string",
            "description": "A unique handle to identify the product."
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "proposed"
            ],
            "description": "The status of the product.",
            "default": "draft"
          },
          "external_id": {
            "type": "string",
            "description": "The external ID of the product."
          },
          "type_id": {
            "type": "string",
            "description": "The ID of the product type."
          },
          "collection_id": {
            "type": "string",
            "description": "The ID of the collection the product belongs to."
          },
          "categories": {
            "type": "array",
            "description": "Categories the product belongs to.",
            "items": {
              "type": "object",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string"
                }
              }
            }
          },
          "tags": {
            "type": "array",
            "description": "Tags associated with the product.",
            "items": {
              "type": "object",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string"
                }
              }
            }
          },
          "options": {
            "type": "array",
            "description": "Product options.",
            "items": {
              "$ref": "#/components/schemas/CreateProductOption"
            }
          },
          "variants": {
            "type": "array",
            "description": "Product variants.",
            "items": {
              "$ref": "#/components/schemas/CreateProductVariant"
            }
          },
          "weight": {
            "type": "number",
            "description": "The weight of the product."
          },
          "length": {
            "type": "number",
            "description": "The length of the product."
          },
          "height": {
            "type": "number",
            "description": "The height of the product."
          },
          "width": {
            "type": "number",
            "description": "The width of the product."
          },
          "hs_code": {
            "type": "string",
            "description": "The HS code of the product."
          },
          "mid_code": {
            "type": "string",
            "description": "The MID code of the product."
          },
          "origin_country": {
            "type": "string",
            "description": "The country of origin of the product."
          },
          "material": {
            "type": "string",
            "description": "The material composition of the product."
          },
          "metadata": {
            "type": "object",
            "description": "Additional metadata for the product."
          },
          "sales_channels": {
            "type": "array",
            "description": "Sales channels to associate the product with.",
            "items": {
              "type": "object",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string"
                }
              }
            }
          },
          "variants_images": {
            "type": "array",
            "description": "Images to associate with specific variants. Since variants don't have IDs during creation, matching is done by variant title.",
            "items": {
              "$ref": "#/components/schemas/VariantImages"
            }
          }
        }
      },
      "CreateProductOption": {
        "type": "object",
        "required": [
          "title",
          "values"
        ],
        "properties": {
          "title": {
            "type": "string",
            "description": "The title of the product option (e.g. \"Size\", \"Color\")."
          },
          "values": {
            "type": "array",
            "description": "The values that the product option can take (e.g. [\"Small\", \"Medium\", \"Large\"]).",
            "items": {
              "type": "string"
            }
          },
          "metadata": {
            "type": "object",
            "description": "Custom key-value pairs for additional option data. If \"author\" key is provided, value must be \"admin\" or \"vendor\"."
          }
        }
      },
      "CreateProductVariant": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "The title of the variant."
          },
          "sku": {
            "type": "string",
            "description": "The unique SKU for the variant."
          },
          "ean": {
            "type": "string",
            "description": "The EAN number of the variant."
          },
          "upc": {
            "type": "string",
            "description": "The UPC number of the variant."
          },
          "barcode": {
            "type": "string",
            "description": "The barcode of the variant."
          },
          "hs_code": {
            "type": "string",
            "description": "The HS code of the variant."
          },
          "mid_code": {
            "type": "string",
            "description": "The MID code of the variant."
          },
          "allow_backorder": {
            "type": "boolean",
            "description": "Whether the variant can be backordered.",
            "default": false
          },
          "manage_inventory": {
            "type": "boolean",
            "description": "Whether Medusa should keep track of inventory for this variant.",
            "default": true
          },
          "variant_rank": {
            "type": "number",
            "description": "The rank of the variant."
          },
          "weight": {
            "type": "number",
            "description": "The weight of the variant."
          },
          "length": {
            "type": "number",
            "description": "The length of the variant."
          },
          "height": {
            "type": "number",
            "description": "The height of the variant."
          },
          "width": {
            "type": "number",
            "description": "The width of the variant."
          },
          "origin_country": {
            "type": "string",
            "description": "The country of origin of the variant."
          },
          "material": {
            "type": "string",
            "description": "The material composition of the variant."
          },
          "metadata": {
            "type": "object",
            "description": "Additional metadata for the variant."
          },
          "prices": {
            "type": "array",
            "description": "The prices of the variant.",
            "items": {
              "$ref": "#/components/schemas/CreateVariantPrice"
            }
          },
          "options": {
            "type": "object",
            "description": "The options of the variant."
          },
          "inventory_items": {
            "type": "array",
            "description": "The inventory items of the variant.",
            "items": {
              "type": "object",
              "properties": {
                "inventory_item_id": {
                  "type": "string"
                },
                "required_quantity": {
                  "type": "number"
                }
              }
            }
          }
        }
      },
      "CreateShippingOptionPriceWithCurrency": {
        "type": "object",
        "required": [
          "currency_code",
          "amount"
        ],
        "properties": {
          "currency_code": {
            "type": "string",
            "description": "The currency code for the price."
          },
          "amount": {
            "type": "number",
            "description": "The amount of the price."
          }
        }
      },
      "CreateShippingOptionPriceWithRegion": {
        "type": "object",
        "required": [
          "region_id",
          "amount"
        ],
        "properties": {
          "region_id": {
            "type": "string",
            "description": "The region ID for the price."
          },
          "amount": {
            "type": "number",
            "description": "The amount of the price."
          }
        }
      },
      "CreateShippingOptionTypeObject": {
        "type": "object",
        "required": [
          "label",
          "description",
          "code"
        ],
        "properties": {
          "label": {
            "type": "string",
            "description": "The label of the shipping option type."
          },
          "description": {
            "type": "string",
            "description": "The description of the shipping option type."
          },
          "code": {
            "type": "string",
            "description": "The code of the shipping option type."
          }
        }
      },
      "CreateVariantPrice": {
        "type": "object",
        "required": [
          "currency_code",
          "amount"
        ],
        "properties": {
          "currency_code": {
            "type": "string",
            "description": "The currency code of the price."
          },
          "amount": {
            "type": "number",
            "description": "The amount of the price."
          },
          "min_quantity": {
            "type": "number",
            "nullable": true,
            "description": "The minimum quantity required to get this price."
          },
          "max_quantity": {
            "type": "number",
            "nullable": true,
            "description": "The maximum quantity allowed to get this price."
          },
          "rules": {
            "type": "object",
            "description": "Additional rules that apply to the price.",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "GeoZoneBase": {
        "type": "object",
        "required": [
          "country_code"
        ],
        "properties": {
          "country_code": {
            "type": "string",
            "description": "The country code of the geo zone."
          }
        }
      },
      "GeoZoneCity": {
        "type": "object",
        "required": [
          "country_code",
          "type",
          "province_code",
          "city"
        ],
        "properties": {
          "country_code": {
            "type": "string",
            "description": "The country code of the geo zone."
          },
          "type": {
            "type": "string",
            "enum": [
              "city"
            ],
            "description": "The type of the geo zone."
          },
          "province_code": {
            "type": "string",
            "description": "The province code of the geo zone."
          },
          "city": {
            "type": "string",
            "description": "The city name of the geo zone."
          }
        }
      },
      "GeoZoneCountry": {
        "type": "object",
        "required": [
          "country_code",
          "type"
        ],
        "properties": {
          "country_code": {
            "type": "string",
            "description": "The country code of the geo zone."
          },
          "type": {
            "type": "string",
            "enum": [
              "country"
            ],
            "description": "The type of the geo zone."
          }
        }
      },
      "GeoZoneProvince": {
        "type": "object",
        "required": [
          "country_code",
          "type",
          "province_code"
        ],
        "properties": {
          "country_code": {
            "type": "string",
            "description": "The country code of the geo zone."
          },
          "type": {
            "type": "string",
            "enum": [
              "province"
            ],
            "description": "The type of the geo zone."
          },
          "province_code": {
            "type": "string",
            "description": "The province code of the geo zone."
          }
        }
      },
      "GeoZoneZip": {
        "type": "object",
        "required": [
          "country_code",
          "type",
          "province_code",
          "city",
          "postal_expression"
        ],
        "properties": {
          "country_code": {
            "type": "string",
            "description": "The country code of the geo zone."
          },
          "type": {
            "type": "string",
            "enum": [
              "zip"
            ],
            "description": "The type of the geo zone."
          },
          "province_code": {
            "type": "string",
            "description": "The province code of the geo zone."
          },
          "city": {
            "type": "string",
            "description": "The city name of the geo zone."
          },
          "postal_expression": {
            "type": "object",
            "description": "The postal code expression for the geo zone."
          }
        }
      },
      "OrderReturnRequest": {
        "title": "Order return request",
        "description": "A return request object with its properties",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the order return request."
          },
          "customer_id": {
            "type": "string",
            "description": "The id of the submitter"
          },
          "customer_note": {
            "type": "string",
            "description": "Note from the submitter"
          },
          "vendor_reviewer_id": {
            "type": "string",
            "description": "The id of the vendor reviewer"
          },
          "vendor_reviewer_note": {
            "type": "string",
            "description": "Note from the vendor reviewer"
          },
          "vendor_reviewer_date": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone of the vendor review"
          },
          "admin_reviewer_id": {
            "type": "string",
            "description": "The id of the admin reviewer"
          },
          "admin_reviewer_note": {
            "type": "string",
            "description": "Note from the admin reviewer"
          },
          "admin_reviewer_date": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone of the admin review"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "refunded",
              "withdrawn",
              "escalated",
              "canceled"
            ]
          },
          "order": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              }
            }
          },
          "line_items": {
            "type": "array",
            "description": "The line items to return.",
            "items": {
              "$ref": "#/components/schemas/OrderReturnRequestLineItem"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          }
        }
      },
      "OrderReturnRequestLineItem": {
        "title": "Line item of the order return request",
        "description": "Line item object with its properties",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the order return request."
          },
          "line_item_id": {
            "type": "string",
            "description": "The id of the line item in the order"
          },
          "quantity": {
            "type": "number",
            "description": "The amount of the items to return"
          }
        }
      },
      "ProductCategory": {
        "title": "ProductCategory",
        "description": "Product category object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the product category."
          },
          "name": {
            "type": "string",
            "description": "The name of the product category."
          }
        }
      },
      "ProductCategoryRequest": {
        "type": "object",
        "required": [
          "type",
          "data"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the request",
            "enum": [
              "product_category"
            ]
          },
          "data": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "The name of the product category"
              },
              "handle": {
                "type": "string",
                "description": "The description of the product category"
              },
              "description": {
                "type": "string",
                "description": "The description of the product category"
              },
              "parent_category_id": {
                "type": "string",
                "description": "The id of the parent category"
              }
            }
          }
        }
      },
      "ProductCollectionRequest": {
        "type": "object",
        "required": [
          "type",
          "data"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the request",
            "enum": [
              "product_collection"
            ]
          },
          "data": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "description": "The title of the product collection"
              },
              "handle": {
                "type": "string",
                "description": "The description of the product category"
              }
            }
          }
        }
      },
      "ProductCollectionUpdateRequest": {
        "type": "object",
        "required": [
          "type",
          "data"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the request",
            "enum": [
              "product_collection_update"
            ]
          },
          "data": {
            "type": "object",
            "required": [
              "collection_id"
            ],
            "properties": {
              "collection_id": {
                "type": "string",
                "description": "The ID of the existing collection to update"
              },
              "title": {
                "type": "string",
                "description": "The new title of the product collection"
              },
              "handle": {
                "type": "string",
                "description": "The new handle of the product collection"
              }
            }
          }
        }
      },
      "ProductTagRequest": {
        "type": "object",
        "required": [
          "type",
          "data"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the request",
            "enum": [
              "product_tag"
            ]
          },
          "data": {
            "type": "object",
            "properties": {
              "value": {
                "type": "string",
                "description": "The product tag value"
              },
              "metadata": {
                "type": "object",
                "description": "The product tag metadata"
              }
            }
          }
        }
      },
      "ProductTypeRequest": {
        "type": "object",
        "required": [
          "type",
          "data"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the request",
            "enum": [
              "product_type"
            ]
          },
          "data": {
            "type": "object",
            "properties": {
              "value": {
                "type": "string",
                "description": "The product type value"
              },
              "metadata": {
                "type": "object",
                "description": "The product type metadata"
              }
            }
          }
        }
      },
      "Review": {
        "title": "Seller/product review",
        "description": "A product/seller review with rating and comment",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the review."
          },
          "rating": {
            "type": "number",
            "description": "The rating associated with the review."
          },
          "reference": {
            "type": "string",
            "enum": [
              "seller",
              "product"
            ],
            "description": "Indicates if review reference is seller or product"
          },
          "customer_note": {
            "type": "string",
            "nullable": true,
            "description": "Customer comment on resource"
          },
          "customer_id": {
            "type": "string",
            "description": "Id of the customer who left the review"
          },
          "seller_note": {
            "type": "string",
            "nullable": true,
            "description": "Seller response to customer review"
          }
        }
      },
      "ReviewRemoveRequest": {
        "type": "object",
        "required": [
          "type",
          "data"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the request",
            "enum": [
              "review_remove"
            ]
          },
          "data": {
            "type": "object",
            "properties": {
              "review_id": {
                "type": "string",
                "description": "Id of the review to remove"
              },
              "reason": {
                "type": "string",
                "description": "The reason to remove review"
              }
            }
          }
        }
      },
      "StoreCreateOrderReturnRequest": {
        "title": "Create Order Return Request",
        "description": "A schema for the creation of order return request.",
        "x-resourceId": "StoreCreateOrderReturnRequest",
        "type": "object",
        "properties": {
          "order_id": {
            "type": "string",
            "description": "ID of the order"
          },
          "customer_note": {
            "type": "string",
            "description": "Customer note."
          },
          "shipping_option_id": {
            "type": "string",
            "description": "ID of the shipping option"
          },
          "line_items": {
            "type": "array",
            "description": "Array of items to return",
            "items": {
              "type": "object",
              "properties": {
                "line_item_id": {
                  "type": "string"
                },
                "quantity": {
                  "type": "number"
                },
                "reason_id": {
                  "type": "string",
                  "description": "ID of the reason for return"
                }
              }
            }
          }
        }
      },
      "StoreCreateReview": {
        "title": "Create Review",
        "description": "A schema for creating a review.",
        "x-resourceId": "StoreCreateReview",
        "type": "object",
        "properties": {
          "order_id": {
            "type": "string",
            "description": "The unique identifier of the order."
          },
          "reference": {
            "type": "string",
            "enum": [
              "seller",
              "product"
            ],
            "description": "Indicates if review reference is seller or product"
          },
          "reference_id": {
            "type": "string",
            "description": "The unique identifier of reference."
          },
          "rating": {
            "type": "number",
            "description": "The customer rating on the resource.",
            "maximum": 5,
            "minimum": 1
          },
          "customer_note": {
            "type": "string",
            "description": "The customer note on the resource.",
            "maxLength": 300
          }
        }
      },
      "StoreCreateWishlist": {
        "title": "Create Wishlist Entry",
        "description": "A schema for creating a wishlist entry.",
        "x-resourceId": "StoreCreateWishlist",
        "type": "object",
        "properties": {
          "reference": {
            "type": "string",
            "enum": [
              "product"
            ],
            "description": "The type of resource referenced by the wishlist entry."
          },
          "reference_id": {
            "type": "string",
            "description": "The ID of the resource being added to the wishlist."
          }
        }
      },
      "StoreGetWishlistsParams": {
        "title": "Get Wishlists Parameters",
        "description": "Parameters for retrieving a list of wishlists.",
        "x-resourceId": "StoreGetWishlistsParams",
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "description": "The number of wishlist entries to skip.",
            "default": 0
          },
          "limit": {
            "type": "integer",
            "description": "The maximum number of wishlist entries to return.",
            "default": 50
          }
        }
      },
      "StoreOrderSet": {
        "title": "OrderSet",
        "description": "Order set object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the order set."
          },
          "display_id": {
            "type": "number",
            "description": "The display ID of the order set."
          },
          "customer_id": {
            "type": "string",
            "description": "The ID of the customer associated with the order set."
          },
          "cart_id": {
            "type": "string",
            "description": "The ID of the cart associated with the order set."
          },
          "sales_channel_id": {
            "type": "string",
            "description": "The ID of the sales channel associated with the order set."
          },
          "payment_collection_id": {
            "type": "string",
            "description": "The ID of the payment collection associated with the order set."
          },
          "status": {
            "type": "string",
            "description": "The status of the order set.",
            "enum": [
              "pending",
              "completed",
              "canceled",
              "archived"
            ]
          },
          "payment_status": {
            "type": "string",
            "description": "The payment status of the order set.",
            "enum": [
              "awaiting",
              "not_paid",
              "captured",
              "partially_refunded",
              "refunded",
              "canceled",
              "requires_action"
            ]
          },
          "fulfillment_status": {
            "type": "string",
            "description": "The fulfillment status of the order set.",
            "enum": [
              "not_fulfilled",
              "fulfilled",
              "partially_fulfilled",
              "shipped",
              "partially_shipped",
              "delivered",
              "partially_delivered",
              "canceled"
            ]
          },
          "total": {
            "type": "number",
            "description": "The total amount of the order set."
          },
          "tax_total": {
            "type": "number",
            "description": "The tax total of the order set."
          },
          "subtotal": {
            "type": "number",
            "description": "The subtotal of the order set."
          },
          "shipping_total": {
            "type": "number",
            "description": "The shipping total of the order set."
          },
          "shipping_tax_total": {
            "type": "number",
            "description": "The shipping tax total of the order set."
          },
          "orders": {
            "type": "array",
            "description": "The orders associated with this order set.",
            "items": {
              "type": "object",
              "description": "Order object with details."
            }
          },
          "customer": {
            "type": "object",
            "description": "The customer associated with the order set."
          },
          "cart": {
            "type": "object",
            "description": "The cart associated with the order set."
          },
          "sales_channel": {
            "type": "object",
            "description": "The sales channel associated with the order set."
          },
          "payment_collection": {
            "type": "object",
            "description": "The payment collection associated with the order set."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          }
        }
      },
      "StoreSeller": {
        "title": "Seller",
        "description": "A seller object with its properties",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the seller."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "name": {
            "type": "string",
            "description": "The name of the seller."
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "A description of the seller."
          },
          "handle": {
            "type": "string",
            "description": "A unique handle for the seller."
          },
          "email": {
            "type": "string",
            "nullable": true,
            "description": "Store contact email."
          },
          "phone": {
            "type": "string",
            "nullable": true,
            "description": "Store contact phone."
          },
          "photo": {
            "type": "string",
            "nullable": true,
            "description": "URL to the seller's photo."
          },
          "address_line": {
            "type": "string",
            "nullable": true,
            "description": "Seller address line."
          },
          "postal_code": {
            "type": "string",
            "nullable": true,
            "description": "Seller postal code."
          },
          "city": {
            "type": "string",
            "nullable": true,
            "description": "Seller city."
          },
          "state": {
            "type": "string",
            "nullable": true,
            "description": "Seller state."
          },
          "country_code": {
            "type": "string",
            "nullable": true,
            "description": "Seller country code."
          },
          "tax_id": {
            "type": "string",
            "nullable": true,
            "description": "Seller tax id."
          }
        }
      },
      "StoreUpdateReview": {
        "title": "Update Review",
        "description": "A schema for the review update.",
        "x-resourceId": "StoreUpdateReview",
        "type": "object",
        "properties": {
          "rating": {
            "type": "number",
            "description": "The customer rating on the resource.",
            "maximum": 5,
            "minimum": 1
          },
          "customer_note": {
            "type": "string",
            "description": "The customer note on the resource.",
            "maxLength": 300
          }
        }
      },
      "UpdateProduct": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "The title of the product."
          },
          "discountable": {
            "type": "boolean",
            "description": "Whether the product can be discounted."
          },
          "is_giftcard": {
            "type": "boolean",
            "description": "Whether the product is a gift card."
          },
          "options": {
            "type": "array",
            "description": "The product options to update.",
            "items": {
              "$ref": "#/components/schemas/UpdateProductOption"
            }
          },
          "variants": {
            "type": "array",
            "description": "The product variants to update.",
            "items": {
              "$ref": "#/components/schemas/UpdateProductVariant"
            }
          },
          "subtitle": {
            "type": "string",
            "nullable": true,
            "description": "The subtitle of the product."
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "The description of the product."
          },
          "images": {
            "type": "array",
            "description": "Images of the product.",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string"
                }
              }
            }
          },
          "thumbnail": {
            "type": "string",
            "nullable": true,
            "description": "The thumbnail of the product."
          },
          "handle": {
            "type": "string",
            "nullable": true,
            "description": "The handle of the product."
          },
          "type_id": {
            "type": "string",
            "nullable": true,
            "description": "The ID of the product type."
          },
          "external_id": {
            "type": "string",
            "nullable": true,
            "description": "The external ID of the product."
          },
          "collection_id": {
            "type": "string",
            "nullable": true,
            "description": "The ID of the collection the product belongs to."
          },
          "categories": {
            "type": "array",
            "description": "Product category IDs to associate with the product.",
            "items": {
              "type": "object",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string"
                }
              }
            }
          },
          "tags": {
            "type": "array",
            "description": "Product tag IDs to associate with the product.",
            "items": {
              "type": "object",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string"
                }
              }
            }
          },
          "weight": {
            "type": "number",
            "nullable": true,
            "description": "The weight of the product."
          },
          "length": {
            "type": "number",
            "nullable": true,
            "description": "The length of the product."
          },
          "height": {
            "type": "number",
            "nullable": true,
            "description": "The height of the product."
          },
          "width": {
            "type": "number",
            "nullable": true,
            "description": "The width of the product."
          },
          "hs_code": {
            "type": "string",
            "nullable": true,
            "description": "The HS code of the product."
          },
          "mid_code": {
            "type": "string",
            "nullable": true,
            "description": "The MID code of the product."
          },
          "origin_country": {
            "type": "string",
            "nullable": true,
            "description": "The country of origin of the product."
          },
          "material": {
            "type": "string",
            "nullable": true,
            "description": "The material composition of the product."
          },
          "metadata": {
            "type": "object",
            "nullable": true,
            "description": "Additional metadata for the product."
          },
          "sales_channels": {
            "type": "array",
            "description": "Sales channels to associate the product with.",
            "items": {
              "type": "object",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "UpdateProductOption": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the option to update."
          },
          "title": {
            "type": "string",
            "description": "The title of the product option (e.g. \"Size\", \"Color\")."
          },
          "values": {
            "type": "array",
            "description": "The values that the product option can take (e.g. [\"Small\", \"Medium\", \"Large\"]).",
            "items": {
              "type": "string"
            }
          },
          "metadata": {
            "type": "object",
            "nullable": true,
            "description": "Custom key-value pairs for additional option data. If \"author\" key is provided, value must be \"admin\" or \"vendor\"."
          }
        }
      },
      "UpdateProductVariant": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the variant to update."
          },
          "title": {
            "type": "string",
            "description": "The title of the variant."
          },
          "prices": {
            "type": "array",
            "description": "The prices of the variant.",
            "items": {
              "$ref": "#/components/schemas/UpdateVariantPrice"
            }
          },
          "sku": {
            "type": "string",
            "nullable": true,
            "description": "The unique SKU for the variant."
          },
          "ean": {
            "type": "string",
            "nullable": true,
            "description": "The EAN number of the variant."
          },
          "upc": {
            "type": "string",
            "nullable": true,
            "description": "The UPC number of the variant."
          },
          "barcode": {
            "type": "string",
            "nullable": true,
            "description": "A generic GTIN field for the variant."
          },
          "hs_code": {
            "type": "string",
            "nullable": true,
            "description": "The Harmonized System code of the variant."
          },
          "mid_code": {
            "type": "string",
            "nullable": true,
            "description": "The Manufacturer Identification code of the variant."
          },
          "allow_backorder": {
            "type": "boolean",
            "description": "Whether the variant can be backordered."
          },
          "manage_inventory": {
            "type": "boolean",
            "description": "Whether Medusa should keep track of the inventory of this variant."
          },
          "variant_rank": {
            "type": "number",
            "description": "The rank of the variant when presented in a list of variants."
          },
          "weight": {
            "type": "number",
            "nullable": true,
            "description": "The weight of the variant."
          },
          "length": {
            "type": "number",
            "nullable": true,
            "description": "The length of the variant."
          },
          "height": {
            "type": "number",
            "nullable": true,
            "description": "The height of the variant."
          },
          "width": {
            "type": "number",
            "nullable": true,
            "description": "The width of the variant."
          },
          "origin_country": {
            "type": "string",
            "nullable": true,
            "description": "The country of origin of the variant."
          },
          "material": {
            "type": "string",
            "nullable": true,
            "description": "The material composition of the variant."
          },
          "metadata": {
            "type": "object",
            "nullable": true,
            "description": "An optional set of key-value pairs with additional information."
          },
          "options": {
            "type": "object",
            "description": "The options of the variant.",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "UpdateVariantPrice": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the price to update."
          },
          "currency_code": {
            "type": "string",
            "description": "The currency code of the price."
          },
          "amount": {
            "type": "number",
            "description": "The amount of the price."
          },
          "min_quantity": {
            "type": "number",
            "nullable": true,
            "description": "The minimum quantity required to get this price."
          },
          "max_quantity": {
            "type": "number",
            "nullable": true,
            "description": "The maximum quantity allowed to get this price."
          },
          "rules": {
            "type": "object",
            "description": "Additional rules that apply to the price.",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "UpsertStockLocationAddress": {
        "type": "object",
        "required": [
          "address_1",
          "country_code"
        ],
        "properties": {
          "address_1": {
            "type": "string",
            "description": "Address line 1"
          },
          "address_2": {
            "type": "string",
            "nullable": true,
            "description": "Address line 2"
          },
          "company": {
            "type": "string",
            "nullable": true,
            "description": "Company name"
          },
          "city": {
            "type": "string",
            "nullable": true,
            "description": "City"
          },
          "country_code": {
            "type": "string",
            "description": "Country code"
          },
          "phone": {
            "type": "string",
            "nullable": true,
            "description": "Phone number"
          },
          "postal_code": {
            "type": "string",
            "nullable": true,
            "description": "Postal code"
          },
          "province": {
            "type": "string",
            "nullable": true,
            "description": "Province"
          }
        }
      },
      "VariantImages": {
        "type": "object",
        "required": [
          "variant_image_key"
        ],
        "properties": {
          "variant_image_key": {
            "type": "string",
            "description": "A client-provided key that is stored in the variant metadata (metadata.variant_image_key) and used to match images to variants."
          },
          "image_urls": {
            "type": "array",
            "description": "The URLs of images to associate with the variant.",
            "items": {
              "type": "string"
            }
          },
          "thumbnail_url": {
            "type": "string",
            "description": "The URL of the image to set as the variant thumbnail."
          }
        }
      },
      "VendorAcceptMemberInvite": {
        "type": "object",
        "required": [
          "name",
          "token"
        ],
        "properties": {
          "token": {
            "type": "string",
            "description": "The invitation token to accept."
          },
          "name": {
            "type": "string",
            "description": "The name of the member accepting the invite."
          }
        }
      },
      "VendorApplicationMethod": {
        "title": "Promotion Application Method",
        "description": "Application method object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the item."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "description": {
            "type": "string",
            "description": "Description of the promotion."
          },
          "value": {
            "type": "number",
            "description": "The percentage value of the promotion."
          },
          "max_quantity": {
            "type": "string",
            "description": "The max quantity of the items."
          },
          "apply_to_quantity": {
            "type": "string",
            "description": "Apply to quantity of the items."
          },
          "buy_rules_min_quantity": {
            "type": "string",
            "description": "Buy ruyles min quantity of the items."
          },
          "type": {
            "type": "string",
            "description": "The type of the application method."
          },
          "target_type": {
            "type": "string",
            "description": "The target type of the application method."
          },
          "allocation": {
            "type": "string",
            "description": "The allocation of the application method."
          },
          "target_rules": {
            "type": "array",
            "description": "Promotion target rules.",
            "items": {
              "$ref": "#/components/schemas/VendorPromotionRule"
            }
          }
        }
      },
      "VendorAssignBrandName": {
        "type": "object",
        "required": [
          "brand_name"
        ],
        "properties": {
          "brand_name": {
            "type": "string",
            "description": "The name of the brand."
          }
        }
      },
      "VendorAttribute": {
        "title": "VendorAttribute",
        "description": "Vendor attribute object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the attribute."
          },
          "name": {
            "type": "string",
            "description": "The name of the attribute."
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "A description of the attribute."
          },
          "handle": {
            "type": "string",
            "description": "A unique handle for the attribute."
          },
          "is_filterable": {
            "type": "boolean",
            "description": "Whether the attribute can be used for filtering products."
          },
          "is_required": {
            "type": "boolean",
            "description": "Whether the attribute is required for products."
          },
          "ui_component": {
            "type": "string",
            "enum": [
              "select",
              "multivalue",
              "unit",
              "toggle",
              "text_area",
              "color_picker"
            ],
            "description": "The UI component type for this attribute."
          },
          "metadata": {
            "type": "object",
            "nullable": true,
            "description": "Additional metadata for the attribute."
          },
          "possible_values": {
            "type": "array",
            "description": "Array of possible values for the attribute.",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique identifier of the possible value."
                },
                "value": {
                  "type": "string",
                  "description": "The value of the possible value."
                },
                "rank": {
                  "type": "number",
                  "description": "The rank/order of the possible value."
                },
                "metadata": {
                  "type": "object",
                  "nullable": true,
                  "description": "Additional metadata for the possible value."
                }
              }
            }
          },
          "product_categories": {
            "type": "array",
            "description": "Array of product categories associated with this attribute.",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique identifier of the product category."
                },
                "name": {
                  "type": "string",
                  "description": "The name of the product category."
                }
              }
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          }
        }
      },
      "VendorBaseRuleOperatorOptions": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The operator's ID."
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The operator's value."
          },
          "label": {
            "type": "string",
            "title": "label",
            "description": "The operator's label."
          }
        }
      },
      "VendorBatchInventoryItemLevels": {
        "type": "object",
        "properties": {
          "create": {
            "type": "array",
            "description": "Levels to create",
            "items": {
              "$ref": "#/components/schemas/VendorBatchInventoryLocationLevel"
            }
          },
          "update": {
            "type": "array",
            "description": "Levels to update",
            "items": {
              "$ref": "#/components/schemas/VendorBatchInventoryLocationLevel"
            }
          },
          "delete": {
            "type": "array",
            "description": "Levels to delete",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "VendorBatchInventoryItemLocationsLevel": {
        "type": "object",
        "properties": {
          "create": {
            "type": "array",
            "description": "Levels to create",
            "items": {
              "$ref": "#/components/schemas/VendorCreateInventoryLevel"
            }
          },
          "update": {
            "type": "array",
            "description": "Levels to update",
            "items": {
              "$ref": "#/components/schemas/VendorBatchInventoryLocationLevel"
            }
          },
          "delete": {
            "type": "array",
            "description": "Levels to delete",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "VendorBatchInventoryLocationLevel": {
        "type": "object",
        "properties": {
          "inventory_item_id": {
            "type": "string",
            "description": "The inventory item id."
          },
          "stocked_quantity": {
            "type": "number",
            "description": "The quantity of the InventoryItem in StockLocation."
          },
          "location_id": {
            "type": "string",
            "description": "The stock location id."
          },
          "incoming_quantity": {
            "type": "number",
            "description": "The quantity incoming_quantity."
          }
        }
      },
      "VendorBatchPromotionRule": {
        "type": "object",
        "properties": {
          "create": {
            "type": "array",
            "description": "Rules to create.",
            "items": {
              "$ref": "#/components/schemas/VendorCreatePromotionRule"
            }
          },
          "delete": {
            "type": "array",
            "description": "Rules to delete.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "VendorBatchUpdateProductItem": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the product to update."
          },
          "title": {
            "type": "string",
            "description": "The title of the product."
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "published"
            ],
            "description": "The status of the product."
          },
          "discountable": {
            "type": "boolean",
            "description": "Whether the product can be discounted."
          }
        }
      },
      "VendorBatchUpdateProducts": {
        "type": "object",
        "required": [
          "update",
          "delete"
        ],
        "properties": {
          "update": {
            "type": "array",
            "description": "The products to update.",
            "items": {
              "$ref": "#/components/schemas/VendorBatchUpdateProductItem"
            }
          },
          "delete": {
            "type": "array",
            "description": "The products IDs to delete.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "VendorBatchVariantImages": {
        "type": "object",
        "properties": {
          "add": {
            "type": "array",
            "description": "The images to add to the variant.",
            "items": {
              "type": "string"
            }
          },
          "remove": {
            "type": "array",
            "description": "The images to remove from the variant.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "VendorCampaign": {
        "type": "object",
        "description": "The campaign's details.",
        "x-schemaName": "VendorCampaign",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The campaign's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The campaign's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The campaign's description."
          },
          "currency": {
            "type": "string",
            "title": "currency",
            "description": "The campaign's currency."
          },
          "campaign_identifier": {
            "type": "string",
            "title": "campaign_identifier",
            "description": "The campaign's identifier."
          },
          "starts_at": {
            "type": "string",
            "title": "starts_at",
            "description": "The date and time that the campaign starts."
          },
          "ends_at": {
            "type": "string",
            "title": "ends_at",
            "description": "The date and time that the campaign ends."
          },
          "budget": {
            "type": "object",
            "description": "The campaign's budget.",
            "required": [
              "id",
              "type",
              "currency_code",
              "limit",
              "used"
            ],
            "properties": {
              "id": {
                "type": "string",
                "title": "id",
                "description": "The budget's ID."
              },
              "type": {
                "type": "string",
                "description": "The budget's type. `spend` means the limit is set on the total amount discounted by the campaign's promotions; `usage` means the limit is set on the total number of times the campaign's promotions can be used.\n",
                "enum": [
                  "spend",
                  "usage"
                ]
              },
              "currency_code": {
                "type": "string",
                "title": "currency_code",
                "description": "The budget's currency code."
              },
              "limit": {
                "type": "number",
                "title": "limit",
                "description": "The budget's limit."
              },
              "used": {
                "type": "number",
                "title": "used",
                "description": "How much of the budget has been used. If the limit is `spend`, this property holds the total amount discounted so far. If the limit is `usage`, it holds the number of times the campaign's promotions have been used so far.\n"
              }
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the campaign was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the campaign was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the campaign was deleted."
          }
        }
      },
      "VendorCommissionAggregate": {
        "title": "CommissionAggregate",
        "description": "Commission aggregate object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier."
          },
          "name": {
            "type": "string",
            "description": "Commission rule name."
          },
          "type": {
            "type": "string",
            "enum": [
              "flat",
              "percentage"
            ],
            "description": "Commission rate type."
          },
          "reference": {
            "type": "string",
            "description": "Rule reference type"
          },
          "reference_id": {
            "type": "string",
            "description": "Rule reference id"
          },
          "is_active": {
            "type": "boolean",
            "description": "Indicates if rule is active."
          },
          "include_tax": {
            "type": "boolean",
            "description": "Indicates if rate is calculated including tax."
          },
          "percentage_rate": {
            "type": "number",
            "description": "Percent of commission."
          },
          "price_set_id": {
            "type": "string",
            "description": "Flat rate price set id"
          },
          "price_set": {
            "type": "array",
            "description": "Flat rate price set",
            "items": {
              "$ref": "#/components/schemas/VendorCommissionPriceValue"
            }
          },
          "min_price_set_id": {
            "type": "string",
            "description": "Min price set id"
          },
          "min_price_set": {
            "type": "array",
            "description": "Min price set",
            "items": {
              "$ref": "#/components/schemas/VendorCommissionPriceValue"
            }
          },
          "max_price_set_id": {
            "type": "string",
            "description": "Max price set id"
          },
          "max_price_set": {
            "type": "array",
            "description": "Max price set",
            "items": {
              "$ref": "#/components/schemas/VendorCommissionPriceValue"
            }
          },
          "ref_value": {
            "type": "string",
            "description": "Aggregated reference value"
          },
          "fee_value": {
            "type": "string",
            "description": "Aggregated fee value"
          }
        }
      },
      "VendorCommissionLine": {
        "title": "CommissionLine",
        "description": "Commission line object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the commission line."
          },
          "item_line_id": {
            "type": "string",
            "description": "The ID of the order item line this commission applies to."
          },
          "rule_id": {
            "type": "string",
            "description": "The ID of the commission rule that generated this line."
          },
          "currency_code": {
            "type": "string",
            "description": "The currency code for the commission value."
          },
          "value": {
            "type": "number",
            "description": "The commission amount."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "order": {
            "type": "object",
            "description": "The order associated with this commission line (when expanded)."
          },
          "rule": {
            "type": "object",
            "description": "The commission rule associated with this line (when expanded)."
          }
        }
      },
      "VendorCommissionPriceValue": {
        "title": "VendorCommissionPriceValue",
        "description": "Commission price value",
        "required": [
          "amount",
          "currency_code"
        ],
        "properties": {
          "amount": {
            "type": "number"
          },
          "currency_code": {
            "type": "string"
          }
        }
      },
      "VendorCommissionRate": {
        "title": "CommissionRate",
        "description": "Commission rate object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier."
          },
          "type": {
            "type": "string",
            "enum": [
              "flat",
              "percentage"
            ],
            "description": "Commission rate type."
          },
          "percentage_rate": {
            "type": "number",
            "description": "Percent of commission."
          },
          "include_tax": {
            "type": "boolean",
            "description": "Indicates if rate is calculated including tax."
          },
          "price_set_id": {
            "type": "string",
            "description": "Flat commission value."
          },
          "min_price_set_id": {
            "type": "string",
            "description": "Min commission value."
          },
          "max_price_set_id": {
            "type": "string",
            "description": "Max commission value."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          }
        }
      },
      "VendorCommissionRule": {
        "title": "CommissionRule",
        "description": "Commission rule object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier."
          },
          "name": {
            "type": "string",
            "description": "Commission rule name."
          },
          "reference": {
            "type": "string",
            "description": "Rule reference type"
          },
          "reference_id": {
            "type": "string",
            "description": "Rule reference id"
          },
          "is_active": {
            "type": "boolean",
            "description": "Indicates if rule is active."
          },
          "rate": {
            "$ref": "#/components/schemas/VendorCommissionRate"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          }
        }
      },
      "VendorCreateApplicationMethod": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the promotion."
          },
          "value": {
            "type": "number",
            "description": "The percentage value of the promotion."
          },
          "max_quantity": {
            "type": "string",
            "description": "The max quantity of the items."
          },
          "apply_to_quantity": {
            "type": "string",
            "description": "Apply to quantity of the items."
          },
          "buy_rules_min_quantity": {
            "type": "string",
            "description": "Buy ruyles min quantity of the items."
          },
          "type": {
            "type": "string",
            "enum": [
              "percentage"
            ],
            "description": "The type of the application method."
          },
          "target_type": {
            "type": "string",
            "enum": [
              "items"
            ],
            "description": "The target type of the application method."
          },
          "allocation": {
            "type": "string",
            "enum": [
              "each",
              "across"
            ],
            "description": "The allocation of the application method."
          },
          "target_rules": {
            "type": "array",
            "description": "Optional additional target rules. A default rule restricting the promotion to the seller's products is automatically added. Any additional rules are combined with AND logic.",
            "items": {
              "$ref": "#/components/schemas/VendorCreatePromotionRule"
            }
          }
        }
      },
      "VendorCreateCampaign": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The campaign's name."
          },
          "campaign_identifier": {
            "type": "string",
            "description": "The campaign's identifier."
          },
          "description": {
            "type": "string",
            "description": "The campaign's description."
          },
          "starts_at": {
            "type": "string",
            "description": "The date and time that the campaign starts."
          },
          "ends_at": {
            "type": "string",
            "description": "The date and time that the campaign ends."
          },
          "budget": {
            "$ref": "#/components/schemas/VendorCreateCampaignBudget"
          }
        }
      },
      "VendorCreateCampaignBudget": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "spend",
              "usage"
            ],
            "description": "The budget's type."
          },
          "limit": {
            "type": "number",
            "description": "The buget's limit."
          },
          "currency_code": {
            "type": "string",
            "description": "The budget's currency_code."
          }
        }
      },
      "VendorCreateCustomerGroup": {
        "type": "object",
        "description": "Create customer group details",
        "properties": {
          "name": {
            "type": "string",
            "description": "Customer group name"
          }
        }
      },
      "VendorCreateFulfillment": {
        "type": "object",
        "properties": {
          "requires_shipping": {
            "type": "boolean"
          },
          "location_id": {
            "type": "string",
            "description": "The location id."
          },
          "items": {
            "type": "array",
            "description": "Items to create fulfillment.",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "quantity": {
                  "type": "number"
                }
              }
            }
          }
        }
      },
      "VendorCreateInventoryLevel": {
        "title": "VendorCreateInventoryLevel",
        "type": "object",
        "description": "The inventory level details.",
        "properties": {
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The inventory level locationId."
          },
          "stocked_quantity": {
            "type": "number",
            "title": "stocked_quantity",
            "description": "The inventory level in stock."
          },
          "reserved_quantity": {
            "type": "number",
            "title": "reserved_quantity",
            "description": "The quantity reserved from the available stocked_quantity."
          }
        }
      },
      "VendorCreateOnboarding": {
        "type": "object",
        "properties": {
          "context": {
            "type": "object",
            "description": "Additional data needed by the payment provider to create onboarding.",
            "nullable": true
          }
        }
      },
      "VendorCreatePayoutAccount": {
        "type": "object",
        "properties": {
          "context": {
            "type": "object",
            "description": "Additional data needed by the payment provider to create a payment account.",
            "nullable": true
          }
        }
      },
      "VendorCreatePriceList": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "title": "title",
            "description": "The price list's title."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The price list's description."
          },
          "rules": {
            "type": "object",
            "description": "The price list's rules."
          },
          "starts_at": {
            "type": "string",
            "title": "starts_at",
            "description": "The date the price list starts."
          },
          "ends_at": {
            "type": "string",
            "title": "ends_at",
            "description": "The date the price list ends."
          },
          "status": {
            "type": "string",
            "description": "The price list's status.",
            "enum": [
              "draft",
              "active"
            ]
          },
          "type": {
            "type": "string",
            "description": "The price list's type.",
            "enum": [
              "sale",
              "override"
            ]
          },
          "prices": {
            "type": "array",
            "description": "The price list's prices.",
            "items": {
              "$ref": "#/components/schemas/VendorCreatePriceListPrice"
            }
          }
        }
      },
      "VendorCreatePriceListPrice": {
        "type": "object",
        "properties": {
          "variant_id": {
            "type": "string",
            "title": "variant_id",
            "description": "The ID of the product variant this price list is for."
          },
          "rules": {
            "type": "object",
            "description": "The price's rules."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The price's currency code.",
            "example": "usd"
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The price's amount."
          },
          "min_quantity": {
            "type": "number",
            "title": "min_quantity",
            "description": "The minimum quantity that must be available in the cart for the price to be applied."
          },
          "max_quantity": {
            "type": "number",
            "title": "max_quantity",
            "description": "The maximum quantity allowed to be available in the cart for the price to be applied."
          }
        }
      },
      "VendorCreateProduct": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/CreateProduct"
          },
          {
            "type": "object",
            "properties": {
              "additional_data": {
                "type": "object",
                "description": "Additional data to use in products hooks.",
                "additionalProperties": true
              }
            }
          }
        ]
      },
      "VendorCreateProductTag": {
        "type": "object",
        "required": [
          "value"
        ],
        "properties": {
          "value": {
            "type": "string",
            "description": "The title of the product tag."
          },
          "metadata": {
            "type": "object",
            "description": "Product tag metadata."
          }
        }
      },
      "VendorCreatePromotion": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "The code of the promotion."
          },
          "is_automatic": {
            "type": "boolean",
            "description": "Whether the promotion is applied automatically.",
            "default": false
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "active",
              "inactive"
            ],
            "description": "The status of the promotion."
          },
          "campaign_id": {
            "type": "string",
            "description": "The campaign id."
          },
          "campaign": {
            "$ref": "#/components/schemas/VendorCreateCampaign"
          },
          "type": {
            "type": "string",
            "enum": [
              "standard"
            ],
            "description": "The type of the promotion."
          },
          "application_method": {
            "$ref": "#/components/schemas/VendorCreateApplicationMethod"
          },
          "rules": {
            "type": "array",
            "description": "Promotion rules.",
            "items": {
              "$ref": "#/components/schemas/VendorCreatePromotionRule"
            }
          }
        }
      },
      "VendorCreatePromotionRule": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "The description of the rule."
          },
          "attribute": {
            "type": "string",
            "description": "The attribute of the rule."
          },
          "operator": {
            "type": "string",
            "enum": [
              "in",
              "eq"
            ],
            "description": "The operator of the rule."
          },
          "values": {
            "type": "array",
            "description": "Rule values.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "VendorCreateRequest": {
        "type": "object",
        "required": [
          "request"
        ],
        "properties": {
          "request": {
            "type": "object",
            "description": "The resource to be created by request",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ProductCollectionRequest"
              },
              {
                "$ref": "#/components/schemas/ProductCategoryRequest"
              },
              {
                "$ref": "#/components/schemas/ReviewRemoveRequest"
              },
              {
                "$ref": "#/components/schemas/ProductTypeRequest"
              },
              {
                "$ref": "#/components/schemas/ProductTagRequest"
              }
            ]
          }
        }
      },
      "VendorCreateReservation": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "The description of the reservation."
          },
          "location_id": {
            "type": "string",
            "description": "The location id of the reservation."
          },
          "inventory_item_id": {
            "type": "string",
            "description": "The inventory item id of the reservation."
          },
          "line_item_id": {
            "type": "string",
            "description": "The line item id of the reservation."
          },
          "quantity": {
            "type": "number",
            "description": "The number of items in the reservation."
          }
        }
      },
      "VendorCreateSeller": {
        "type": "object",
        "required": [
          "name",
          "handle",
          "member"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the seller.",
            "minLength": 1
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "A description of the seller."
          },
          "email": {
            "type": "string",
            "description": "Store contact email."
          },
          "phone": {
            "type": "string",
            "description": "Store contact phone."
          },
          "photo": {
            "type": "string",
            "nullable": true,
            "description": "URL to the seller's photo."
          },
          "address_line": {
            "type": "string",
            "nullable": true,
            "description": "Seller address line."
          },
          "postal_code": {
            "type": "string",
            "nullable": true,
            "description": "Seller postal code."
          },
          "city": {
            "type": "string",
            "nullable": true,
            "description": "Seller city."
          },
          "state": {
            "type": "string",
            "nullable": true,
            "description": "Seller state."
          },
          "country_code": {
            "type": "string",
            "nullable": true,
            "description": "Seller country code."
          },
          "tax_id": {
            "type": "string",
            "nullable": true,
            "description": "Seller tax id."
          },
          "member": {
            "type": "object",
            "required": [
              "name",
              "email"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "The name of the member."
              },
              "email": {
                "type": "string",
                "description": "The email of the member."
              },
              "bio": {
                "type": "string",
                "nullable": true,
                "description": "The member's biography."
              },
              "phone": {
                "type": "string",
                "nullable": true,
                "description": "The member's phone number."
              },
              "photo": {
                "type": "string",
                "nullable": true,
                "description": "URL to the member's photo."
              }
            }
          }
        }
      },
      "VendorCreateServiceZone": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the service zone."
          },
          "geo_zones": {
            "type": "array",
            "description": "The geo zones that belong to the service zone.",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/GeoZoneCountry"
                },
                {
                  "$ref": "#/components/schemas/GeoZoneProvince"
                },
                {
                  "$ref": "#/components/schemas/GeoZoneCity"
                },
                {
                  "$ref": "#/components/schemas/GeoZoneZip"
                }
              ]
            }
          }
        }
      },
      "VendorCreateShippingOption": {
        "type": "object",
        "required": [
          "name",
          "shipping_profile_id",
          "provider_id",
          "prices",
          "type"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the shipping option."
          },
          "shipping_profile_id": {
            "type": "string",
            "description": "The ID of the shipping profile."
          },
          "provider_id": {
            "type": "string",
            "description": "The ID of the fulfillment provider."
          },
          "prices": {
            "type": "array",
            "description": "The prices of the shipping option.",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/CreateShippingOptionPriceWithCurrency"
                },
                {
                  "$ref": "#/components/schemas/CreateShippingOptionPriceWithRegion"
                }
              ]
            }
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorCreateShippingOptionRule"
            }
          },
          "type": {
            "$ref": "#/components/schemas/CreateShippingOptionTypeObject"
          }
        }
      },
      "VendorCreateShippingOptionRule": {
        "type": "object",
        "required": [
          "operator",
          "attribute",
          "value"
        ],
        "properties": {
          "operator": {
            "type": "string",
            "description": "The operator of the rule."
          },
          "attribute": {
            "type": "string",
            "description": "The attribute of the rule."
          },
          "value": {
            "type": "string",
            "description": "The value of the rule."
          }
        }
      },
      "VendorCreateShippingProfile": {
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the shipping profile"
          },
          "type": {
            "type": "string",
            "description": "Type of the shipping profile"
          },
          "metadata": {
            "type": "object",
            "nullable": true,
            "description": "Additional metadata"
          }
        }
      },
      "VendorCreateStockLocation": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the stock location"
          },
          "address": {
            "$ref": "#/components/schemas/UpsertStockLocationAddress"
          },
          "address_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of an existing address to use"
          },
          "metadata": {
            "type": "object",
            "nullable": true,
            "description": "Additional metadata"
          }
        }
      },
      "VendorCreateStockLocationFulfillmentSet": {
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the fulfillment set"
          },
          "type": {
            "type": "string",
            "description": "Type of the fulfillment set"
          }
        }
      },
      "VendorCurrency": {
        "title": "Vendor currency details",
        "description": "Currency object.",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the currency."
          },
          "is_default": {
            "type": "boolean",
            "description": "Indicates if currency is default in the store."
          },
          "currency_code": {
            "type": "string",
            "description": "The currency code."
          }
        }
      },
      "VendorCustomer": {
        "title": "VendorCustomer",
        "description": "Customer who placed an order in sellers store.",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the customer."
          },
          "company_name": {
            "type": "string",
            "nullable": true,
            "description": "Company name"
          },
          "first_name": {
            "type": "string",
            "description": "First name"
          },
          "last_name": {
            "type": "string",
            "description": "Last name"
          },
          "email": {
            "type": "string",
            "description": "Email"
          },
          "phone": {
            "type": "string",
            "nullable": true,
            "description": "Phone number"
          },
          "has_account": {
            "type": "boolean",
            "description": "Indicates if customer has account"
          },
          "groups": {
            "type": "array",
            "description": "The customer's groups.",
            "items": {
              "$ref": "#/components/schemas/VendorCustomerGroup"
            }
          }
        }
      },
      "VendorCustomerGroup": {
        "title": "VendorCustomerGroup",
        "description": "Customer group details.",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the customer."
          },
          "name": {
            "type": "string",
            "nullable": true,
            "description": "Company name"
          }
        }
      },
      "VendorCustomerOrderOverview": {
        "type": "object",
        "description": "The order's overview.",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The order's ID."
          },
          "version": {
            "type": "number",
            "title": "version",
            "description": "The order's version."
          },
          "region_id": {
            "type": "string",
            "title": "region_id",
            "description": "The ID of the region associated with the order."
          },
          "status": {
            "type": "string",
            "title": "status",
            "description": "The status of the order."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that placed the order."
          },
          "sales_channel_id": {
            "type": "string",
            "title": "sales_channel_id",
            "description": "The ID of the sales channel the order is placed in."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The email of the customer that placed the order.",
            "format": "email"
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The order's currency code."
          },
          "display_id": {
            "type": "number",
            "title": "display_id",
            "description": "The order's display ID."
          },
          "is_draft_order": {
            "type": "boolean",
            "title": "is_draft_order",
            "description": "Indicates if order is draft."
          },
          "metadata": {
            "type": "object",
            "description": "The order's metadata, can hold custom key-value pairs."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the order was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the order was updated."
          }
        }
      },
      "VendorDateStatistics": {
        "title": "Vendor statistics",
        "description": "Statistics object.",
        "properties": {
          "date": {
            "type": "string",
            "description": "Timestamp of the count"
          },
          "count": {
            "type": "string",
            "description": "Count of the records"
          }
        }
      },
      "VendorFulfillmentAddress": {
        "title": "VendorFulfillmentAddress",
        "type": "object",
        "description": "An address's details.",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The address's ID."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The address's company."
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The address's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The address's last name."
          },
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The address's second line."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The address's city."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The address's country code."
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The address's province."
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The address's postal code."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The address's phone."
          },
          "metadata": {
            "type": "object",
            "description": "The address's metadata, can hold custom key-value pairs."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the address was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the address was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the address was deleted."
          }
        }
      },
      "VendorFulfillmentItem": {
        "title": "VendorFulfillmentItem",
        "type": "object",
        "description": "The details of a fulfillment's item.",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The item's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The item's title."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity to be fulfilled."
          },
          "sku": {
            "type": "string",
            "title": "sku",
            "description": "The item's SKU."
          },
          "barcode": {
            "type": "string",
            "title": "barcode",
            "description": "The item's barcode."
          },
          "line_item_id": {
            "type": "string",
            "title": "line_item_id",
            "description": "The ID of the order's line item to be fulfilled."
          },
          "inventory_item_id": {
            "type": "string",
            "title": "inventory_item_id",
            "description": "The ID of the inventory item of the underlying product variant."
          },
          "fulfillment_id": {
            "type": "string",
            "title": "fulfillment_id",
            "description": "The ID of the fulfillment the item belongs to."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the item was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the item was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the item was deleted."
          }
        }
      },
      "VendorFulfillmentLabel": {
        "title": "VendorFulfillmentLabel",
        "type": "object",
        "description": "The details of a fulfillmet's shipment label.",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The label's ID."
          },
          "tracking_number": {
            "type": "string",
            "title": "tracking_number",
            "description": "The label's tracking number."
          },
          "tracking_url": {
            "type": "string",
            "title": "tracking_url",
            "description": "The label's tracking URL."
          },
          "label_url": {
            "type": "string",
            "title": "label_url",
            "description": "The label's URL."
          },
          "fulfillment_id": {
            "type": "string",
            "title": "fulfillment_id",
            "description": "The ID of the fulfillment the label is associated with."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the label was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the label was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the label was deleted."
          }
        }
      },
      "VendorFulfillmentProvider": {
        "title": "VendorFulfillmentProvider",
        "type": "object",
        "description": "The fulfillment provider's details.",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The provider's ID."
          },
          "is_enabled": {
            "type": "boolean",
            "title": "is_enabled",
            "description": "The provider's is enabled."
          }
        }
      },
      "VendorFulfillmentSet": {
        "type": "object",
        "description": "The service zone's fulfillment set.",
        "x-schemaName": "VendorFulfillmentSet",
        "required": [
          "id",
          "name",
          "type",
          "location",
          "service_zones",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The fulfillment set's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The fulfillment set's name."
          },
          "type": {
            "type": "string",
            "title": "type",
            "description": "The fulfillment set's type."
          },
          "location": {
            "$ref": "#/components/schemas/VendorStockLocation"
          },
          "service_zones": {
            "type": "array",
            "description": "The fulfillment set's service zones.",
            "items": {
              "$ref": "#/components/schemas/VendorServiceZone"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The fulfillment set's created at."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The fulfillment set's updated at."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The fulfillment set's deleted at."
          }
        }
      },
      "VendorGeoZone": {
        "type": "object",
        "description": "The geo zone's geo zones.",
        "x-schemaName": "VendorGeoZone",
        "required": [
          "id",
          "type",
          "country_code",
          "province_code",
          "city",
          "postal_expression",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The geo zone's ID."
          },
          "type": {
            "type": "string",
            "description": "The geo zone's type.",
            "enum": [
              "country",
              "province",
              "city",
              "zip"
            ]
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The geo zone's country code."
          },
          "province_code": {
            "type": "string",
            "title": "province_code",
            "description": "The geo zone's province code."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The geo zone's city."
          },
          "postal_expression": {
            "type": "object",
            "description": "The geo zone's postal expression."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The geo zone's created at."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The geo zone's updated at."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The geo zone's deleted at."
          }
        }
      },
      "VendorInviteMember": {
        "type": "object",
        "required": [
          "email",
          "role"
        ],
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "description": "The email address of the member to invite."
          },
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "member"
            ],
            "description": "The role to assign to the invited member."
          }
        }
      },
      "VendorLinkCustomersToGroup": {
        "type": "object",
        "description": "Create customer group details",
        "properties": {
          "add": {
            "type": "array",
            "description": "Customer ids to add.",
            "items": {
              "type": "string"
            }
          },
          "remove": {
            "type": "array",
            "description": "Customer ids to remove.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "VendorMember": {
        "title": "Member",
        "description": "A member object with its properties",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "role",
          "email"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the member."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "member"
            ],
            "description": "The role of the member."
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "The email of the member."
          },
          "name": {
            "type": "string",
            "nullable": true,
            "description": "The name of the member."
          },
          "bio": {
            "type": "string",
            "nullable": true,
            "description": "The member's biography."
          },
          "photo": {
            "type": "string",
            "nullable": true,
            "description": "URL to the member's photo."
          },
          "seller": {
            "$ref": "#/components/schemas/VendorSeller",
            "description": "The seller associated with the member.",
            "nullable": true
          }
        }
      },
      "VendorMemberInvite": {
        "title": "Member Invite",
        "description": "A member invite object with its properties",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "email",
          "role",
          "token",
          "expires_at",
          "accepted"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the member invite."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "The email of the invited member."
          },
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "member"
            ],
            "description": "The role assigned to the invited member."
          },
          "seller": {
            "$ref": "#/components/schemas/VendorSeller",
            "description": "The seller associated with the invite.",
            "nullable": true
          },
          "token": {
            "type": "string",
            "description": "The unique token used to accept the invite."
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the invite expires."
          },
          "accepted": {
            "type": "boolean",
            "description": "Whether the invite has been accepted."
          }
        }
      },
      "VendorNotification": {
        "title": "Notification",
        "description": "Notification object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the notification."
          },
          "to": {
            "type": "string",
            "description": "The recipient of the notification."
          },
          "channel": {
            "type": "string",
            "description": "The channel through which the notification is sent (e.g., 'feed', 'email', 'seller_feed')."
          },
          "template": {
            "type": "string",
            "description": "The template used for the notification."
          },
          "data": {
            "type": "object",
            "description": "Additional data associated with the notification."
          },
          "content": {
            "type": "object",
            "description": "The content of the notification."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          }
        }
      },
      "VendorOnboarding": {
        "title": "Onboarding",
        "description": "An onboarding object with its properties",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the onboarding."
          },
          "data": {
            "type": "object",
            "nullable": true,
            "description": "Additional data stored with the onboarding."
          },
          "context": {
            "type": "object",
            "nullable": true,
            "description": "Additional context stored with the onboarding."
          },
          "payout_account": {
            "$ref": "#/components/schemas/VendorPayoutAccount",
            "description": "The payout account this onboarding belongs to."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          }
        }
      },
      "VendorOrderAddress": {
        "title": "VendorOrderAddress",
        "type": "object",
        "description": "An order address.",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The address's ID."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer this address belongs to."
          },
          "first_name": {
            "type": "string",
            "title": "first_name",
            "description": "The address's first name."
          },
          "last_name": {
            "type": "string",
            "title": "last_name",
            "description": "The address's last name."
          },
          "phone": {
            "type": "string",
            "title": "phone",
            "description": "The address's phone."
          },
          "company": {
            "type": "string",
            "title": "company",
            "description": "The address's company."
          },
          "address_1": {
            "type": "string",
            "title": "address_1",
            "description": "The address's first line."
          },
          "address_2": {
            "type": "string",
            "title": "address_2",
            "description": "The address's second line."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "The address's city."
          },
          "country_code": {
            "type": "string",
            "title": "country_code",
            "description": "The address's country code.",
            "example": "us"
          },
          "country": {
            "$ref": "#/components/schemas/VendorOrderCountryCode"
          },
          "province": {
            "type": "string",
            "title": "province",
            "description": "The address's province."
          },
          "postal_code": {
            "type": "string",
            "title": "postal_code",
            "description": "The address's postal code."
          },
          "metadata": {
            "type": "object",
            "description": "The address's metadata, can hold custom key-value pairs."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the address was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the address was updated."
          }
        }
      },
      "VendorOrderChange": {
        "type": "object",
        "description": "The order's change.",
        "x-schemaName": "VendorOrderChange",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The order change's ID."
          },
          "version": {
            "type": "number",
            "title": "version",
            "description": "The order change's version. This will be the order's version when the change is applied."
          },
          "change_type": {
            "type": "string",
            "description": "The order change's type.",
            "enum": [
              "return",
              "exchange",
              "claim",
              "edit"
            ]
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order this change applies on."
          },
          "return_id": {
            "type": "string",
            "title": "return_id",
            "description": "The ID of the associated return."
          },
          "exchange_id": {
            "type": "string",
            "title": "exchange_id",
            "description": "The ID of the associated exchange."
          },
          "claim_id": {
            "type": "string",
            "title": "claim_id",
            "description": "The ID of the associated claim."
          },
          "actions": {
            "type": "array",
            "description": "The order change's actions.",
            "items": {
              "$ref": "#/components/schemas/VendorOrderChangeAction"
            }
          },
          "status": {
            "type": "string",
            "description": "The order change's status.",
            "enum": [
              "canceled",
              "requested",
              "pending",
              "confirmed",
              "declined"
            ]
          },
          "requested_by": {
            "type": "string",
            "title": "requested_by",
            "description": "The ID of the user that requested the change."
          },
          "requested_at": {
            "type": "string",
            "title": "requested_at",
            "description": "The date the order change was requested.",
            "format": "date-time"
          },
          "confirmed_by": {
            "type": "string",
            "title": "confirmed_by",
            "description": "The ID of the user that confirmed the order change."
          },
          "confirmed_at": {
            "type": "string",
            "title": "confirmed_at",
            "description": "The date the order change was confirmed.",
            "format": "date-time"
          },
          "declined_by": {
            "type": "string",
            "title": "declined_by",
            "description": "The ID of the user that declined the order change."
          },
          "declined_reason": {
            "type": "string",
            "title": "declined_reason",
            "description": "The reason the order change was declined."
          },
          "metadata": {
            "type": "object",
            "description": "The order change's metadata, can hold custom key-value pairs."
          },
          "declined_at": {
            "type": "string",
            "title": "declined_at",
            "description": "The date the order change was declined.",
            "format": "date-time"
          },
          "canceled_by": {
            "type": "string",
            "title": "canceled_by",
            "description": "The ID of the user that canceled the order change."
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date the order change was canceled.",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the order change was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the order change was updated."
          }
        }
      },
      "VendorOrderChangeAction": {
        "type": "object",
        "description": "The order change action's details.",
        "x-schemaName": "VendorOrderChangeAction",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The action's ID."
          },
          "order_change_id": {
            "type": "string",
            "title": "order_change_id",
            "description": "The ID of the order change that the action belongs to."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the order the associated change is for."
          },
          "return_id": {
            "type": "string",
            "title": "return_id",
            "description": "The ID of the associated return."
          },
          "claim_id": {
            "type": "string",
            "title": "claim_id",
            "description": "The ID of the associated claim."
          },
          "exchange_id": {
            "type": "string",
            "title": "exchange_id",
            "description": "The ID of the associated exchange."
          },
          "reference": {
            "type": "string",
            "title": "reference",
            "description": "The name of the table this action applies on.",
            "enum": [
              "claim",
              "exchange",
              "return",
              "order_shipping_method"
            ]
          },
          "reference_id": {
            "type": "string",
            "title": "reference_id",
            "description": "The ID of the record in the referenced table."
          },
          "action": {
            "type": "string",
            "description": "The applied action.",
            "enum": [
              "CANCEL_RETURN_ITEM",
              "FULFILL_ITEM",
              "DELIVER_ITEM",
              "CANCEL_ITEM_FULFILLMENT",
              "ITEM_ADD",
              "ITEM_REMOVE",
              "ITEM_UPDATE",
              "RECEIVE_DAMAGED_RETURN_ITEM",
              "RECEIVE_RETURN_ITEM",
              "RETURN_ITEM",
              "SHIPPING_ADD",
              "SHIPPING_REMOVE",
              "SHIP_ITEM",
              "WRITE_OFF_ITEM",
              "REINSTATE_ITEM"
            ]
          },
          "details": {
            "type": "object",
            "description": "The action's details."
          },
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note that's viewed only by admin users."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the action was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the action was updated."
          }
        }
      },
      "VendorOrderCommissionLine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Commission line id"
          },
          "item_line_id": {
            "type": "string",
            "description": "Order line item id that commission line relates to"
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "Commission value of the order line"
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The currency code."
          }
        }
      },
      "VendorOrderCommissionValue": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "Total commission value of the order"
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The order's currency code."
          }
        }
      },
      "VendorOrderCountryCode": {
        "title": "VendorOrderCountryCode",
        "type": "object",
        "description": "The country's details.",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The country's ID."
          },
          "iso_2": {
            "type": "string",
            "title": "iso_2",
            "description": "The country's iso 2.",
            "example": "us"
          },
          "iso_3": {
            "type": "string",
            "title": "iso_3",
            "description": "The country's iso 3.",
            "example": "usa"
          },
          "num_code": {
            "type": "string",
            "title": "num_code",
            "description": "The country's num code.",
            "example": 840
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The country's name."
          },
          "display_name": {
            "type": "string",
            "title": "display_name",
            "description": "The country's display name."
          }
        }
      },
      "VendorOrderCreateShipment": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "description": "Items in the shipment.",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "quantity": {
                  "type": "number"
                }
              }
            }
          },
          "labels": {
            "type": "array",
            "description": "Labels of the shipment",
            "items": {
              "type": "object",
              "properties": {
                "tracking_number": {
                  "type": "string"
                },
                "tracking_url": {
                  "type": "string"
                },
                "label_url": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "VendorOrderDetails": {
        "type": "object",
        "description": "The order's details.",
        "properties": {
          "split_order_payment": {
            "$ref": "#/components/schemas/VendorSplitOrderPayment"
          },
          "fulfillments": {
            "type": "array",
            "description": "The order's fulfillments.",
            "items": {
              "$ref": "#/components/schemas/VendorOrderFulfillment"
            }
          },
          "shipping_address": {
            "$ref": "#/components/schemas/VendorOrderAddress"
          },
          "billing_address": {
            "$ref": "#/components/schemas/VendorOrderAddress"
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The order's ID."
          },
          "version": {
            "type": "number",
            "title": "version",
            "description": "The order's version."
          },
          "region_id": {
            "type": "string",
            "title": "region_id",
            "description": "The ID of the region associated with the order."
          },
          "customer_id": {
            "type": "string",
            "title": "customer_id",
            "description": "The ID of the customer that placed the order."
          },
          "sales_channel_id": {
            "type": "string",
            "title": "sales_channel_id",
            "description": "The ID of the sales channel the order is placed in."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "The email of the customer that placed the order.",
            "format": "email"
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The order's currency code."
          },
          "display_id": {
            "type": "number",
            "title": "display_id",
            "description": "The order's display ID."
          },
          "items": {
            "type": "array",
            "description": "The order's items.",
            "items": {
              "$ref": "#/components/schemas/VendorOrderLineItem"
            }
          },
          "shipping_methods": {
            "type": "array",
            "description": "The order's shipping methods.",
            "items": {
              "$ref": "#/components/schemas/VendorOrderShippingMethod"
            }
          },
          "commission_value": {
            "$ref": "#/components/schemas/VendorOrderCommissionValue"
          },
          "commission_lines": {
            "type": "array",
            "description": "The commission breakdown.",
            "items": {
              "$ref": "#/components/schemas/VendorOrderCommissionLine"
            }
          },
          "payment_status": {
            "type": "string",
            "description": "The order's payment status.",
            "enum": [
              "canceled",
              "pending",
              "not_paid",
              "awaiting",
              "authorized",
              "partially_authorized",
              "captured",
              "partially_refunded",
              "refunded",
              "requires_action"
            ]
          },
          "fulfillment_status": {
            "type": "string",
            "description": "The order's fulfillment status.",
            "enum": [
              "canceled",
              "not_fulfilled",
              "partially_fulfilled",
              "fulfilled",
              "partially_shipped",
              "shipped",
              "partially_delivered",
              "delivered"
            ]
          },
          "summary": {
            "$ref": "#/components/schemas/VendorOrderSummary"
          },
          "metadata": {
            "type": "object",
            "description": "The order's metadata, can hold custom key-value pairs."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the order was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the order was updated."
          },
          "original_item_total": {
            "type": "number",
            "title": "original_item_total",
            "description": "The total of the order's items including taxes, excluding promotions."
          },
          "original_item_subtotal": {
            "type": "number",
            "title": "original_item_subtotal",
            "description": "The total of the order's items excluding taxes, including promotions."
          },
          "original_item_tax_total": {
            "type": "number",
            "title": "original_item_tax_total",
            "description": "The tax total of the order's items excluding promotions."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The total of the order's items including taxes and promotions."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The total of the order's items excluding taxes, including promotions."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The tax total of the order's items including promotions."
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The order's total excluding promotions, including taxes."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The order's total excluding taxes, including promotions."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The order's tax total, excluding promotions."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The order's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The order's total excluding taxes, including promotions."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The order's tax total including promotions."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The order's discount or promotions total."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The tax total of order's discount or promotion."
          },
          "gift_card_total": {
            "type": "number",
            "title": "gift_card_total",
            "description": "The order's gift card total."
          },
          "gift_card_tax_total": {
            "type": "number",
            "title": "gift_card_tax_total",
            "description": "The tax total of the order's gift card."
          },
          "shipping_total": {
            "type": "number",
            "title": "shipping_total",
            "description": "The order's shipping total including taxes and promotions."
          },
          "shipping_subtotal": {
            "type": "number",
            "title": "shipping_subtotal",
            "description": "The order's shipping total excluding taxes, including promotions."
          },
          "shipping_tax_total": {
            "type": "number",
            "title": "shipping_tax_total",
            "description": "The tax total of the order's shipping."
          },
          "original_shipping_total": {
            "type": "number",
            "title": "original_shipping_total",
            "description": "The order's shipping total including taxes, excluding promotions."
          },
          "original_shipping_subtotal": {
            "type": "number",
            "title": "original_shipping_subtotal",
            "description": "The order's shipping total excluding taxes, including promotions."
          },
          "original_shipping_tax_total": {
            "type": "number",
            "title": "original_shipping_tax_total",
            "description": "The tax total of the order's shipping excluding promotions."
          }
        }
      },
      "VendorOrderFulfillment": {
        "title": "VendorOrderFulfillment",
        "type": "object",
        "description": "The fulfillment's details.",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The fulfillment's ID."
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the location the fulfillment's items are shipped from."
          },
          "provider_id": {
            "type": "string",
            "title": "provider_id",
            "description": "The ID of the fulfillment provider handling this fulfillment."
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the shipping option this fulfillment is created for."
          },
          "provider": {
            "$ref": "#/components/schemas/VendorFulfillmentProvider"
          },
          "delivery_address": {
            "$ref": "#/components/schemas/VendorFulfillmentAddress"
          },
          "items": {
            "type": "array",
            "description": "The fulfillment's items.",
            "items": {
              "$ref": "#/components/schemas/VendorFulfillmentItem"
            }
          },
          "labels": {
            "type": "array",
            "description": "The fulfillment's shipment labels.",
            "items": {
              "$ref": "#/components/schemas/VendorFulfillmentLabel"
            }
          },
          "packed_at": {
            "type": "string",
            "title": "packed_at",
            "description": "The date the fulfillment was packed at."
          },
          "shipped_at": {
            "type": "string",
            "title": "shipped_at",
            "description": "The date the fulfillment was shipped at."
          },
          "delivered_at": {
            "type": "string",
            "title": "delivered_at",
            "description": "The date the fulfillment was delivered at."
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date the fulfillment was canceled at."
          },
          "data": {
            "type": "object",
            "description": "The fulfillment's data, useful for the third-party provider handling the fulfillment.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The fulfillment's metadata, can hold custom key-value pairs."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the fulfillment was created at."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the fulfillment was updated at."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the fulfillment was deleted at."
          }
        }
      },
      "VendorOrderLineItem": {
        "title": "VendorOrderLineItem",
        "type": "object",
        "description": "The item's details.",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The item's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The item's title."
          },
          "subtitle": {
            "type": "string",
            "title": "subtitle",
            "description": "The item's subtitle."
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The URL of the item's thumbnail."
          },
          "variant": {
            "$ref": "#/components/schemas/VendorProductVariant"
          },
          "variant_id": {
            "type": "string",
            "title": "variant_id",
            "description": "The ID of the associated variant."
          },
          "product": {
            "$ref": "#/components/schemas/VendorProduct"
          },
          "product_id": {
            "type": "string",
            "title": "product_id",
            "description": "The ID of the associated product."
          },
          "product_title": {
            "type": "string",
            "title": "product_title",
            "description": "The item's product title."
          },
          "product_description": {
            "type": "string",
            "title": "product_description",
            "description": "The item's product description."
          },
          "product_subtitle": {
            "type": "string",
            "title": "product_subtitle",
            "description": "The item's product subtitle."
          },
          "product_type": {
            "type": "string",
            "title": "product_type",
            "description": "The item's product type."
          },
          "product_collection": {
            "type": "string",
            "title": "product_collection",
            "description": "The ID of the collection the item's product belongs to."
          },
          "product_handle": {
            "type": "string",
            "title": "product_handle",
            "description": "The item's product handle."
          },
          "variant_sku": {
            "type": "string",
            "title": "variant_sku",
            "description": "The item's variant SKU."
          },
          "variant_barcode": {
            "type": "string",
            "title": "variant_barcode",
            "description": "The item's variant barcode."
          },
          "variant_title": {
            "type": "string",
            "title": "variant_title",
            "description": "The item's variant title."
          },
          "variant_option_values": {
            "type": "object",
            "description": "The values of the item variant's options.",
            "example": {
              "Color": "Blue"
            }
          },
          "requires_shipping": {
            "type": "boolean",
            "title": "requires_shipping",
            "description": "Whether the item requires shipping."
          },
          "is_discountable": {
            "type": "boolean",
            "title": "is_discountable",
            "description": "Whether the item is discountable."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the item is tax inclusive."
          },
          "compare_at_unit_price": {
            "type": "number",
            "title": "compare_at_unit_price",
            "description": "The original price of the item before a promotion or sale."
          },
          "unit_price": {
            "type": "number",
            "title": "unit_price",
            "description": "The item's unit price."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The item's quantity."
          },
          "detail": {
            "type": "object"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the item was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the item was updated."
          },
          "metadata": {
            "type": "object",
            "description": "The item's metadata, can hold custom key-value pairs."
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The item's total including taxes, excluding promotions."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The item's total excluding taxes, including promotions."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The total taxes of the item, excluding promotions."
          },
          "item_total": {
            "type": "number",
            "title": "item_total",
            "description": "The total taxes of the item, including promotions."
          },
          "item_subtotal": {
            "type": "number",
            "title": "item_subtotal",
            "description": "The item's total excluding taxes, including promotions."
          },
          "item_tax_total": {
            "type": "number",
            "title": "item_tax_total",
            "description": "The total taxes of the item, including promotions."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The item's total, including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The item's subtotal excluding taxes, including promotions."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The tax total of the item including promotions."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total discount amount of the item."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The total taxes applied on the discounted amount."
          },
          "refundable_total": {
            "type": "number",
            "title": "refundable_total",
            "description": "The total refundable amount of the item's total."
          },
          "refundable_total_per_unit": {
            "type": "number",
            "title": "refundable_total_per_unit",
            "description": "The total refundable amount of the item's total for a single quantity."
          },
          "product_type_id": {
            "type": "string",
            "title": "product_type_id",
            "description": "The ID of the associated product's type."
          }
        }
      },
      "VendorOrderPaymentCollection": {
        "title": "VendorOrderPaymentCollection",
        "type": "object",
        "description": "The payment collection's details.",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The payment collection's ID."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The payment collection's currency code."
          },
          "region_id": {
            "type": "string",
            "title": "region_id",
            "description": "The ID of the region this payment collection is associated with."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The total amount to be paid."
          },
          "authorized_amount": {
            "type": "number",
            "title": "authorized_amount",
            "description": "The total authorized amount of the collection's payments."
          },
          "captured_amount": {
            "type": "number",
            "title": "captured_amount",
            "description": "The total captured amount of the collection's payments."
          },
          "refunded_amount": {
            "type": "number",
            "title": "refunded_amount",
            "description": "The total refunded amount of the collection's payments."
          },
          "completed_at": {
            "type": "string",
            "format": "date-time",
            "title": "completed_at",
            "description": "The date the payment collection was completed."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the payment collection was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the payment collection was updated."
          },
          "metadata": {
            "type": "object",
            "description": "The payment collection's metadata, can hold custom key-value pairs."
          },
          "status": {
            "type": "string",
            "description": "The payment collection's status.",
            "enum": [
              "canceled",
              "not_paid",
              "awaiting",
              "authorized",
              "partially_authorized"
            ]
          }
        }
      },
      "VendorOrderSet": {
        "title": "Order Set",
        "description": "An order set object with its properties",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "display_id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the order set."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "display_id": {
            "type": "number",
            "description": "The display ID of the order set."
          }
        }
      },
      "VendorOrderShippingMethod": {
        "title": "VendorOrderShippingMethod",
        "type": "object",
        "description": "The shipping method's details.",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping method's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The shipping method's name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The shipping method's description."
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The shipping method's amount."
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "title": "is_tax_inclusive",
            "description": "Whether the shipping method's amount includes applied taxes."
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The ID of the shipping option this method was created from."
          },
          "data": {
            "type": "object",
            "description": "The shipping method's data, useful for fulfillment provider handling its fulfillment.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The shipping method's metadata, can hold custom key-value pairs."
          },
          "original_total": {
            "type": "number",
            "title": "original_total",
            "description": "The shipping method's total including taxes, excluding promotions."
          },
          "original_subtotal": {
            "type": "number",
            "title": "original_subtotal",
            "description": "The shipping method's total excluding taxes, including promotions."
          },
          "original_tax_total": {
            "type": "number",
            "title": "original_tax_total",
            "description": "The shipping method's total taxes excluding promotions."
          },
          "total": {
            "type": "number",
            "title": "total",
            "description": "The shipping method's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The shipping method's total excluding taxes, including promotions."
          },
          "tax_total": {
            "type": "number",
            "title": "tax_total",
            "description": "The shipping method's tax total including promotions."
          },
          "discount_total": {
            "type": "number",
            "title": "discount_total",
            "description": "The total discounts applied on the shipping method."
          },
          "discount_tax_total": {
            "type": "number",
            "title": "discount_tax_total",
            "description": "The taxes applied on the discount amount."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the shipping method was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the shipping method was updated."
          }
        }
      },
      "VendorOrderSummary": {
        "title": "VendorOrderSummary",
        "type": "object",
        "description": "The order's summary details.",
        "properties": {
          "total": {
            "type": "number",
            "title": "total",
            "description": "The order's total including taxes and promotions."
          },
          "subtotal": {
            "type": "number",
            "title": "subtotal",
            "description": "The order's total excluding taxes, including promotions."
          },
          "total_tax": {
            "type": "number",
            "title": "total_tax",
            "description": "The order's total taxes."
          },
          "ordered_total": {
            "type": "number",
            "title": "ordered_total",
            "description": "The order's total when it was placed."
          },
          "fulfilled_total": {
            "type": "number",
            "title": "fulfilled_total",
            "description": "The total of the fulfilled items of the order."
          },
          "returned_total": {
            "type": "number",
            "title": "returned_total",
            "description": "The total of the order's returned items."
          },
          "return_request_total": {
            "type": "number",
            "title": "return_request_total",
            "description": "The total of the items requested to be returned."
          },
          "write_off_total": {
            "type": "number",
            "title": "write_off_total",
            "description": "The total of the items removed from the order."
          },
          "paid_total": {
            "type": "number",
            "title": "paid_total",
            "description": "The total amount paid."
          },
          "refunded_total": {
            "type": "number",
            "title": "refunded_total",
            "description": "The total amount refunded."
          }
        }
      },
      "VendorPayout": {
        "title": "Payout",
        "description": "A payout object with its properties",
        "required": [
          "id",
          "currency_code",
          "amount"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the payout."
          },
          "currency_code": {
            "type": "string",
            "description": "The currency code of the payout."
          },
          "amount": {
            "type": "number",
            "description": "The amount of the payout."
          },
          "data": {
            "type": "object",
            "nullable": true,
            "description": "Additional data stored with the payout."
          },
          "payout_account": {
            "$ref": "#/components/schemas/VendorPayoutAccount",
            "description": "The payout account this payout belongs to."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          }
        }
      },
      "VendorPayoutAccount": {
        "title": "Payout Account",
        "description": "A payout account object with its properties",
        "required": [
          "id",
          "status",
          "reference_id",
          "data"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the payout account."
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "active",
              "disabled"
            ],
            "description": "The status of the payout account."
          },
          "reference_id": {
            "type": "string",
            "description": "Reference ID used by the payment processor."
          },
          "data": {
            "type": "object",
            "description": "Additional data stored with the payout account."
          },
          "context": {
            "type": "object",
            "nullable": true,
            "description": "Context data stored with the payout account."
          },
          "onboarding": {
            "$ref": "#/components/schemas/VendorOnboarding",
            "nullable": true,
            "description": "The onboarding associated with the payout account."
          },
          "payouts": {
            "type": "array",
            "description": "The payouts associated with this account.",
            "items": {
              "$ref": "#/components/schemas/VendorPayout"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          }
        }
      },
      "VendorPriceList": {
        "type": "object",
        "description": "The price list's details.",
        "x-schemaName": "VendorPriceList",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The price list's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The price list's title."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The price list's description."
          },
          "rules": {
            "type": "object",
            "description": "The price list's rules."
          },
          "starts_at": {
            "type": "string",
            "title": "starts_at",
            "description": "The date the price list starts."
          },
          "ends_at": {
            "type": "string",
            "title": "ends_at",
            "description": "The date the price list ends."
          },
          "status": {
            "type": "string",
            "description": "The price list's status.",
            "enum": [
              "draft",
              "active"
            ]
          },
          "type": {
            "type": "string",
            "description": "The price list's type.",
            "enum": [
              "sale",
              "override"
            ]
          },
          "prices": {
            "type": "array",
            "description": "The price list's prices.",
            "items": {
              "$ref": "#/components/schemas/VendorPriceListPrice"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the price list was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the price list was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the price list was deleted."
          }
        }
      },
      "VendorPriceListPrice": {
        "type": "object",
        "description": "The details of a price list's price.",
        "x-schemaName": "VendorPriceListPrice",
        "properties": {
          "variant_id": {
            "type": "string",
            "title": "variant_id",
            "description": "The ID of the product variant this price list is for."
          },
          "rules": {
            "type": "object",
            "description": "The price's rules."
          },
          "id": {
            "type": "string",
            "title": "id",
            "description": "The price's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The price's title."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The price's currency code.",
            "example": "usd"
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The price's amount."
          },
          "raw_amount": {
            "type": "object",
            "description": "The price's raw amount."
          },
          "min_quantity": {
            "type": "number",
            "title": "min_quantity",
            "description": "The minimum quantity that must be available in the cart for the price to be applied."
          },
          "max_quantity": {
            "type": "number",
            "title": "max_quantity",
            "description": "The maximum quantity allowed to be available in the cart for the price to be applied."
          },
          "price_set_id": {
            "type": "string",
            "title": "price_set_id",
            "description": "The ID of the price set this price belongs to."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the price was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the price was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the price was deleted."
          }
        }
      },
      "VendorPricePreference": {
        "title": "Vendor Price Preference",
        "description": "A price preference configuration for vendors.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the price preference.",
            "example": "pp_01H9Z8K2N3M4P5Q6R7S8T9U0V"
          },
          "attribute": {
            "type": "string",
            "description": "The attribute name for the price preference.",
            "example": "color"
          },
          "value": {
            "type": "string",
            "description": "The value of the attribute for the price preference.",
            "example": "red"
          },
          "is_tax_inclusive": {
            "type": "boolean",
            "description": "Whether the price preference is tax inclusive.",
            "example": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when the price preference was created.",
            "example": "2023-01-01T00:00:00.000Z"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when the price preference was last updated.",
            "example": "2023-01-01T00:00:00.000Z"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "The date and time when the price preference was deleted.",
            "example": null
          }
        },
        "required": [
          "id",
          "attribute",
          "value",
          "is_tax_inclusive",
          "created_at",
          "updated_at"
        ]
      },
      "VendorProduct": {
        "title": "Product",
        "description": "A product object with its properties",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "title",
          "handle"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the product."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was deleted.",
            "nullable": true
          },
          "title": {
            "type": "string",
            "description": "The title of the product."
          },
          "subtitle": {
            "type": "string",
            "nullable": true,
            "description": "The subtitle of the product."
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "A description of the product."
          },
          "handle": {
            "type": "string",
            "description": "A unique handle for the product."
          },
          "is_giftcard": {
            "type": "boolean",
            "description": "Whether the product is a gift card."
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "proposed",
              "published",
              "rejected"
            ],
            "description": "The status of the product."
          },
          "thumbnail": {
            "type": "string",
            "nullable": true,
            "description": "URL to the product's thumbnail."
          },
          "width": {
            "type": "number",
            "nullable": true,
            "description": "The width of the product."
          },
          "weight": {
            "type": "number",
            "nullable": true,
            "description": "The weight of the product."
          },
          "length": {
            "type": "number",
            "nullable": true,
            "description": "The length of the product."
          },
          "height": {
            "type": "number",
            "nullable": true,
            "description": "The height of the product."
          },
          "origin_country": {
            "type": "string",
            "nullable": true,
            "description": "The origin country of the product."
          },
          "hs_code": {
            "type": "string",
            "nullable": true,
            "description": "The HS Code of the product."
          },
          "mid_code": {
            "type": "string",
            "nullable": true,
            "description": "The MID Code of the product."
          },
          "material": {
            "type": "string",
            "nullable": true,
            "description": "The material of the product."
          },
          "collection": {
            "description": "The associated product collection.",
            "$ref": "#/components/schemas/VendorProductCollection",
            "nullable": true
          },
          "type": {
            "description": "The associated product type.",
            "$ref": "#/components/schemas/VendorProductType",
            "nullable": true
          },
          "tags": {
            "description": "The associated product tags.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorProductTag"
            }
          },
          "categories": {
            "description": "The associated product categories.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorProductCategory"
            }
          },
          "variants": {
            "description": "The associated product variants.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorProductVariant"
            }
          },
          "options": {
            "description": "The associated product options.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorProductOption"
            }
          },
          "images": {
            "description": "The associated product images.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorProductImage"
            }
          },
          "discountable": {
            "type": "boolean",
            "description": "Whether the product can be discounted."
          },
          "external_id": {
            "type": "string",
            "nullable": true,
            "description": "The ID of the product in an external system."
          },
          "metadata": {
            "type": "object",
            "description": "An optional key-value map with additional details.",
            "example": {
              "car": "white"
            }
          },
          "rating": {
            "type": "string",
            "nullable": true,
            "description": "The average rating from customer reviews"
          }
        }
      },
      "VendorProductCategory": {
        "title": "Product Category",
        "description": "A product category object with its properties",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the product category."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was deleted.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The name of the product category."
          },
          "handle": {
            "type": "string",
            "description": "The handle of the product category."
          },
          "is_active": {
            "type": "boolean",
            "description": "Whether the product category is active."
          },
          "is_internal": {
            "type": "boolean",
            "description": "Whether the product category is internal."
          },
          "rank": {
            "type": "number",
            "description": "The rank of the category among sibling categories."
          },
          "parent_category": {
            "description": "The parent category.",
            "$ref": "#/components/schemas/VendorProductCategory",
            "nullable": true
          },
          "category_children": {
            "description": "The child categories.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorProductCategory"
            }
          },
          "metadata": {
            "type": "object",
            "description": "An optional key-value map with additional details.",
            "example": {
              "car": "white"
            }
          }
        }
      },
      "VendorProductCollection": {
        "title": "Product Collection",
        "description": "A product collection object with its properties",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "title"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the product collection."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was deleted.",
            "nullable": true
          },
          "title": {
            "type": "string",
            "description": "The title of the product collection."
          },
          "handle": {
            "type": "string",
            "description": "The handle of the product collection."
          },
          "metadata": {
            "type": "object",
            "description": "An optional key-value map with additional details.",
            "example": {
              "car": "white"
            }
          }
        }
      },
      "VendorProductImage": {
        "title": "Product Image",
        "description": "A product image object with its properties",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "url"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the product image."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was deleted.",
            "nullable": true
          },
          "url": {
            "type": "string",
            "description": "The URL of the product image."
          },
          "rank": {
            "type": "number",
            "description": "The rank of the product image."
          },
          "metadata": {
            "type": "object",
            "description": "An optional key-value map with additional details.",
            "example": {
              "car": "white"
            }
          }
        }
      },
      "VendorProductOption": {
        "title": "Product Option",
        "description": "A product option object with its properties",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "title"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the product option."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was deleted.",
            "nullable": true
          },
          "title": {
            "type": "string",
            "description": "The title of the product option."
          },
          "values": {
            "description": "The associated product option values.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorProductOptionValue"
            }
          },
          "metadata": {
            "type": "object",
            "description": "An optional key-value map with additional details.",
            "example": {
              "car": "white"
            }
          }
        }
      },
      "VendorProductOptionValue": {
        "title": "Product Option Value",
        "description": "A product option value object with its properties",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "value"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the product option value."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was deleted.",
            "nullable": true
          },
          "value": {
            "type": "string",
            "description": "The value of the product option value."
          },
          "metadata": {
            "type": "object",
            "description": "An optional key-value map with additional details.",
            "example": {
              "car": "white"
            }
          }
        }
      },
      "VendorProductTag": {
        "title": "Product Tag",
        "description": "A product tag object with its properties",
        "required": [
          "id",
          "value"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the product tag."
          },
          "value": {
            "type": "string",
            "description": "The value of the product tag."
          },
          "metadata": {
            "type": "object",
            "description": "An optional key-value map with additional details.",
            "example": {
              "car": "white"
            }
          }
        }
      },
      "VendorProductType": {
        "title": "Product Type",
        "description": "A product type object with its properties",
        "required": [
          "id",
          "value"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the product type."
          },
          "value": {
            "type": "string",
            "description": "The value of the product type."
          },
          "metadata": {
            "type": "object",
            "description": "An optional key-value map with additional details.",
            "example": {
              "car": "white"
            }
          }
        }
      },
      "VendorProductVariant": {
        "title": "Product Variant",
        "description": "A product variant object with its properties",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "title"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the product variant."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was deleted.",
            "nullable": true
          },
          "title": {
            "type": "string",
            "description": "The title of the product variant."
          },
          "sku": {
            "type": "string",
            "nullable": true,
            "description": "The SKU of the product variant."
          },
          "barcode": {
            "type": "string",
            "nullable": true,
            "description": "The barcode of the product variant."
          },
          "ean": {
            "type": "string",
            "nullable": true,
            "description": "The EAN of the product variant."
          },
          "upc": {
            "type": "string",
            "nullable": true,
            "description": "The UPC of the product variant."
          },
          "allow_backorder": {
            "type": "boolean",
            "description": "Whether the product variant can be ordered when it's out of stock."
          },
          "manage_inventory": {
            "type": "boolean",
            "description": "Whether the product variant's inventory should be managed by the core system."
          },
          "hs_code": {
            "type": "string",
            "nullable": true,
            "description": "The HS Code of the product variant."
          },
          "origin_country": {
            "type": "string",
            "nullable": true,
            "description": "The origin country of the product variant."
          },
          "mid_code": {
            "type": "string",
            "nullable": true,
            "description": "The MID Code of the product variant."
          },
          "material": {
            "type": "string",
            "nullable": true,
            "description": "The material of the product variant."
          },
          "weight": {
            "type": "number",
            "nullable": true,
            "description": "The weight of the product variant."
          },
          "length": {
            "type": "number",
            "nullable": true,
            "description": "The length of the product variant."
          },
          "height": {
            "type": "number",
            "nullable": true,
            "description": "The height of the product variant."
          },
          "width": {
            "type": "number",
            "nullable": true,
            "description": "The width of the product variant."
          },
          "options": {
            "description": "The associated product option values.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorProductOptionValue"
            }
          },
          "metadata": {
            "type": "object",
            "description": "An optional key-value map with additional details.",
            "example": {
              "car": "white"
            }
          }
        }
      },
      "VendorPromotion": {
        "title": "Promotion",
        "description": "Promotion object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the item."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "code": {
            "type": "string",
            "description": "The code of the promotion."
          },
          "is_automatic": {
            "type": "boolean",
            "description": "Whether the promotion is applied automatically."
          },
          "type": {
            "type": "string",
            "description": "The type of the promotion."
          },
          "application_method": {
            "$ref": "#/components/schemas/VendorApplicationMethod"
          },
          "rules": {
            "type": "array",
            "description": "Promotion rules.",
            "items": {
              "$ref": "#/components/schemas/VendorPromotionRule"
            }
          }
        }
      },
      "VendorPromotionRule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the item."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "description": {
            "type": "string",
            "description": "The description of the rule."
          },
          "attribute": {
            "type": "string",
            "description": "The attribute of the rule."
          },
          "operator": {
            "type": "string",
            "description": "The operator of the rule."
          },
          "values": {
            "type": "array",
            "description": "Rule values.",
            "items": {
              "type": "object",
              "properties": {
                "value": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "VendorReceiveReturn": {
        "type": "object",
        "description": "The return receival details.",
        "properties": {
          "internal_note": {
            "type": "string",
            "title": "internal_note",
            "description": "A note."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The return's description."
          },
          "metadata": {
            "type": "object",
            "description": "The return's metadata, can hold custom key-value pairs."
          }
        }
      },
      "VendorReceiveReturnItems": {
        "type": "object",
        "description": "The items details.",
        "x-schemaName": "VendorReceiveReturnItems",
        "properties": {
          "items": {
            "type": "array",
            "description": "The items details.",
            "items": {
              "type": "object",
              "description": "An item's details.",
              "properties": {
                "id": {
                  "type": "string",
                  "title": "id",
                  "description": "The ID of the item in the order."
                },
                "quantity": {
                  "type": "number",
                  "title": "quantity",
                  "description": "The item's quantity."
                },
                "internal_note": {
                  "type": "string",
                  "title": "internal_note",
                  "description": "A note."
                }
              }
            }
          }
        }
      },
      "VendorRegion": {
        "title": "Region",
        "description": "Region object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the item."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "name": {
            "type": "string",
            "description": "The name of the region."
          },
          "currency_code": {
            "type": "string",
            "description": "The currency of the region."
          },
          "automatic_taxes": {
            "type": "boolean",
            "description": "Whether taxes are applied automatically during checkout."
          },
          "type": {
            "type": "string",
            "description": "The type of the promotion."
          },
          "countries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorRegionCountry"
            }
          }
        }
      },
      "VendorRegionCountry": {
        "title": "Region country",
        "description": "Region country object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the item."
          },
          "name": {
            "type": "string",
            "description": "Name of the country"
          },
          "display_name": {
            "type": "string",
            "description": "Display name of the country"
          },
          "iso_2": {
            "type": "string",
            "description": "ISO_2 code"
          },
          "iso_3": {
            "type": "string",
            "description": "ISO_3 code"
          },
          "num_code": {
            "type": "string",
            "description": "Numcode"
          }
        }
      },
      "VendorRemoveProductsFromPriceList": {
        "type": "object",
        "properties": {
          "remove": {
            "type": "array",
            "description": "Products ids to remove from the price list",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "VendorRequest": {
        "title": "Request",
        "description": "A request object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the request."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "type": {
            "type": "string",
            "description": "The type of the request object."
          },
          "data": {
            "type": "object",
            "description": "The request payload."
          },
          "submitter_id": {
            "type": "string",
            "description": "A unique id of the submitter"
          },
          "reviewer_id": {
            "type": "string",
            "description": "A unique id of the reviewer",
            "nullable": true
          },
          "reviewer_note": {
            "type": "string",
            "description": "A note provided by the reviewer",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "The status of the request"
          }
        }
      },
      "VendorReservation": {
        "type": "object",
        "description": "The reservation's details.",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The reservation's ID."
          },
          "line_item_id": {
            "type": "string",
            "title": "line_item_id",
            "description": "The ID of the line item this reservation is for."
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The ID of the location the quantity is reserved from."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The reservation's quantity."
          },
          "external_id": {
            "type": "string",
            "title": "external_id",
            "description": "An ID in an external system"
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The reservation's description."
          },
          "inventory_item_id": {
            "type": "string",
            "title": "inventory_item_id",
            "description": "The ID of the inventory item this reservation is associated with."
          },
          "created_by": {
            "type": "string",
            "title": "created_by",
            "description": "The ID of the user that created this reservation."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date this reservation was deleted."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date this reservation was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date this reservation was updated."
          }
        }
      },
      "VendorReturn": {
        "type": "object",
        "description": "The return's details.",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The return's ID."
          },
          "status": {
            "type": "string",
            "description": "The return's status.",
            "enum": [
              "canceled",
              "requested",
              "received",
              "partially_received"
            ]
          },
          "refund_amount": {
            "type": "number",
            "title": "refund_amount",
            "description": "The amount refunded by this return."
          },
          "order_id": {
            "type": "string",
            "title": "order_id",
            "description": "The ID of the associated order."
          },
          "items": {
            "type": "array",
            "description": "The return's items.",
            "items": {
              "$ref": "#/components/schemas/VendorReturnItem"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the return was created."
          },
          "canceled_at": {
            "type": "string",
            "title": "canceled_at",
            "description": "The date the return was canceled.",
            "format": "date-time"
          },
          "exchange_id": {
            "type": "string",
            "title": "exchange_id",
            "description": "The return's exchange id."
          },
          "location_id": {
            "type": "string",
            "title": "location_id",
            "description": "The return's location id."
          },
          "claim_id": {
            "type": "string",
            "title": "claim_id",
            "description": "The return's claim id."
          },
          "order_version": {
            "type": "number",
            "title": "order_version",
            "description": "The return's order version."
          },
          "display_id": {
            "type": "number",
            "title": "display_id",
            "description": "The return's display id."
          },
          "no_notification": {
            "type": "boolean",
            "title": "no_notification",
            "description": "Whether the customer should receive notifications about the return's updates."
          },
          "received_at": {
            "type": "string",
            "title": "received_at",
            "description": "The date the return was received."
          }
        }
      },
      "VendorReturnItem": {
        "type": "object",
        "description": "The return item's details.",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The return item's ID."
          },
          "quantity": {
            "type": "number",
            "title": "quantity",
            "description": "The return item's quantity."
          },
          "received_quantity": {
            "type": "number",
            "title": "received_quantity",
            "description": "The received quantity of the item. This quantity is added to the stocked inventory quantity of the item."
          },
          "damaged_quantity": {
            "type": "number",
            "title": "damaged_quantity",
            "description": "The received damaged quantity of the item, which isn't added to the stocked inventory quantity of the item."
          },
          "reason_id": {
            "type": "string",
            "title": "reason_id",
            "description": "The ID of the return reason associated with the item."
          },
          "note": {
            "type": "string",
            "title": "note",
            "description": "A note about why the item was returned."
          },
          "item_id": {
            "type": "string",
            "title": "item_id",
            "description": "The ID of the associated order item."
          },
          "return_id": {
            "type": "string",
            "title": "return_id",
            "description": "The ID of the return this return item belongs to."
          },
          "metadata": {
            "type": "object",
            "description": "The return item's metadata, can hold custom key-value pairs."
          }
        }
      },
      "VendorReturnsDismissItemsAction": {
        "type": "object",
        "description": "The return receival details.",
        "properties": {
          "quantity": {
            "type": "string",
            "description": "Quantity of the item"
          },
          "internal_note": {
            "type": "string",
            "description": "A note."
          }
        }
      },
      "VendorReturnsReceiveItemsAction": {
        "type": "object",
        "description": "The return receival details.",
        "properties": {
          "quantity": {
            "type": "string",
            "description": "Quantity of the item"
          },
          "internal_note": {
            "type": "string",
            "description": "A note."
          }
        }
      },
      "VendorRuleAttributeOption": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The rule attribute's ID, which is a rule's `attribute` it refers to."
          },
          "value": {
            "type": "string",
            "title": "value",
            "description": "The rule value's value."
          },
          "label": {
            "type": "string",
            "title": "label",
            "description": "The rule value's label."
          },
          "operators": {
            "type": "array",
            "description": "The attribute's operators."
          },
          "items": {
            "$ref": "#/components/schemas/VendorBaseRuleOperatorOptions"
          }
        }
      },
      "VendorRuleValueOption": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "title": "value",
            "description": "The rule value's value."
          },
          "label": {
            "type": "string",
            "title": "label",
            "description": "The rule value's label."
          }
        }
      },
      "VendorSalesChannel": {
        "type": "object",
        "description": "The details of the sales channel.",
        "x-schemaName": "VendorSalesChannel",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The sales channel ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The sales channel name."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The sales channel description."
          },
          "is_disabled": {
            "type": "boolean",
            "title": "is_disabled",
            "description": "Is sales channel disabled."
          },
          "metadata": {
            "type": "object",
            "title": "metadata",
            "description": "The sales channel metadata."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the channel was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the channel was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the channel was deleted."
          }
        }
      },
      "VendorSeller": {
        "title": "Seller",
        "description": "A seller object with its properties",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "name",
          "handle"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the seller."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "name": {
            "type": "string",
            "description": "The name of the seller."
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "A description of the seller."
          },
          "handle": {
            "type": "string",
            "description": "A unique handle for the seller."
          },
          "email": {
            "type": "string",
            "nullable": true,
            "description": "Store contact email."
          },
          "phone": {
            "type": "string",
            "nullable": true,
            "description": "Store contact phone."
          },
          "photo": {
            "type": "string",
            "nullable": true,
            "description": "URL to the seller's photo."
          },
          "address_line": {
            "type": "string",
            "nullable": true,
            "description": "Seller address line."
          },
          "postal_code": {
            "type": "string",
            "nullable": true,
            "description": "Seller postal code."
          },
          "city": {
            "type": "string",
            "nullable": true,
            "description": "Seller city."
          },
          "state": {
            "type": "string",
            "nullable": true,
            "description": "Seller state."
          },
          "country_code": {
            "type": "string",
            "nullable": true,
            "description": "Seller country code."
          },
          "tax_id": {
            "type": "string",
            "nullable": true,
            "description": "Seller tax id."
          },
          "members": {
            "type": "array",
            "description": "The members associated with the seller.",
            "items": {
              "$ref": "#/components/schemas/VendorMember"
            }
          }
        }
      },
      "VendorSellerOnboarding": {
        "title": "SellerOnboarding",
        "description": "An onboarding object with its properties",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "name",
          "handle"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the onboarding."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date with timezone at which the resource was last updated."
          },
          "seller_id": {
            "type": "string",
            "description": "The unique identifier of the seller."
          },
          "store_information": {
            "type": "boolean",
            "description": "Indicates if seller completed store information."
          },
          "stripe_connection": {
            "type": "boolean",
            "description": "Indicates if seller completed stripe connection."
          },
          "locations_shipping": {
            "type": "boolean",
            "description": "Indicates if seller added shipping locations."
          },
          "products": {
            "type": "boolean",
            "description": "Indicates if seller added products."
          }
        }
      },
      "VendorServiceZone": {
        "type": "object",
        "description": "The shipping option's service zone.",
        "x-schemaName": "VendorServiceZone",
        "required": [
          "id",
          "name",
          "fulfillment_set_id",
          "fulfillment_set",
          "geo_zones",
          "shipping_options",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The service zone's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The service zone's name."
          },
          "fulfillment_set_id": {
            "type": "string",
            "title": "fulfillment_set_id",
            "description": "The service zone's fulfillment set id."
          },
          "fulfillment_set": {
            "$ref": "#/components/schemas/VendorFulfillmentSet"
          },
          "geo_zones": {
            "type": "array",
            "description": "The service zone's geo zones.",
            "items": {
              "$ref": "#/components/schemas/VendorGeoZone"
            }
          },
          "shipping_options": {
            "type": "array",
            "description": "The service zone's shipping options.",
            "items": {
              "$ref": "#/components/schemas/VendorShippingOption"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The service zone's created at."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The service zone's updated at."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The service zone's deleted at."
          }
        }
      },
      "VendorShippingOption": {
        "type": "object",
        "description": "The shipping option's details.",
        "x-schemaName": "VendorShippingOption",
        "required": [
          "id",
          "name",
          "price_type",
          "service_zone_id",
          "service_zone",
          "shipping_option_type_id",
          "type",
          "rules",
          "prices",
          "data",
          "metadata",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping option's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The shipping option's name."
          },
          "price_type": {
            "type": "string",
            "description": "The shipping option's price type. If it's `flat`, the price is fixed and is set in the `prices` property. If it's `calculated`, the price is calculated on checkout by the associated fulfillment provider.",
            "enum": [
              "calculated",
              "flat"
            ]
          },
          "service_zone_id": {
            "type": "string",
            "title": "service_zone_id",
            "description": "The ID of the service zone this option belongs to."
          },
          "service_zone": {
            "$ref": "#/components/schemas/VendorServiceZone"
          },
          "shipping_option_type_id": {
            "type": "string",
            "title": "shipping_option_type_id",
            "description": "The ID of the associated shipping option type."
          },
          "type": {
            "$ref": "#/components/schemas/VendorShippingOptionType"
          },
          "prices": {
            "type": "array",
            "description": "The shipping option's prices. If the `price_type` is `calculated`, this array will be empty since the price is calculated by the fulfillment provider during checkout.",
            "items": {
              "$ref": "#/components/schemas/VendorShippingOptionPrice"
            }
          },
          "data": {
            "type": "object",
            "description": "The shipping option's data, useful for the fulfillment provider handling fulfillments created from this option.",
            "externalDocs": {
              "url": "https://docs.medusajs.com/v2/resources/commerce-modules/fulfillment/shipping-option#data-property"
            }
          },
          "metadata": {
            "type": "object",
            "description": "The shipping option's metadata, can hold custom key-value pairs."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the shipping option was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the shipping option was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the shipping option was deleted."
          }
        }
      },
      "VendorShippingOptionPrice": {
        "type": "object",
        "description": "The details of the shipping option's price.",
        "x-schemaName": "VendorShippingOptionPrice",
        "required": [
          "price_rules",
          "rules_count",
          "id",
          "title",
          "currency_code",
          "amount",
          "raw_amount",
          "min_quantity",
          "max_quantity",
          "price_set_id",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The price's ID."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The price's title."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The price's currency code.",
            "example": "usd"
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The price's amount."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the price was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the price was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the price was deleted."
          }
        }
      },
      "VendorShippingOptionType": {
        "type": "object",
        "description": "The shipping option's details.",
        "x-schemaName": "VendorShippingOptionType",
        "required": [
          "id",
          "label",
          "description",
          "code",
          "shipping_option_id",
          "created_at",
          "updated_at",
          "deleted_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping option's ID."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the shipping option was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the shipping option was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the shipping option was deleted."
          },
          "label": {
            "type": "string",
            "title": "label",
            "description": "The type's label."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The type's description."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The type's code."
          },
          "shipping_option_id": {
            "type": "string",
            "title": "shipping_option_id",
            "description": "The type's shipping option id."
          }
        }
      },
      "VendorShippingProfile": {
        "type": "object",
        "description": "The shipping profile details.",
        "x-schemaName": "VendorShippingProfile",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The shipping profile's ID."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "created_at",
            "description": "The date the shipping profile was created."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "updated_at",
            "description": "The date the shipping profile was updated."
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "title": "deleted_at",
            "description": "The date the shipping profile was deleted."
          },
          "name": {
            "type": "string",
            "title": "label",
            "description": "The shipping profile name."
          },
          "type": {
            "type": "string",
            "title": "description",
            "description": "The shipping profile type."
          }
        }
      },
      "VendorSplitOrderPayment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Split order payment id"
          },
          "status": {
            "type": "string",
            "description": "Payment status"
          },
          "authorized_amount": {
            "type": "number",
            "title": "amount",
            "description": "Authorized amount"
          },
          "captured_amount": {
            "type": "number",
            "title": "amount",
            "description": "Captured amount"
          },
          "refunded_amount": {
            "type": "number",
            "title": "amount",
            "description": "Refunded amount"
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The currency code."
          }
        }
      },
      "VendorStockLocation": {
        "type": "object",
        "description": "The stock location's details.",
        "x-schemaName": "VendorStockLocation",
        "required": [
          "id",
          "name",
          "address_id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "The location's ID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "The location's name."
          },
          "fulfillment_sets": {
            "type": "array",
            "description": "The fulfillment sets associated with the location.",
            "items": {
              "$ref": "#/components/schemas/VendorFulfillmentSet"
            }
          }
        }
      },
      "VendorStore": {
        "title": "Vendor store",
        "description": "Store object.",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the store."
          },
          "name": {
            "type": "string",
            "description": "Name of the store."
          },
          "default_sales_channel_id": {
            "type": "string",
            "description": "Id of the default sales channel."
          },
          "default_region_id": {
            "type": "string",
            "description": "Id of the default region."
          },
          "default_location_id": {
            "type": "string",
            "description": "Id of the default location."
          },
          "supported_currencies": {
            "type": "array",
            "description": "List of the supported currencies.",
            "items": {
              "$ref": "#/components/schemas/VendorCurrency"
            }
          }
        }
      },
      "VendorUpdateApplicationMethod": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the promotion."
          },
          "value": {
            "type": "number",
            "description": "The percentage value of the promotion."
          },
          "max_quantity": {
            "type": "string",
            "description": "The max quantity of the items."
          },
          "currency_code": {
            "type": "string",
            "description": "The currency code."
          },
          "apply_to_quantity": {
            "type": "string",
            "description": "Apply to quantity of the items."
          },
          "buy_rules_min_quantity": {
            "type": "string",
            "description": "Buy ruyles min quantity of the items."
          }
        }
      },
      "VendorUpdateCampaign": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The campaign's name."
          },
          "campaign_identifier": {
            "type": "string",
            "description": "The campaign's identifier."
          },
          "description": {
            "type": "string",
            "description": "The campaign's description."
          },
          "starts_at": {
            "type": "string",
            "description": "The date and time that the campaign starts."
          },
          "ends_at": {
            "type": "string",
            "description": "The date and time that the campaign ends."
          },
          "budget": {
            "type": "object",
            "properties": {
              "limit": {
                "type": "number",
                "description": "The buget's limit."
              }
            }
          }
        }
      },
      "VendorUpdateCustomersCustomerGroups": {
        "type": "object",
        "description": "Update customers customer groups",
        "properties": {
          "add": {
            "type": "array",
            "description": "Customer group ids to add.",
            "items": {
              "type": "string"
            }
          },
          "remove": {
            "type": "array",
            "description": "Customer group ids to remove.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "VendorUpdateInventoryItem": {
        "title": "VendorUpdateInventoryItem",
        "type": "object",
        "description": "The inventory item's details.",
        "properties": {
          "sku": {
            "type": "string",
            "title": "sku",
            "description": "The inventory item's SKU."
          },
          "hs_code": {
            "type": "string",
            "title": "hs_code",
            "description": "The inventory item's HS code."
          },
          "weight": {
            "type": "number",
            "title": "weight",
            "description": "The inventory item's weight."
          },
          "length": {
            "type": "number",
            "title": "length",
            "description": "The inventory item's length."
          },
          "height": {
            "type": "number",
            "title": "height",
            "description": "The inventory item's height."
          },
          "width": {
            "type": "number",
            "title": "width",
            "description": "The inventory item's width."
          },
          "origin_country": {
            "type": "string",
            "title": "origin_country",
            "description": "The inventory item's origin country."
          },
          "mid_code": {
            "type": "string",
            "title": "mid_code",
            "description": "The inventory item's mid code."
          },
          "material": {
            "type": "string",
            "title": "material",
            "description": "The inventory item's material."
          },
          "title": {
            "type": "string",
            "title": "title",
            "description": "The inventory item's title."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The description of the variant associated with the inventory item."
          },
          "requires_shipping": {
            "type": "boolean",
            "title": "requires_shipping",
            "description": "Whether the item requires shipping."
          },
          "thumbnail": {
            "type": "string",
            "title": "thumbnail",
            "description": "The inventory item's thumbnail."
          },
          "metadata": {
            "type": "object",
            "description": "The inventory item's metadata, used to store custom key-value pairs."
          }
        }
      },
      "VendorUpdateInventoryLevel": {
        "type": "object",
        "properties": {
          "stocked_quantity": {
            "type": "number",
            "description": "The quantity of the InventoryItem in StockLocation."
          },
          "reserved_quantity": {
            "type": "number",
            "title": "reserved_quantity",
            "description": "The quantity reserved from the available stocked_quantity."
          }
        }
      },
      "VendorUpdateMember": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the member."
          },
          "bio": {
            "type": "string",
            "nullable": true,
            "description": "The member's biography."
          },
          "phone": {
            "type": "string",
            "nullable": true,
            "description": "The member's phone number."
          },
          "photo": {
            "type": "string",
            "nullable": true,
            "description": "URL to the member's photo."
          }
        }
      },
      "VendorUpdateOrderReturnRequest": {
        "title": "Update Order Return Request",
        "description": "A schema for the update of order return request.",
        "x-resourceId": "VendorUpdateOrderReturnRequest",
        "type": "object",
        "properties": {
          "vendor_reviewer_note": {
            "type": "string",
            "description": "Reviewer note."
          },
          "location_id": {
            "type": "string",
            "description": "Location ID to use for the return."
          },
          "status": {
            "type": "string",
            "enum": [
              "refunded",
              "withdrawn",
              "escalated"
            ],
            "description": "A status of the request"
          }
        }
      },
      "VendorUpdatePriceList": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "title": "title",
            "description": "The price list's title."
          },
          "description": {
            "type": "string",
            "title": "description",
            "description": "The price list's description."
          },
          "rules": {
            "type": "object",
            "description": "The price list's rules."
          },
          "starts_at": {
            "type": "string",
            "title": "starts_at",
            "description": "The date the price list starts."
          },
          "ends_at": {
            "type": "string",
            "title": "ends_at",
            "description": "The date the price list ends."
          },
          "status": {
            "type": "string",
            "description": "The price list's status.",
            "enum": [
              "draft",
              "active"
            ]
          },
          "type": {
            "type": "string",
            "description": "The price list's type.",
            "enum": [
              "sale",
              "override"
            ]
          }
        }
      },
      "VendorUpdatePriceListPrice": {
        "type": "object",
        "properties": {
          "variant_id": {
            "type": "string",
            "title": "variant_id",
            "description": "The ID of the product variant this price list is for."
          },
          "rules": {
            "type": "object",
            "description": "The price's rules."
          },
          "currency_code": {
            "type": "string",
            "title": "currency_code",
            "description": "The price's currency code.",
            "example": "usd"
          },
          "amount": {
            "type": "number",
            "title": "amount",
            "description": "The price's amount."
          },
          "min_quantity": {
            "type": "number",
            "title": "min_quantity",
            "description": "The minimum quantity that must be available in the cart for the price to be applied."
          },
          "max_quantity": {
            "type": "number",
            "title": "max_quantity",
            "description": "The maximum quantity allowed to be available in the cart for the price to be applied."
          }
        }
      },
      "VendorUpdateProduct": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateProduct"
          },
          {
            "type": "object",
            "properties": {
              "additional_data": {
                "type": "object",
                "description": "Additional data to use in products hooks.",
                "additionalProperties": true
              }
            }
          }
        ]
      },
      "VendorUpdateProductStatus": {
        "type": "object",
        "required": [
          "title"
        ],
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "proposed",
              "published"
            ],
            "description": "The status of the product."
          }
        }
      },
      "VendorUpdatePromotion": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "The code of the promotion."
          },
          "is_automatic": {
            "type": "boolean",
            "description": "Whether the promotion is applied automatically.",
            "default": false
          },
          "campaign_id": {
            "type": "string",
            "description": "The campaign id."
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "active",
              "inactive"
            ],
            "description": "The status of the promotion."
          },
          "application_method": {
            "$ref": "#/components/schemas/VendorUpdateApplicationMethod"
          }
        }
      },
      "VendorUpdateRequestData": {
        "type": "object",
        "required": [
          "request"
        ],
        "properties": {
          "request": {
            "type": "object",
            "description": "The resource to be updated",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ProductCollectionRequest"
              },
              {
                "$ref": "#/components/schemas/ProductCategoryRequest"
              },
              {
                "$ref": "#/components/schemas/ReviewRemoveRequest"
              },
              {
                "$ref": "#/components/schemas/ProductTypeRequest"
              },
              {
                "$ref": "#/components/schemas/ProductTagRequest"
              }
            ]
          }
        }
      },
      "VendorUpdateReservation": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "The description of the reservation."
          },
          "location_id": {
            "type": "string",
            "description": "The location id of the reservation."
          },
          "quantity": {
            "type": "number",
            "description": "The number of items in the reservation."
          }
        }
      },
      "VendorUpdateReview": {
        "title": "Update Review",
        "description": "A schema for the review update.",
        "x-resourceId": "VendorUpdateReview",
        "type": "object",
        "properties": {
          "seller_note": {
            "type": "string",
            "description": "The seller response to a review.",
            "maxLength": 300
          }
        }
      },
      "VendorUpdateSeller": {
        "title": "Update Seller",
        "description": "A schema for the update seller request body.",
        "x-resourceId": "VendorUpdateSeller",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the seller.",
            "minLength": 4
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "A description of the seller."
          },
          "photo": {
            "type": "string",
            "nullable": true,
            "description": "URL to the seller's photo."
          },
          "email": {
            "type": "string",
            "description": "Store contact email."
          },
          "phone": {
            "type": "string",
            "description": "Store contact phone."
          },
          "address_line": {
            "type": "string",
            "nullable": true,
            "description": "Seller address line."
          },
          "postal_code": {
            "type": "string",
            "nullable": true,
            "description": "Seller postal code."
          },
          "city": {
            "type": "string",
            "nullable": true,
            "description": "Seller city."
          },
          "state": {
            "type": "string",
            "nullable": true,
            "description": "Seller state."
          },
          "country_code": {
            "type": "string",
            "nullable": true,
            "description": "Seller country code."
          },
          "tax_id": {
            "type": "string",
            "nullable": true,
            "description": "Seller tax id."
          }
        }
      },
      "VendorUpdateServiceZone": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the service zone."
          },
          "geo_zones": {
            "type": "array",
            "description": "The geo zones that belong to the service zone.",
            "items": {
              "oneOf": [
                {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/GeoZoneCountry"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "The ID of the geo zone."
                        }
                      }
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/GeoZoneProvince"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "The ID of the geo zone."
                        }
                      }
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/GeoZoneCity"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "The ID of the geo zone."
                        }
                      }
                    }
                  ]
                },
                {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/GeoZoneZip"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "The ID of the geo zone."
                        }
                      }
                    }
                  ]
                }
              ]
            }
          }
        }
      },
      "VendorUpdateShippingOption": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the shipping option."
          },
          "shipping_profile_id": {
            "type": "string",
            "description": "The ID of the shipping profile."
          },
          "provider_id": {
            "type": "string",
            "description": "The ID of the fulfillment provider."
          },
          "prices": {
            "type": "array",
            "description": "The prices of the shipping option.",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/CreateShippingOptionPriceWithCurrency"
                },
                {
                  "$ref": "#/components/schemas/CreateShippingOptionPriceWithRegion"
                }
              ]
            }
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorCreateShippingOptionRule"
            }
          },
          "type": {
            "$ref": "#/components/schemas/CreateShippingOptionTypeObject"
          }
        }
      },
      "VendorUpdateShippingProfile": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the shipping profile"
          },
          "type": {
            "type": "string",
            "description": "Type of the shipping profile"
          },
          "metadata": {
            "type": "object",
            "nullable": true,
            "description": "Additional metadata"
          }
        }
      },
      "VendorUpdateStockLocation": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the stock location"
          },
          "address": {
            "$ref": "#/components/schemas/UpsertStockLocationAddress"
          },
          "address_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of an existing address to use"
          },
          "metadata": {
            "type": "object",
            "nullable": true,
            "description": "Additional metadata"
          }
        }
      },
      "Wishlist": {
        "title": "Wishlist Response",
        "description": "A response object containing a list of wishlists and pagination details.",
        "properties": {
          "wishlists": {
            "type": "array",
            "description": "A list of wishlists.",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique identifier of the wishlist."
                },
                "products": {
                  "type": "array",
                  "description": "A list of products in the wishlist.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "nullable": true,
                        "description": "The unique identifier of the product."
                      },
                      "title": {
                        "type": "string",
                        "nullable": true,
                        "description": "The title of the product."
                      },
                      "handle": {
                        "type": "string",
                        "nullable": true,
                        "description": "The unique handle of the product."
                      },
                      "subtitle": {
                        "type": "string",
                        "nullable": true,
                        "description": "The subtitle of the product."
                      },
                      "description": {
                        "type": "string",
                        "nullable": true,
                        "description": "The description of the product."
                      },
                      "is_giftcard": {
                        "type": "boolean",
                        "nullable": true,
                        "description": "Indicates if the product is a gift card."
                      },
                      "status": {
                        "type": "string",
                        "nullable": true,
                        "description": "The status of the product."
                      },
                      "thumbnail": {
                        "type": "string",
                        "nullable": true,
                        "description": "URL of the product thumbnail."
                      },
                      "weight": {
                        "type": "number",
                        "nullable": true,
                        "description": "Weight of the product."
                      },
                      "length": {
                        "type": "number",
                        "nullable": true,
                        "description": "Length of the product."
                      },
                      "height": {
                        "type": "number",
                        "nullable": true,
                        "description": "Height of the product."
                      },
                      "width": {
                        "type": "number",
                        "nullable": true,
                        "description": "Width of the product."
                      },
                      "origin_country": {
                        "type": "string",
                        "nullable": true,
                        "description": "Country of origin."
                      },
                      "hs_code": {
                        "type": "string",
                        "nullable": true,
                        "description": "Harmonized System code."
                      },
                      "mid_code": {
                        "type": "string",
                        "nullable": true,
                        "description": "Manufacturer Identification code."
                      },
                      "material": {
                        "type": "string",
                        "nullable": true,
                        "description": "Material of the product."
                      },
                      "discountable": {
                        "type": "boolean",
                        "nullable": true,
                        "description": "Indicates if the product is discountable."
                      },
                      "external_id": {
                        "type": "string",
                        "nullable": true,
                        "description": "External identifier."
                      },
                      "metadata": {
                        "type": "object",
                        "nullable": true,
                        "description": "Additional metadata."
                      },
                      "type_id": {
                        "type": "string",
                        "nullable": true,
                        "description": "Product type identifier."
                      },
                      "type": {
                        "type": "string",
                        "nullable": true,
                        "description": "Product type."
                      },
                      "collection_id": {
                        "type": "string",
                        "nullable": true,
                        "description": "Collection identifier."
                      },
                      "collection": {
                        "type": "object",
                        "nullable": true,
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "Collection ID."
                          }
                        }
                      },
                      "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The date with timezone when the product was created."
                      },
                      "updated_at": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The date with timezone when the product was last updated."
                      },
                      "deleted_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true,
                        "description": "The date with timezone when the product was deleted."
                      },
                      "variant_id": {
                        "type": "string",
                        "nullable": true,
                        "description": "Variant identifier."
                      },
                      "price_set_id": {
                        "type": "string",
                        "nullable": true,
                        "description": "Price set identifier."
                      },
                      "currency_code": {
                        "type": "string",
                        "nullable": true,
                        "description": "Currency code."
                      },
                      "calculated_amount": {
                        "type": "number",
                        "nullable": true,
                        "description": "Calculated amount for the product."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "securitySchemes": {
      "api_token": {
        "type": "http",
        "x-displayName": "API Token",
        "scheme": "bearer"
      },
      "jwt_token": {
        "type": "http",
        "x-displayName": "JWT Token",
        "scheme": "bearer"
      },
      "cookie_auth": {
        "type": "apiKey",
        "x-displayName": "Cookie Session ID",
        "in": "cookie",
        "name": "connect.sid"
      },
      "reset_password": {
        "type": "http",
        "x-displayName": "Reset Password Token",
        "scheme": "bearer",
        "x-is-auth": false
      }
    }
  }
}