{
    "swagger": "2.0",
    "info": {
      "title": "API Documentation",
      "version": "1.0.0",
      "description": "API documentation using Swagger"
    },
    "basePath": "/",
    "paths": {
      "/": {
        "get": {
          "summary": "Route for retrieving a success message",
          "responses": {
            "200": {
              "description": "The success message object",
              "schema": {
                "type": "object"
              }
            }
          }
        }
      },
      "/users": {
        "get": {
          "summary": "Route for retrieving all users",
          "responses": {
            "200": {
              "description": "An array of user objects",
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/User"
                }
              }
            }
          }
        },
        "post": {
          "summary": "Route for creating a new user",
          "parameters": [
            {
              "name": "title",
              "in": "body",
              "description": "The title of the user",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "The created user object",
              "schema": {
                "$ref": "#/definitions/User"
              }
            }
          }
        }
      },
      "/users/{id}": {
        "put": {
          "summary": "Route for updating a user by ID",
          "parameters": [
            {
              "name": "id",
              "in": "path",
              "description": "The ID of the user",
              "required": true,
              "type": "string"
            },
            {
              "name": "title",
              "in": "body",
              "description": "The updated title of the user",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "completed",
              "in": "body",
              "description": "The updated completed status of the user",
              "required": true,
              "schema": {
                "type": "boolean"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "The updated user object",
              "schema": {
                "$ref": "#/definitions/User"
              }
            }
          }
        },
        "delete": {
          "summary": "Route for deleting a user by ID",
          "parameters": [
            {
              "name": "id",
              "in": "path",
              "description": "The ID of the user to be deleted",
              "required": true,
              "type": "string"
            }
          ],
          "responses": {
            "200": {
              "description": "The deleted user object",
              "schema": {
                "$ref": "#/definitions/User"
              }
            }
          }
        }
      },
      "/stocks": {
        "get": {
          "summary": "Route for retrieving all stocks",
          "responses": {
            "200": {
              "description": "An array of stock objects",
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/Stock"
                }
              }
            }
          }
        },
        "post": {
          "summary": "Route for creating a new stock",
          "parameters": [
            {
              "name": "title",
              "in": "body",
              "description": "The title of the stock",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "The created stock object",
              "schema": {
                "$ref": "#/definitions/Stock"
              }
            }
          }
        }
      },
      "/stocks/{id}": {
        "put": {
          "summary": "Route for updating a stock by ID",
          "parameters": [
            {
              "name": "id",
              "in": "path",
              "description": "The ID of the stock",
              "required": true,
              "type": "string"
            },
            {
              "name": "title",
              "in": "body",
              "description": "The updated title of the stock",
              "required": true,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "completed",
              "in": "body",
              "description": "The updated completed status of the stock",
              "required": true,
              "schema": {
                "type": "boolean"
              }
            }
          ],
          "responses": {
            "200": {
              "description": "The updated stock object",
              "schema": {
                "$ref": "#/definitions/Stock"
              }
            }
          }
        },
        "delete": {
          "summary": "Delete a stock by ID",
          "parameters": [
            {
              "name": "id",
              "in": "path",
              "description": "The ID of the stock to delete",
              "required": true,
              "type": "string"
            }
          ],
          "responses": {
            "200": {
              "description": "The deleted stock",
              "schema": {
                "$ref": "#/definitions/Stock"
              }
            },
            "404": {
              "description": "If the stock with the specified ID is not found"
            }
          },
          "security": [
            {
              "bearerAuth": []
            }
          ]
        }
      },
      "/chartink-webhook": {
        "get": {
          "parameters":[
            {
              "name": "scan_url",
              "in": "query",
              "description": "Filter to be applied",
              "required": false,
              "schema": {
                "type": "string"
              }
            },
            {
              "name": "perPage",
              "in": "query",
              "description": "Item per page",
              "required": false,
              "schema": {
                "type": "integer"
              }
            },
            {
              "name": "page",
              "in": "query",
              "description": "Page number",
              "required": false,
              "schema": {
                "type": "integer"
              }
            }
          ],
          "summary": "Route for retrieving all stocks",
          "responses": {
            "200": {
              "description": "An array of stock objects",
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/Stock"
                }
              }
            }
          }
        }
      }
    },
    "definitions": {
      "User": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "completed": {
            "type": "boolean"
          }
        }
      },
      "Stock": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "completed": {
            "type": "boolean"
          }
        }
      }
    }
  }
  