diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml index f870d7b78..a8ad3f3a2 100644 --- a/.github/workflows/build-docker.yml +++ b/.github/workflows/build-docker.yml @@ -1,38 +1,38 @@ -name: Docker Build +# name: Docker Build -on: - push: - branches: - - main +# on: +# push: +# branches: +# - main -jobs: - build: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-latest] +# jobs: +# build: +# runs-on: ${{ matrix.os }} +# strategy: +# matrix: +# os: [ubuntu-latest, macos-latest] - steps: - - name: Checkout Code - uses: actions/checkout@v2 +# steps: +# - name: Checkout Code +# uses: actions/checkout@v2 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 +# - name: Set up Docker Buildx +# uses: docker/setup-buildx-action@v1 - - name: Build and Push Images - run: | - IMAGE_NAME="opencopilot/${{ matrix.os }}-backend" - docker buildx create --use - docker buildx build --platform linux/amd64,linux/arm64 -t $IMAGE_NAME backend/ - echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin - docker push $IMAGE_NAME +# - name: Build and Push Images +# run: | +# IMAGE_NAME="opencopilot/${{ matrix.os }}-backend" +# docker buildx create --use +# docker buildx build --platform linux/amd64,linux/arm64 -t $IMAGE_NAME backend/ +# echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin +# docker push $IMAGE_NAME - IMAGE_NAME="opencopilot/${{ matrix.os }}-llm-server" - docker buildx create --use - docker buildx build --platform linux/amd64,linux/arm64 -t $IMAGE_NAME llm-server/ - echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin - docker push $IMAGE_NAME +# IMAGE_NAME="opencopilot/${{ matrix.os }}-llm-server" +# docker buildx create --use +# docker buildx build --platform linux/amd64,linux/arm64 -t $IMAGE_NAME llm-server/ +# echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin +# docker push $IMAGE_NAME - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} +# env: +# DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} +# DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} diff --git a/llm-server/notebooks/openapi.ipynb b/llm-server/notebooks/openapi.ipynb index e6d8f02d2..f69856e62 100644 --- a/llm-server/notebooks/openapi.ipynb +++ b/llm-server/notebooks/openapi.ipynb @@ -10,110 +10,161 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: prance in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (23.6.21.0)\n", + "Requirement already satisfied: chardet>=3.0 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from prance) (4.0.0)\n", + "Requirement already satisfied: ruamel.yaml>=0.17.10 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from prance) (0.17.21)\n", + "Requirement already satisfied: requests>=2.25 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from prance) (2.31.0)\n", + "Requirement already satisfied: six~=1.15 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from prance) (1.16.0)\n", + "Requirement already satisfied: packaging>=21.3 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from prance) (23.1)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from requests>=2.25->prance) (3.2.0)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from requests>=2.25->prance) (3.4)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from requests>=2.25->prance) (1.26.16)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from requests>=2.25->prance) (2023.7.22)\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "pip install prance" + ] + }, + { + "cell_type": "code", + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ - "from typing import Any, Dict, List, Union\n", - "import json\n", - "from jsonschema import Draft7Validator, exceptions\n", - "from faker import Faker\n", - "import random\n", - "\n", - "fake = Faker()\n", - "\n", - "def generate_example_json(schema: Dict[str, Any], num_items: int = 1, include_optional: bool = True) -> Union[Dict[str, Any], List[Dict[str, Any]]]:\n", - " def generate_example_property(property_schema: Dict[str, Any], required: bool = True) -> Any:\n", - " if \"example\" in property_schema:\n", - " return property_schema[\"example\"]\n", - "\n", - " if \"type\" in property_schema:\n", - " if \"format\" in property_schema:\n", - " return generate_example_with_format(property_schema)\n", - " elif property_schema[\"type\"] == \"object\":\n", - " example_property: Dict[str, Any] = {}\n", - " if \"properties\" in property_schema:\n", - " for prop_name, prop_schema in property_schema[\"properties\"].items():\n", - " # Check if property is required in the schema\n", - " is_required = required and prop_name in schema.get(\"required\", [])\n", - " if is_required or include_optional:\n", - " example_property[prop_name] = generate_example_property(prop_schema, is_required)\n", - " return example_property\n", - " elif property_schema[\"type\"] == \"array\":\n", - " example_property = []\n", - " if \"items\" in property_schema:\n", - " for _ in range(num_items):\n", - " example_property.append(generate_example_property(property_schema[\"items\"]))\n", - " return example_property\n", - " elif property_schema[\"type\"] == \"string\":\n", - " if \"enum\" in property_schema:\n", - " return random.choice(property_schema[\"enum\"])\n", - " else:\n", - " return fake.word()\n", - " elif property_schema[\"type\"] == \"integer\":\n", - " return fake.random_int(min=0, max=100)\n", - " elif property_schema[\"type\"] == \"number\":\n", - " return fake.random_number(decimals=2, min_value=0, max_value=100)\n", - " elif property_schema[\"type\"] == \"boolean\":\n", - " return fake.boolean()\n", - " elif property_schema[\"type\"] == \"null\":\n", - " return None\n", - "\n", - " def generate_example_with_format(property_schema: Dict[str, Any]) -> Any:\n", - " format_type = property_schema[\"format\"]\n", - " \n", - " if format_type == \"date-time\":\n", - " return fake.iso8601()\n", - " elif format_type == \"date\":\n", - " return fake.date()\n", - " elif format_type == \"int64\":\n", - " return fake.random_int(min=0, max=9223372036854775807)\n", - " elif format_type == \"int32\":\n", - " return fake.random_int(min=0, max=2147483647)\n", - " else:\n", - " return fake.word()\n", - "\n", - " example_json: Union[Dict[str, Any], List[Dict[str, Any]]] = {}\n", - " \n", - " # Handle root-level arrays\n", - " if schema.get(\"type\") == \"array\":\n", - " example_json = []\n", - " for _ in range(num_items):\n", - " example_json.append(generate_example_property(schema[\"items\"]))\n", - " else:\n", - " for prop_name, prop_schema in schema[\"properties\"].items():\n", - " # Check if property is required in the schema\n", - " is_required = prop_name in schema.get(\"required\", [])\n", - " if is_required or include_optional:\n", - " example_json[prop_name] = generate_example_property(prop_schema, is_required)\n", - "\n", - " return example_json\n" + "import prance" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from prance import ResolvingParser" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting openapi-spec-validator\n", + " Obtaining dependency information for openapi-spec-validator from https://files.pythonhosted.org/packages/24/32/c4272a50c125b225bedc730306e28aad9563ad85794c16de41c05b6135ca/openapi_spec_validator-0.6.0-py3-none-any.whl.metadata\n", + " Downloading openapi_spec_validator-0.6.0-py3-none-any.whl.metadata (5.3 kB)\n", + "Requirement already satisfied: jsonschema<5.0.0,>=4.18.0 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from openapi-spec-validator) (4.19.0)\n", + "Collecting jsonschema-spec<0.3.0,>=0.2.3 (from openapi-spec-validator)\n", + " Obtaining dependency information for jsonschema-spec<0.3.0,>=0.2.3 from https://files.pythonhosted.org/packages/d9/a2/7759a4268e1d6d74559de8fb5be6c77d621b822ae64d28ab4f7467c22f63/jsonschema_spec-0.2.4-py3-none-any.whl.metadata\n", + " Downloading jsonschema_spec-0.2.4-py3-none-any.whl.metadata (4.3 kB)\n", + "Collecting lazy-object-proxy<2.0.0,>=1.7.1 (from openapi-spec-validator)\n", + " Downloading lazy-object-proxy-1.9.0.tar.gz (42 kB)\n", + "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m42.8/42.8 kB\u001b[0m \u001b[31m1.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25h Installing build dependencies ... \u001b[?25ldone\n", + "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n", + "\u001b[?25h Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n", + "\u001b[?25hCollecting openapi-schema-validator<0.7.0,>=0.6.0 (from openapi-spec-validator)\n", + " Obtaining dependency information for openapi-schema-validator<0.7.0,>=0.6.0 from https://files.pythonhosted.org/packages/c2/b2/07594c8395ddb145856549127f4ce183c635670241d105846c1afaf2fc7f/openapi_schema_validator-0.6.1-py3-none-any.whl.metadata\n", + " Downloading openapi_schema_validator-0.6.1-py3-none-any.whl.metadata (5.3 kB)\n", + "Requirement already satisfied: attrs>=22.2.0 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from jsonschema<5.0.0,>=4.18.0->openapi-spec-validator) (23.1.0)\n", + "Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from jsonschema<5.0.0,>=4.18.0->openapi-spec-validator) (2023.7.1)\n", + "Requirement already satisfied: referencing>=0.28.4 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from jsonschema<5.0.0,>=4.18.0->openapi-spec-validator) (0.30.2)\n", + "Requirement already satisfied: rpds-py>=0.7.1 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from jsonschema<5.0.0,>=4.18.0->openapi-spec-validator) (0.10.2)\n", + "Requirement already satisfied: PyYAML>=5.1 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from jsonschema-spec<0.3.0,>=0.2.3->openapi-spec-validator) (6.0)\n", + "Collecting pathable<0.5.0,>=0.4.1 (from jsonschema-spec<0.3.0,>=0.2.3->openapi-spec-validator)\n", + " Downloading pathable-0.4.3-py3-none-any.whl (9.6 kB)\n", + "Requirement already satisfied: requests<3.0.0,>=2.31.0 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from jsonschema-spec<0.3.0,>=0.2.3->openapi-spec-validator) (2.31.0)\n", + "Collecting jsonschema<5.0.0,>=4.18.0 (from openapi-spec-validator)\n", + " Obtaining dependency information for jsonschema<5.0.0,>=4.18.0 from https://files.pythonhosted.org/packages/0f/bf/a84bc75f069f4f156e1c0d9892fb7325945106c6ecaad9f29d24360872af/jsonschema-4.19.1-py3-none-any.whl.metadata\n", + " Downloading jsonschema-4.19.1-py3-none-any.whl.metadata (7.9 kB)\n", + "Requirement already satisfied: rfc3339-validator in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from openapi-schema-validator<0.7.0,>=0.6.0->openapi-spec-validator) (0.1.4)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from requests<3.0.0,>=2.31.0->jsonschema-spec<0.3.0,>=0.2.3->openapi-spec-validator) (3.2.0)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from requests<3.0.0,>=2.31.0->jsonschema-spec<0.3.0,>=0.2.3->openapi-spec-validator) (3.4)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from requests<3.0.0,>=2.31.0->jsonschema-spec<0.3.0,>=0.2.3->openapi-spec-validator) (1.26.16)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from requests<3.0.0,>=2.31.0->jsonschema-spec<0.3.0,>=0.2.3->openapi-spec-validator) (2023.7.22)\n", + "Requirement already satisfied: six in /Users/shanurrahman/anaconda3/lib/python3.11/site-packages (from rfc3339-validator->openapi-schema-validator<0.7.0,>=0.6.0->openapi-spec-validator) (1.16.0)\n", + "Downloading openapi_spec_validator-0.6.0-py3-none-any.whl (32 kB)\n", + "Downloading jsonschema_spec-0.2.4-py3-none-any.whl (14 kB)\n", + "Downloading openapi_schema_validator-0.6.1-py3-none-any.whl (8.8 kB)\n", + "Downloading jsonschema-4.19.1-py3-none-any.whl (83 kB)\n", + "\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m83.3/83.3 kB\u001b[0m \u001b[31m6.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hBuilding wheels for collected packages: lazy-object-proxy\n", + " Building wheel for lazy-object-proxy (pyproject.toml) ... \u001b[?25ldone\n", + "\u001b[?25h Created wheel for lazy-object-proxy: filename=lazy_object_proxy-1.9.0-cp311-cp311-macosx_11_0_arm64.whl size=21096 sha256=629d211aaf08df75a7c9c8230ae77a131caa39c7195636fe9ef5543282e6f611\n", + " Stored in directory: /Users/shanurrahman/Library/Caches/pip/wheels/7c/a7/f9/ccb0f900c529b76336b1f654449c221d38e623423b47c9c2f6\n", + "Successfully built lazy-object-proxy\n", + "Installing collected packages: pathable, lazy-object-proxy, jsonschema-spec, jsonschema, openapi-schema-validator, openapi-spec-validator\n", + " Attempting uninstall: lazy-object-proxy\n", + " Found existing installation: lazy-object-proxy 1.6.0\n", + " Uninstalling lazy-object-proxy-1.6.0:\n", + " Successfully uninstalled lazy-object-proxy-1.6.0\n", + " Attempting uninstall: jsonschema\n", + " Found existing installation: jsonschema 4.19.0\n", + " Uninstalling jsonschema-4.19.0:\n", + " Successfully uninstalled jsonschema-4.19.0\n", + "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", + "conda-repo-cli 1.0.41 requires requests_mock, which is not installed.\n", + "spyder 5.4.3 requires pyqt5<5.16, which is not installed.\n", + "spyder 5.4.3 requires pyqtwebengine<5.16, which is not installed.\n", + "conda-repo-cli 1.0.41 requires clyent==1.2.1, but you have clyent 1.2.2 which is incompatible.\n", + "conda-repo-cli 1.0.41 requires nbformat==5.4.0, but you have nbformat 5.7.0 which is incompatible.\n", + "conda-repo-cli 1.0.41 requires requests==2.28.1, but you have requests 2.31.0 which is incompatible.\u001b[0m\u001b[31m\n", + "\u001b[0mSuccessfully installed jsonschema-4.19.1 jsonschema-spec-0.2.4 lazy-object-proxy-1.9.0 openapi-schema-validator-0.6.1 openapi-spec-validator-0.6.0 pathable-0.4.3\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "pip install openapi-spec-validator" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "parser = ResolvingParser('https://petstore3.swagger.io/api/v3/openapi.json')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'id': 10,\n", - " 'petId': 198772,\n", - " 'quantity': 7,\n", - " 'shipDate': '2012-06-24T10:55:10',\n", - " 'status': 'approved',\n", - " 'complete': True}" + "'{\"openapi\": \"3.0.2\", \"info\": {\"title\": \"Swagger Petstore - OpenAPI 3.0\", \"description\": \"This is a sample Pet Store Server based on the OpenAPI 3.0 specification. You can find out more about\\\\nSwagger at [http://swagger.io](http://swagger.io). In the third iteration of the pet store, we\\'ve switched to the design first approach!\\\\nYou can now help us improve the API whether it\\'s by making changes to the definition itself or to the code.\\\\nThat way, with time, we can improve the API in general, and expose some of the new features in OAS3.\\\\n\\\\nSome useful links:\\\\n- [The Pet Store repository](https://github.com/swagger-api/swagger-petstore)\\\\n- [The source API definition for the Pet Store](https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml)\", \"termsOfService\": \"http://swagger.io/terms/\", \"contact\": {\"email\": \"apiteam@swagger.io\"}, \"license\": {\"name\": \"Apache 2.0\", \"url\": \"http://www.apache.org/licenses/LICENSE-2.0.html\"}, \"version\": \"1.0.17\"}, \"externalDocs\": {\"description\": \"Find out more about Swagger\", \"url\": \"http://swagger.io\"}, \"servers\": [{\"url\": \"/api/v3\"}], \"tags\": [{\"name\": \"pet\", \"description\": \"Everything about your Pets\", \"externalDocs\": {\"description\": \"Find out more\", \"url\": \"http://swagger.io\"}}, {\"name\": \"store\", \"description\": \"Access to Petstore orders\", \"externalDocs\": {\"description\": \"Find out more about our store\", \"url\": \"http://swagger.io\"}}, {\"name\": \"user\", \"description\": \"Operations about user\"}], \"paths\": {\"/pet\": {\"put\": {\"tags\": [\"pet\"], \"summary\": \"Update an existing pet\", \"description\": \"Update an existing pet by Id\", \"operationId\": \"updatePet\", \"requestBody\": {\"description\": \"Update an existent pet in the store\", \"content\": {\"application/json\": {\"schema\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}, \"application/xml\": {\"schema\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}, \"application/x-www-form-urlencoded\": {\"schema\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}}, \"required\": true}, \"responses\": {\"200\": {\"description\": \"Successful operation\", \"content\": {\"application/xml\": {\"schema\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}, \"application/json\": {\"schema\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}}}, \"400\": {\"description\": \"Invalid ID supplied\"}, \"404\": {\"description\": \"Pet not found\"}, \"405\": {\"description\": \"Validation exception\"}}, \"security\": [{\"petstore_auth\": [\"write:pets\", \"read:pets\"]}]}, \"post\": {\"tags\": [\"pet\"], \"summary\": \"Add a new pet to the store\", \"description\": \"Add a new pet to the store\", \"operationId\": \"addPet\", \"requestBody\": {\"description\": \"Create a new pet in the store\", \"content\": {\"application/json\": {\"schema\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}, \"application/xml\": {\"schema\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}, \"application/x-www-form-urlencoded\": {\"schema\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}}, \"required\": true}, \"responses\": {\"200\": {\"description\": \"Successful operation\", \"content\": {\"application/xml\": {\"schema\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}, \"application/json\": {\"schema\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}}}, \"405\": {\"description\": \"Invalid input\"}}, \"security\": [{\"petstore_auth\": [\"write:pets\", \"read:pets\"]}]}}, \"/pet/findByStatus\": {\"get\": {\"tags\": [\"pet\"], \"summary\": \"Finds Pets by status\", \"description\": \"Multiple status values can be provided with comma separated strings\", \"operationId\": \"findPetsByStatus\", \"parameters\": [{\"name\": \"status\", \"in\": \"query\", \"description\": \"Status values that need to be considered for filter\", \"required\": false, \"explode\": true, \"schema\": {\"type\": \"string\", \"default\": \"available\", \"enum\": [\"available\", \"pending\", \"sold\"]}}], \"responses\": {\"200\": {\"description\": \"successful operation\", \"content\": {\"application/xml\": {\"schema\": {\"type\": \"array\", \"items\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}}, \"application/json\": {\"schema\": {\"type\": \"array\", \"items\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}}}}, \"400\": {\"description\": \"Invalid status value\"}}, \"security\": [{\"petstore_auth\": [\"write:pets\", \"read:pets\"]}]}}, \"/pet/findByTags\": {\"get\": {\"tags\": [\"pet\"], \"summary\": \"Finds Pets by tags\", \"description\": \"Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.\", \"operationId\": \"findPetsByTags\", \"parameters\": [{\"name\": \"tags\", \"in\": \"query\", \"description\": \"Tags to filter by\", \"required\": false, \"explode\": true, \"schema\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}}}], \"responses\": {\"200\": {\"description\": \"successful operation\", \"content\": {\"application/xml\": {\"schema\": {\"type\": \"array\", \"items\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}}, \"application/json\": {\"schema\": {\"type\": \"array\", \"items\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}}}}, \"400\": {\"description\": \"Invalid tag value\"}}, \"security\": [{\"petstore_auth\": [\"write:pets\", \"read:pets\"]}]}}, \"/pet/{petId}\": {\"get\": {\"tags\": [\"pet\"], \"summary\": \"Find pet by ID\", \"description\": \"Returns a single pet\", \"operationId\": \"getPetById\", \"parameters\": [{\"name\": \"petId\", \"in\": \"path\", \"description\": \"ID of pet to return\", \"required\": true, \"schema\": {\"type\": \"integer\", \"format\": \"int64\"}}], \"responses\": {\"200\": {\"description\": \"successful operation\", \"content\": {\"application/xml\": {\"schema\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}, \"application/json\": {\"schema\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}}}, \"400\": {\"description\": \"Invalid ID supplied\"}, \"404\": {\"description\": \"Pet not found\"}}, \"security\": [{\"api_key\": []}, {\"petstore_auth\": [\"write:pets\", \"read:pets\"]}]}, \"post\": {\"tags\": [\"pet\"], \"summary\": \"Updates a pet in the store with form data\", \"description\": \"\", \"operationId\": \"updatePetWithForm\", \"parameters\": [{\"name\": \"petId\", \"in\": \"path\", \"description\": \"ID of pet that needs to be updated\", \"required\": true, \"schema\": {\"type\": \"integer\", \"format\": \"int64\"}}, {\"name\": \"name\", \"in\": \"query\", \"description\": \"Name of pet that needs to be updated\", \"schema\": {\"type\": \"string\"}}, {\"name\": \"status\", \"in\": \"query\", \"description\": \"Status of pet that needs to be updated\", \"schema\": {\"type\": \"string\"}}], \"responses\": {\"405\": {\"description\": \"Invalid input\"}}, \"security\": [{\"petstore_auth\": [\"write:pets\", \"read:pets\"]}]}, \"delete\": {\"tags\": [\"pet\"], \"summary\": \"Deletes a pet\", \"description\": \"\", \"operationId\": \"deletePet\", \"parameters\": [{\"name\": \"api_key\", \"in\": \"header\", \"description\": \"\", \"required\": false, \"schema\": {\"type\": \"string\"}}, {\"name\": \"petId\", \"in\": \"path\", \"description\": \"Pet id to delete\", \"required\": true, \"schema\": {\"type\": \"integer\", \"format\": \"int64\"}}], \"responses\": {\"400\": {\"description\": \"Invalid pet value\"}}, \"security\": [{\"petstore_auth\": [\"write:pets\", \"read:pets\"]}]}}, \"/pet/{petId}/uploadImage\": {\"post\": {\"tags\": [\"pet\"], \"summary\": \"uploads an image\", \"description\": \"\", \"operationId\": \"uploadFile\", \"parameters\": [{\"name\": \"petId\", \"in\": \"path\", \"description\": \"ID of pet to update\", \"required\": true, \"schema\": {\"type\": \"integer\", \"format\": \"int64\"}}, {\"name\": \"additionalMetadata\", \"in\": \"query\", \"description\": \"Additional Metadata\", \"required\": false, \"schema\": {\"type\": \"string\"}}], \"requestBody\": {\"content\": {\"application/octet-stream\": {\"schema\": {\"type\": \"string\", \"format\": \"binary\"}}}}, \"responses\": {\"200\": {\"description\": \"successful operation\", \"content\": {\"application/json\": {\"schema\": {\"type\": \"object\", \"properties\": {\"code\": {\"type\": \"integer\", \"format\": \"int32\"}, \"type\": {\"type\": \"string\"}, \"message\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"##default\"}}}}}}, \"security\": [{\"petstore_auth\": [\"write:pets\", \"read:pets\"]}]}}, \"/store/inventory\": {\"get\": {\"tags\": [\"store\"], \"summary\": \"Returns pet inventories by status\", \"description\": \"Returns a map of status codes to quantities\", \"operationId\": \"getInventory\", \"responses\": {\"200\": {\"description\": \"successful operation\", \"content\": {\"application/json\": {\"schema\": {\"type\": \"object\", \"additionalProperties\": {\"type\": \"integer\", \"format\": \"int32\"}}}}}}, \"security\": [{\"api_key\": []}]}}, \"/store/order\": {\"post\": {\"tags\": [\"store\"], \"summary\": \"Place an order for a pet\", \"description\": \"Place a new order in the store\", \"operationId\": \"placeOrder\", \"requestBody\": {\"content\": {\"application/json\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"petId\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 198772}, \"quantity\": {\"type\": \"integer\", \"format\": \"int32\", \"example\": 7}, \"shipDate\": {\"type\": \"string\", \"format\": \"date-time\"}, \"status\": {\"type\": \"string\", \"description\": \"Order Status\", \"example\": \"approved\", \"enum\": [\"placed\", \"approved\", \"delivered\"]}, \"complete\": {\"type\": \"boolean\"}}, \"xml\": {\"name\": \"order\"}}}, \"application/xml\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"petId\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 198772}, \"quantity\": {\"type\": \"integer\", \"format\": \"int32\", \"example\": 7}, \"shipDate\": {\"type\": \"string\", \"format\": \"date-time\"}, \"status\": {\"type\": \"string\", \"description\": \"Order Status\", \"example\": \"approved\", \"enum\": [\"placed\", \"approved\", \"delivered\"]}, \"complete\": {\"type\": \"boolean\"}}, \"xml\": {\"name\": \"order\"}}}, \"application/x-www-form-urlencoded\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"petId\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 198772}, \"quantity\": {\"type\": \"integer\", \"format\": \"int32\", \"example\": 7}, \"shipDate\": {\"type\": \"string\", \"format\": \"date-time\"}, \"status\": {\"type\": \"string\", \"description\": \"Order Status\", \"example\": \"approved\", \"enum\": [\"placed\", \"approved\", \"delivered\"]}, \"complete\": {\"type\": \"boolean\"}}, \"xml\": {\"name\": \"order\"}}}}}, \"responses\": {\"200\": {\"description\": \"successful operation\", \"content\": {\"application/json\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"petId\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 198772}, \"quantity\": {\"type\": \"integer\", \"format\": \"int32\", \"example\": 7}, \"shipDate\": {\"type\": \"string\", \"format\": \"date-time\"}, \"status\": {\"type\": \"string\", \"description\": \"Order Status\", \"example\": \"approved\", \"enum\": [\"placed\", \"approved\", \"delivered\"]}, \"complete\": {\"type\": \"boolean\"}}, \"xml\": {\"name\": \"order\"}}}}}, \"405\": {\"description\": \"Invalid input\"}}}}, \"/store/order/{orderId}\": {\"get\": {\"tags\": [\"store\"], \"summary\": \"Find purchase order by ID\", \"description\": \"For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions.\", \"operationId\": \"getOrderById\", \"parameters\": [{\"name\": \"orderId\", \"in\": \"path\", \"description\": \"ID of order that needs to be fetched\", \"required\": true, \"schema\": {\"type\": \"integer\", \"format\": \"int64\"}}], \"responses\": {\"200\": {\"description\": \"successful operation\", \"content\": {\"application/xml\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"petId\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 198772}, \"quantity\": {\"type\": \"integer\", \"format\": \"int32\", \"example\": 7}, \"shipDate\": {\"type\": \"string\", \"format\": \"date-time\"}, \"status\": {\"type\": \"string\", \"description\": \"Order Status\", \"example\": \"approved\", \"enum\": [\"placed\", \"approved\", \"delivered\"]}, \"complete\": {\"type\": \"boolean\"}}, \"xml\": {\"name\": \"order\"}}}, \"application/json\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"petId\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 198772}, \"quantity\": {\"type\": \"integer\", \"format\": \"int32\", \"example\": 7}, \"shipDate\": {\"type\": \"string\", \"format\": \"date-time\"}, \"status\": {\"type\": \"string\", \"description\": \"Order Status\", \"example\": \"approved\", \"enum\": [\"placed\", \"approved\", \"delivered\"]}, \"complete\": {\"type\": \"boolean\"}}, \"xml\": {\"name\": \"order\"}}}}}, \"400\": {\"description\": \"Invalid ID supplied\"}, \"404\": {\"description\": \"Order not found\"}}}, \"delete\": {\"tags\": [\"store\"], \"summary\": \"Delete purchase order by ID\", \"description\": \"For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors\", \"operationId\": \"deleteOrder\", \"parameters\": [{\"name\": \"orderId\", \"in\": \"path\", \"description\": \"ID of the order that needs to be deleted\", \"required\": true, \"schema\": {\"type\": \"integer\", \"format\": \"int64\"}}], \"responses\": {\"400\": {\"description\": \"Invalid ID supplied\"}, \"404\": {\"description\": \"Order not found\"}}}}, \"/user\": {\"post\": {\"tags\": [\"user\"], \"summary\": \"Create user\", \"description\": \"This can only be done by the logged in user.\", \"operationId\": \"createUser\", \"requestBody\": {\"description\": \"Created user object\", \"content\": {\"application/json\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"username\": {\"type\": \"string\", \"example\": \"theUser\"}, \"firstName\": {\"type\": \"string\", \"example\": \"John\"}, \"lastName\": {\"type\": \"string\", \"example\": \"James\"}, \"email\": {\"type\": \"string\", \"example\": \"john@email.com\"}, \"password\": {\"type\": \"string\", \"example\": \"12345\"}, \"phone\": {\"type\": \"string\", \"example\": \"12345\"}, \"userStatus\": {\"type\": \"integer\", \"description\": \"User Status\", \"format\": \"int32\", \"example\": 1}}, \"xml\": {\"name\": \"user\"}}}, \"application/xml\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"username\": {\"type\": \"string\", \"example\": \"theUser\"}, \"firstName\": {\"type\": \"string\", \"example\": \"John\"}, \"lastName\": {\"type\": \"string\", \"example\": \"James\"}, \"email\": {\"type\": \"string\", \"example\": \"john@email.com\"}, \"password\": {\"type\": \"string\", \"example\": \"12345\"}, \"phone\": {\"type\": \"string\", \"example\": \"12345\"}, \"userStatus\": {\"type\": \"integer\", \"description\": \"User Status\", \"format\": \"int32\", \"example\": 1}}, \"xml\": {\"name\": \"user\"}}}, \"application/x-www-form-urlencoded\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"username\": {\"type\": \"string\", \"example\": \"theUser\"}, \"firstName\": {\"type\": \"string\", \"example\": \"John\"}, \"lastName\": {\"type\": \"string\", \"example\": \"James\"}, \"email\": {\"type\": \"string\", \"example\": \"john@email.com\"}, \"password\": {\"type\": \"string\", \"example\": \"12345\"}, \"phone\": {\"type\": \"string\", \"example\": \"12345\"}, \"userStatus\": {\"type\": \"integer\", \"description\": \"User Status\", \"format\": \"int32\", \"example\": 1}}, \"xml\": {\"name\": \"user\"}}}}}, \"responses\": {\"default\": {\"description\": \"successful operation\", \"content\": {\"application/json\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"username\": {\"type\": \"string\", \"example\": \"theUser\"}, \"firstName\": {\"type\": \"string\", \"example\": \"John\"}, \"lastName\": {\"type\": \"string\", \"example\": \"James\"}, \"email\": {\"type\": \"string\", \"example\": \"john@email.com\"}, \"password\": {\"type\": \"string\", \"example\": \"12345\"}, \"phone\": {\"type\": \"string\", \"example\": \"12345\"}, \"userStatus\": {\"type\": \"integer\", \"description\": \"User Status\", \"format\": \"int32\", \"example\": 1}}, \"xml\": {\"name\": \"user\"}}}, \"application/xml\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"username\": {\"type\": \"string\", \"example\": \"theUser\"}, \"firstName\": {\"type\": \"string\", \"example\": \"John\"}, \"lastName\": {\"type\": \"string\", \"example\": \"James\"}, \"email\": {\"type\": \"string\", \"example\": \"john@email.com\"}, \"password\": {\"type\": \"string\", \"example\": \"12345\"}, \"phone\": {\"type\": \"string\", \"example\": \"12345\"}, \"userStatus\": {\"type\": \"integer\", \"description\": \"User Status\", \"format\": \"int32\", \"example\": 1}}, \"xml\": {\"name\": \"user\"}}}}}}}}, \"/user/createWithList\": {\"post\": {\"tags\": [\"user\"], \"summary\": \"Creates list of users with given input array\", \"description\": \"Creates list of users with given input array\", \"operationId\": \"createUsersWithListInput\", \"requestBody\": {\"content\": {\"application/json\": {\"schema\": {\"type\": \"array\", \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"username\": {\"type\": \"string\", \"example\": \"theUser\"}, \"firstName\": {\"type\": \"string\", \"example\": \"John\"}, \"lastName\": {\"type\": \"string\", \"example\": \"James\"}, \"email\": {\"type\": \"string\", \"example\": \"john@email.com\"}, \"password\": {\"type\": \"string\", \"example\": \"12345\"}, \"phone\": {\"type\": \"string\", \"example\": \"12345\"}, \"userStatus\": {\"type\": \"integer\", \"description\": \"User Status\", \"format\": \"int32\", \"example\": 1}}, \"xml\": {\"name\": \"user\"}}}}}}, \"responses\": {\"200\": {\"description\": \"Successful operation\", \"content\": {\"application/xml\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"username\": {\"type\": \"string\", \"example\": \"theUser\"}, \"firstName\": {\"type\": \"string\", \"example\": \"John\"}, \"lastName\": {\"type\": \"string\", \"example\": \"James\"}, \"email\": {\"type\": \"string\", \"example\": \"john@email.com\"}, \"password\": {\"type\": \"string\", \"example\": \"12345\"}, \"phone\": {\"type\": \"string\", \"example\": \"12345\"}, \"userStatus\": {\"type\": \"integer\", \"description\": \"User Status\", \"format\": \"int32\", \"example\": 1}}, \"xml\": {\"name\": \"user\"}}}, \"application/json\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"username\": {\"type\": \"string\", \"example\": \"theUser\"}, \"firstName\": {\"type\": \"string\", \"example\": \"John\"}, \"lastName\": {\"type\": \"string\", \"example\": \"James\"}, \"email\": {\"type\": \"string\", \"example\": \"john@email.com\"}, \"password\": {\"type\": \"string\", \"example\": \"12345\"}, \"phone\": {\"type\": \"string\", \"example\": \"12345\"}, \"userStatus\": {\"type\": \"integer\", \"description\": \"User Status\", \"format\": \"int32\", \"example\": 1}}, \"xml\": {\"name\": \"user\"}}}}}, \"default\": {\"description\": \"successful operation\"}}}}, \"/user/login\": {\"get\": {\"tags\": [\"user\"], \"summary\": \"Logs user into the system\", \"description\": \"\", \"operationId\": \"loginUser\", \"parameters\": [{\"name\": \"username\", \"in\": \"query\", \"description\": \"The user name for login\", \"required\": false, \"schema\": {\"type\": \"string\"}}, {\"name\": \"password\", \"in\": \"query\", \"description\": \"The password for login in clear text\", \"required\": false, \"schema\": {\"type\": \"string\"}}], \"responses\": {\"200\": {\"description\": \"successful operation\", \"headers\": {\"X-Rate-Limit\": {\"description\": \"calls per hour allowed by the user\", \"schema\": {\"type\": \"integer\", \"format\": \"int32\"}}, \"X-Expires-After\": {\"description\": \"date in UTC when token expires\", \"schema\": {\"type\": \"string\", \"format\": \"date-time\"}}}, \"content\": {\"application/xml\": {\"schema\": {\"type\": \"string\"}}, \"application/json\": {\"schema\": {\"type\": \"string\"}}}}, \"400\": {\"description\": \"Invalid username/password supplied\"}}}}, \"/user/logout\": {\"get\": {\"tags\": [\"user\"], \"summary\": \"Logs out current logged in user session\", \"description\": \"\", \"operationId\": \"logoutUser\", \"parameters\": [], \"responses\": {\"default\": {\"description\": \"successful operation\"}}}}, \"/user/{username}\": {\"get\": {\"tags\": [\"user\"], \"summary\": \"Get user by user name\", \"description\": \"\", \"operationId\": \"getUserByName\", \"parameters\": [{\"name\": \"username\", \"in\": \"path\", \"description\": \"The name that needs to be fetched. Use user1 for testing. \", \"required\": true, \"schema\": {\"type\": \"string\"}}], \"responses\": {\"200\": {\"description\": \"successful operation\", \"content\": {\"application/xml\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"username\": {\"type\": \"string\", \"example\": \"theUser\"}, \"firstName\": {\"type\": \"string\", \"example\": \"John\"}, \"lastName\": {\"type\": \"string\", \"example\": \"James\"}, \"email\": {\"type\": \"string\", \"example\": \"john@email.com\"}, \"password\": {\"type\": \"string\", \"example\": \"12345\"}, \"phone\": {\"type\": \"string\", \"example\": \"12345\"}, \"userStatus\": {\"type\": \"integer\", \"description\": \"User Status\", \"format\": \"int32\", \"example\": 1}}, \"xml\": {\"name\": \"user\"}}}, \"application/json\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"username\": {\"type\": \"string\", \"example\": \"theUser\"}, \"firstName\": {\"type\": \"string\", \"example\": \"John\"}, \"lastName\": {\"type\": \"string\", \"example\": \"James\"}, \"email\": {\"type\": \"string\", \"example\": \"john@email.com\"}, \"password\": {\"type\": \"string\", \"example\": \"12345\"}, \"phone\": {\"type\": \"string\", \"example\": \"12345\"}, \"userStatus\": {\"type\": \"integer\", \"description\": \"User Status\", \"format\": \"int32\", \"example\": 1}}, \"xml\": {\"name\": \"user\"}}}}}, \"400\": {\"description\": \"Invalid username supplied\"}, \"404\": {\"description\": \"User not found\"}}}, \"put\": {\"tags\": [\"user\"], \"summary\": \"Update user\", \"description\": \"This can only be done by the logged in user.\", \"operationId\": \"updateUser\", \"parameters\": [{\"name\": \"username\", \"in\": \"path\", \"description\": \"name that need to be deleted\", \"required\": true, \"schema\": {\"type\": \"string\"}}], \"requestBody\": {\"description\": \"Update an existent user in the store\", \"content\": {\"application/json\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"username\": {\"type\": \"string\", \"example\": \"theUser\"}, \"firstName\": {\"type\": \"string\", \"example\": \"John\"}, \"lastName\": {\"type\": \"string\", \"example\": \"James\"}, \"email\": {\"type\": \"string\", \"example\": \"john@email.com\"}, \"password\": {\"type\": \"string\", \"example\": \"12345\"}, \"phone\": {\"type\": \"string\", \"example\": \"12345\"}, \"userStatus\": {\"type\": \"integer\", \"description\": \"User Status\", \"format\": \"int32\", \"example\": 1}}, \"xml\": {\"name\": \"user\"}}}, \"application/xml\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"username\": {\"type\": \"string\", \"example\": \"theUser\"}, \"firstName\": {\"type\": \"string\", \"example\": \"John\"}, \"lastName\": {\"type\": \"string\", \"example\": \"James\"}, \"email\": {\"type\": \"string\", \"example\": \"john@email.com\"}, \"password\": {\"type\": \"string\", \"example\": \"12345\"}, \"phone\": {\"type\": \"string\", \"example\": \"12345\"}, \"userStatus\": {\"type\": \"integer\", \"description\": \"User Status\", \"format\": \"int32\", \"example\": 1}}, \"xml\": {\"name\": \"user\"}}}, \"application/x-www-form-urlencoded\": {\"schema\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"username\": {\"type\": \"string\", \"example\": \"theUser\"}, \"firstName\": {\"type\": \"string\", \"example\": \"John\"}, \"lastName\": {\"type\": \"string\", \"example\": \"James\"}, \"email\": {\"type\": \"string\", \"example\": \"john@email.com\"}, \"password\": {\"type\": \"string\", \"example\": \"12345\"}, \"phone\": {\"type\": \"string\", \"example\": \"12345\"}, \"userStatus\": {\"type\": \"integer\", \"description\": \"User Status\", \"format\": \"int32\", \"example\": 1}}, \"xml\": {\"name\": \"user\"}}}}}, \"responses\": {\"default\": {\"description\": \"successful operation\"}}}, \"delete\": {\"tags\": [\"user\"], \"summary\": \"Delete user\", \"description\": \"This can only be done by the logged in user.\", \"operationId\": \"deleteUser\", \"parameters\": [{\"name\": \"username\", \"in\": \"path\", \"description\": \"The name that needs to be deleted\", \"required\": true, \"schema\": {\"type\": \"string\"}}], \"responses\": {\"400\": {\"description\": \"Invalid username supplied\"}, \"404\": {\"description\": \"User not found\"}}}}}, \"components\": {\"schemas\": {\"Order\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"petId\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 198772}, \"quantity\": {\"type\": \"integer\", \"format\": \"int32\", \"example\": 7}, \"shipDate\": {\"type\": \"string\", \"format\": \"date-time\"}, \"status\": {\"type\": \"string\", \"description\": \"Order Status\", \"example\": \"approved\", \"enum\": [\"placed\", \"approved\", \"delivered\"]}, \"complete\": {\"type\": \"boolean\"}}, \"xml\": {\"name\": \"order\"}}, \"Customer\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 100000}, \"username\": {\"type\": \"string\", \"example\": \"fehguy\"}, \"address\": {\"type\": \"array\", \"xml\": {\"name\": \"addresses\", \"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"street\": {\"type\": \"string\", \"example\": \"437 Lytton\"}, \"city\": {\"type\": \"string\", \"example\": \"Palo Alto\"}, \"state\": {\"type\": \"string\", \"example\": \"CA\"}, \"zip\": {\"type\": \"string\", \"example\": \"94301\"}}, \"xml\": {\"name\": \"address\"}}}}, \"xml\": {\"name\": \"customer\"}}, \"Address\": {\"type\": \"object\", \"properties\": {\"street\": {\"type\": \"string\", \"example\": \"437 Lytton\"}, \"city\": {\"type\": \"string\", \"example\": \"Palo Alto\"}, \"state\": {\"type\": \"string\", \"example\": \"CA\"}, \"zip\": {\"type\": \"string\", \"example\": \"94301\"}}, \"xml\": {\"name\": \"address\"}}, \"Category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"User\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"username\": {\"type\": \"string\", \"example\": \"theUser\"}, \"firstName\": {\"type\": \"string\", \"example\": \"John\"}, \"lastName\": {\"type\": \"string\", \"example\": \"James\"}, \"email\": {\"type\": \"string\", \"example\": \"john@email.com\"}, \"password\": {\"type\": \"string\", \"example\": \"12345\"}, \"phone\": {\"type\": \"string\", \"example\": \"12345\"}, \"userStatus\": {\"type\": \"integer\", \"description\": \"User Status\", \"format\": \"int32\", \"example\": 1}}, \"xml\": {\"name\": \"user\"}}, \"Tag\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}, \"Pet\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}, \"ApiResponse\": {\"type\": \"object\", \"properties\": {\"code\": {\"type\": \"integer\", \"format\": \"int32\"}, \"type\": {\"type\": \"string\"}, \"message\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"##default\"}}}, \"requestBodies\": {\"Pet\": {\"description\": \"Pet object that needs to be added to the store\", \"content\": {\"application/json\": {\"schema\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}, \"application/xml\": {\"schema\": {\"required\": [\"name\", \"photoUrls\"], \"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"name\": {\"type\": \"string\", \"example\": \"doggie\"}, \"category\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 1}, \"name\": {\"type\": \"string\", \"example\": \"Dogs\"}}, \"xml\": {\"name\": \"category\"}}, \"photoUrls\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"string\", \"xml\": {\"name\": \"photoUrl\"}}}, \"tags\": {\"type\": \"array\", \"xml\": {\"wrapped\": true}, \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\"}, \"name\": {\"type\": \"string\"}}, \"xml\": {\"name\": \"tag\"}}}, \"status\": {\"type\": \"string\", \"description\": \"pet status in the store\", \"enum\": [\"available\", \"pending\", \"sold\"]}}, \"xml\": {\"name\": \"pet\"}}}}}, \"UserArray\": {\"description\": \"List of user object\", \"content\": {\"application/json\": {\"schema\": {\"type\": \"array\", \"items\": {\"type\": \"object\", \"properties\": {\"id\": {\"type\": \"integer\", \"format\": \"int64\", \"example\": 10}, \"username\": {\"type\": \"string\", \"example\": \"theUser\"}, \"firstName\": {\"type\": \"string\", \"example\": \"John\"}, \"lastName\": {\"type\": \"string\", \"example\": \"James\"}, \"email\": {\"type\": \"string\", \"example\": \"john@email.com\"}, \"password\": {\"type\": \"string\", \"example\": \"12345\"}, \"phone\": {\"type\": \"string\", \"example\": \"12345\"}, \"userStatus\": {\"type\": \"integer\", \"description\": \"User Status\", \"format\": \"int32\", \"example\": 1}}, \"xml\": {\"name\": \"user\"}}}}}}}, \"securitySchemes\": {\"petstore_auth\": {\"type\": \"oauth2\", \"flows\": {\"implicit\": {\"authorizationUrl\": \"https://petstore3.swagger.io/oauth/authorize\", \"scopes\": {\"write:pets\": \"modify pets in your account\", \"read:pets\": \"read your pets\"}}}}, \"api_key\": {\"type\": \"apiKey\", \"name\": \"api_key\", \"in\": \"header\"}}}}'" ] }, - "execution_count": 5, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "generate_example_json({'properties': {'id': {'type': 'integer', 'format': 'int64', 'example': 10}, 'petId': {'type': 'integer', 'format': 'int64', 'example': 198772}, 'quantity': {'type': 'integer', 'format': 'int32', 'example': 7}, 'shipDate': {'type': 'string', 'format': 'date-time'}, 'status': {'type': 'string', 'description': 'Order Status', 'example': 'approved', 'enum': ['placed', 'approved', 'delivered']}, 'complete': {'type': 'boolean'}}})" + "parser.json()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -132,7 +183,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.17" + "version": "3.11.4" }, "orig_nbformat": 4 },