{
  "metadata": {
    "toolPackage": "@microsoft/api-extractor",
    "toolVersion": "7.7.10",
    "schemaVersion": 1003,
    "oldestForwardsCompatibleVersion": 1001
  },
  "kind": "Package",
  "canonicalReference": "@loopback/openapi-v3!",
  "docComment": "",
  "name": "@loopback/openapi-v3",
  "members": [
    {
      "kind": "EntryPoint",
      "canonicalReference": "@loopback/openapi-v3!",
      "name": "",
      "members": [
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!api:function(1)",
          "docComment": "/**\n * Decorate the given Controller constructor with metadata describing the HTTP/REST API the Controller implements/provides.\n *\n * `@api` can be applied to controller classes.\n *\n * @param spec - OpenAPI specification describing the endpoints handled by this controller\n *\n * @example\n * ```ts\n * @api({basePath: '/my'})\n * class MyController {\n *   // ...\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function api(spec: "
            },
            {
              "kind": "Reference",
              "text": "ControllerSpec",
              "canonicalReference": "@loopback/openapi-v3!ControllerSpec:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "ClassDecorator",
              "canonicalReference": "!ClassDecorator:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "spec",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "api"
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/openapi-v3!asSpecEnhancer:var",
          "docComment": "/**\n * A binding template for spec contributor extensions\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "asSpecEnhancer: "
            },
            {
              "kind": "Reference",
              "text": "BindingTemplate",
              "canonicalReference": "@loopback/context!BindingTemplate:type"
            }
          ],
          "releaseTag": "Public",
          "name": "asSpecEnhancer",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/openapi-v3!ControllerSpec:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface ControllerSpec "
            }
          ],
          "releaseTag": "Public",
          "name": "ControllerSpec",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/openapi-v3!ControllerSpec#basePath:member",
              "docComment": "/**\n * The base path on which the Controller API is served. If it is not included, the API is served directly under the host. The value MUST start with a leading slash (/).\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "basePath?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "basePath",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/openapi-v3!ControllerSpec#components:member",
              "docComment": "/**\n * OpenAPI components.schemas generated from model metadata\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "components?: "
                },
                {
                  "kind": "Reference",
                  "text": "ComponentsObject",
                  "canonicalReference": "openapi3-ts!ComponentsObject:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "components",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/openapi-v3!ControllerSpec#paths:member",
              "docComment": "/**\n * The available paths and operations for the API.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "paths: "
                },
                {
                  "kind": "Reference",
                  "text": "PathObject",
                  "canonicalReference": "openapi3-ts!PathObject:type"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "paths",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!createEmptyApiSpec:function(1)",
          "docComment": "/**\n * Create an empty OpenApiSpec object that's still a valid openapi document.\n *\n * @deprecated\n *\n * Use `OpenApiBuilder` from `openapi3-ts` instead.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function createEmptyApiSpec(): "
            },
            {
              "kind": "Reference",
              "text": "OpenApiSpec",
              "canonicalReference": "@loopback/openapi-v3!OpenApiSpec:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [],
          "name": "createEmptyApiSpec"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!del:function(1)",
          "docComment": "/**\n * Expose a Controller method as a REST API operation mapped to `DELETE` request method.\n *\n * @param path - The URL path of this operation, e.g. `/product/{id}`\n *\n * @param spec - The OpenAPI specification describing parameters and responses of this operation.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function del(path: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ", spec?: "
            },
            {
              "kind": "Reference",
              "text": "OperationObject",
              "canonicalReference": "openapi3-ts!OperationObject:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "MethodDecorator",
              "canonicalReference": "!MethodDecorator:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 6
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "path",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "spec",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "del"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!deprecated:function(1)",
          "docComment": "/**\n * Marks an api path as deprecated. When applied to a class, this decorator marks all paths as deprecated.\n *\n * You can optionally mark all controllers in a class as deprecated, but use `@deprecated(false)` on a specific method to ensure it is not marked as deprecated in the specification.\n *\n * @param isDeprecated - whether or not the path should be marked as deprecated. This is useful for marking a class as deprecated, but a method as not deprecated.\n *\n * @example\n * ```ts\n * @oas.deprecated()\n * class MyController {\n *   @get('/greet')\n *   public async function greet() {\n *     return 'Hello, World!'\n *   }\n *\n *   @get('/greet-v2')\n *   @oas.deprecated(false)\n *   public async function greetV2() {\n *     return 'Hello, World!'\n *   }\n * }\n *\n * class MyOtherController {\n *   @get('/echo')\n *   public async function echo() {\n *     return 'Echo!'\n *   }\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function deprecated(isDeprecated?: "
            },
            {
              "kind": "Content",
              "text": "boolean"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "(target: any, method?: string | undefined, methodDescriptor?: "
            },
            {
              "kind": "Reference",
              "text": "TypedPropertyDescriptor",
              "canonicalReference": "!TypedPropertyDescriptor:interface"
            },
            {
              "kind": "Content",
              "text": "<any> | undefined) => any"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 6
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "isDeprecated",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "deprecated"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!get:function(1)",
          "docComment": "/**\n * Expose a Controller method as a REST API operation mapped to `GET` request method.\n *\n * @param path - The URL path of this operation, e.g. `/product/{id}`\n *\n * @param spec - The OpenAPI specification describing parameters and responses of this operation.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function get(path: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ", spec?: "
            },
            {
              "kind": "Reference",
              "text": "OperationObject",
              "canonicalReference": "openapi3-ts!OperationObject:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "MethodDecorator",
              "canonicalReference": "!MethodDecorator:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 6
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "path",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "spec",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "get"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!getControllerSpec:function(1)",
          "docComment": "/**\n * Get the controller spec for the given class\n *\n * @param constructor - Controller class\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function getControllerSpec(constructor: "
            },
            {
              "kind": "Reference",
              "text": "Function",
              "canonicalReference": "!Function:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "ControllerSpec",
              "canonicalReference": "@loopback/openapi-v3!ControllerSpec:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "constructor",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "getControllerSpec"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!getFilterSchemaFor:function(1)",
          "docComment": "/**\n * Build an OpenAPI schema describing the format of the \"filter\" object used to query model instances.\n *\n * Note we don't take the model properties into account yet and return a generic json schema allowing any \"where\" condition.\n *\n * @param modelCtor - The model constructor to build the filter schema for.\n *\n * @param options - Options to build the filter schema.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function getFilterSchemaFor(modelCtor: "
            },
            {
              "kind": "Content",
              "text": "typeof "
            },
            {
              "kind": "Reference",
              "text": "Model",
              "canonicalReference": "@loopback/repository!Model:class"
            },
            {
              "kind": "Content",
              "text": ", options?: "
            },
            {
              "kind": "Reference",
              "text": "FilterSchemaOptions",
              "canonicalReference": "@loopback/repository-json-schema!FilterSchemaOptions:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "SchemaObject",
              "canonicalReference": "openapi3-ts!SchemaObject:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 6,
            "endIndex": 7
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "modelCtor",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            },
            {
              "parameterName": "options",
              "parameterTypeTokenRange": {
                "startIndex": 4,
                "endIndex": 5
              }
            }
          ],
          "name": "getFilterSchemaFor"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!getModelSchemaRef:function(1)",
          "docComment": "/**\n * Describe the provided Model as a reference to a definition shared by multiple endpoints. The definition is included in the returned schema.\n *\n * @param modelCtor - The model constructor (e.g. `Product`)\n *\n * @param options - Additional options\n *\n * @example\n * ```ts\n * const schema = {\n *   $ref: '#/components/schemas/Product',\n *   definitions: {\n *     Product: {\n *       title: 'Product',\n *       properties: {\n *         // etc.\n *       }\n *     }\n *   }\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function getModelSchemaRef<T extends "
            },
            {
              "kind": "Content",
              "text": "object"
            },
            {
              "kind": "Content",
              "text": ">(modelCtor: "
            },
            {
              "kind": "Reference",
              "text": "Function",
              "canonicalReference": "!Function:interface"
            },
            {
              "kind": "Content",
              "text": " & {\n    prototype: T;\n}"
            },
            {
              "kind": "Content",
              "text": ", options?: "
            },
            {
              "kind": "Reference",
              "text": "JsonSchemaOptions",
              "canonicalReference": "@loopback/repository-json-schema!JsonSchemaOptions:interface"
            },
            {
              "kind": "Content",
              "text": "<T>"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "SchemaRef",
              "canonicalReference": "@loopback/openapi-v3!SchemaRef:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 9,
            "endIndex": 10
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "modelCtor",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 5
              }
            },
            {
              "parameterName": "options",
              "parameterTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 8
              }
            }
          ],
          "typeParameters": [
            {
              "typeParameterName": "T",
              "constraintTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "defaultTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            }
          ],
          "name": "getModelSchemaRef"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!getWhereSchemaFor:function(1)",
          "docComment": "/**\n * Build a OpenAPI schema describing the format of the \"where\" object used to filter model instances to query, update or delete.\n *\n * Note we don't take the model properties into account yet and return a generic json schema allowing any \"where\" condition.\n *\n * @param modelCtor - The model constructor to build the filter schema for.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function getWhereSchemaFor(modelCtor: "
            },
            {
              "kind": "Content",
              "text": "typeof "
            },
            {
              "kind": "Reference",
              "text": "Model",
              "canonicalReference": "@loopback/repository!Model:class"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "SchemaObject",
              "canonicalReference": "openapi3-ts!SchemaObject:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 4,
            "endIndex": 5
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "modelCtor",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            }
          ],
          "name": "getWhereSchemaFor"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!jsonOrBooleanToJSON:function(1)",
          "docComment": "/**\n * Helper function used to interpret boolean values as JSON Schemas. See http://json-schema.org/draft-06/json-schema-release-notes.html\n *\n * @param jsonOrBool - converts boolean values into their representative JSON Schemas\n *\n * @returns A JSON Schema document representing the input value.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function jsonOrBooleanToJSON(jsonOrBool: "
            },
            {
              "kind": "Content",
              "text": "boolean | "
            },
            {
              "kind": "Reference",
              "text": "JsonSchema",
              "canonicalReference": "@types/json-schema!JSONSchema6:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "JsonSchema",
              "canonicalReference": "@types/json-schema!JSONSchema6:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 4,
            "endIndex": 5
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "jsonOrBool",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              }
            }
          ],
          "name": "jsonOrBooleanToJSON"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!jsonToSchemaObject:function(1)",
          "docComment": "/**\n * Converts JSON Schemas into a SchemaObject\n *\n * @param json - JSON Schema to convert from\n *\n * @param visited - A map to keep track of mapped json schemas to handle circular references\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function jsonToSchemaObject(json: "
            },
            {
              "kind": "Reference",
              "text": "JsonSchema",
              "canonicalReference": "@types/json-schema!JSONSchema6:interface"
            },
            {
              "kind": "Content",
              "text": ", visited?: "
            },
            {
              "kind": "Reference",
              "text": "Map",
              "canonicalReference": "!Map:interface"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "JsonSchema",
              "canonicalReference": "@types/json-schema!JSONSchema6:interface"
            },
            {
              "kind": "Content",
              "text": ", "
            },
            {
              "kind": "Reference",
              "text": "SchemaObject",
              "canonicalReference": "openapi3-ts!SchemaObject:interface"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "SchemaRef",
              "canonicalReference": "@loopback/openapi-v3!SchemaRef:type"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "SchemaObject",
              "canonicalReference": "openapi3-ts!SchemaObject:interface"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "SchemaRef",
              "canonicalReference": "@loopback/openapi-v3!SchemaRef:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 12,
            "endIndex": 15
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "json",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "visited",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 11
              }
            }
          ],
          "name": "jsonToSchemaObject"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!mergeOpenAPISpec:function(1)",
          "docComment": "/**\n * The default merge function to patch the current OpenAPI spec. It leverages module `json-merge-patch`'s merge API to merge two json objects. It returns a new merged object without modifying the original one.\n *\n * A list of merging rules can be found in test file: https://github.com/pierreinglebert/json-merge-patch/blob/master/test/lib/merge.js\n *\n * @param  - currentSpec The original spec\n *\n * @param  - patchSpec The patch spec to be merged into the original spec\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function mergeOpenAPISpec(currentSpec: "
            },
            {
              "kind": "Reference",
              "text": "Partial",
              "canonicalReference": "!Partial:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "OpenApiSpec",
              "canonicalReference": "@loopback/openapi-v3!OpenApiSpec:type"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": ", patchSpec: "
            },
            {
              "kind": "Reference",
              "text": "Partial",
              "canonicalReference": "!Partial:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "OpenApiSpec",
              "canonicalReference": "@loopback/openapi-v3!OpenApiSpec:type"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "any"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 11,
            "endIndex": 12
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "currentSpec",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 5
              }
            },
            {
              "parameterName": "patchSpec",
              "parameterTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 10
              }
            }
          ],
          "name": "mergeOpenAPISpec"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!mergeSecuritySchemeToSpec:function(1)",
          "docComment": "/**\n * Security scheme merge helper function to patch the current OpenAPI spec. It provides a direct route to add a security schema to the specs components. It returns a new merged object without modifying the original one.\n *\n * @param  - currentSpec The original spec\n *\n * @param  - schemeName The name of the security scheme to be added\n *\n * @param  - schemeSpec The security scheme spec body to be added,\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function mergeSecuritySchemeToSpec(spec: "
            },
            {
              "kind": "Reference",
              "text": "OpenApiSpec",
              "canonicalReference": "@loopback/openapi-v3!OpenApiSpec:type"
            },
            {
              "kind": "Content",
              "text": ", schemeName: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ", schemeSpec: "
            },
            {
              "kind": "Reference",
              "text": "SecuritySchemeObject",
              "canonicalReference": "openapi3-ts!SecuritySchemeObject:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "OpenApiSpec",
              "canonicalReference": "@loopback/openapi-v3!OpenApiSpec:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 7,
            "endIndex": 8
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "spec",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "schemeName",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            },
            {
              "parameterName": "schemeSpec",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            }
          ],
          "name": "mergeSecuritySchemeToSpec"
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/openapi-v3!oas:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "oas: "
            },
            {
              "kind": "Content",
              "text": "{\n    api: typeof "
            },
            {
              "kind": "Reference",
              "text": "api",
              "canonicalReference": "@loopback/openapi-v3!api:function"
            },
            {
              "kind": "Content",
              "text": ";\n    operation: typeof "
            },
            {
              "kind": "Reference",
              "text": "operation",
              "canonicalReference": "@loopback/openapi-v3!operation:function"
            },
            {
              "kind": "Content",
              "text": ";\n    get: typeof "
            },
            {
              "kind": "Reference",
              "text": "get",
              "canonicalReference": "@loopback/openapi-v3!get:function"
            },
            {
              "kind": "Content",
              "text": ";\n    post: typeof "
            },
            {
              "kind": "Reference",
              "text": "post",
              "canonicalReference": "@loopback/openapi-v3!post:function"
            },
            {
              "kind": "Content",
              "text": ";\n    del: typeof "
            },
            {
              "kind": "Reference",
              "text": "del",
              "canonicalReference": "@loopback/openapi-v3!del:function"
            },
            {
              "kind": "Content",
              "text": ";\n    patch: typeof "
            },
            {
              "kind": "Reference",
              "text": "patch",
              "canonicalReference": "@loopback/openapi-v3!patch:function"
            },
            {
              "kind": "Content",
              "text": ";\n    put: typeof "
            },
            {
              "kind": "Reference",
              "text": "put",
              "canonicalReference": "@loopback/openapi-v3!put:function"
            },
            {
              "kind": "Content",
              "text": ";\n    param: typeof "
            },
            {
              "kind": "Reference",
              "text": "param",
              "canonicalReference": "@loopback/openapi-v3!param:function"
            },
            {
              "kind": "Content",
              "text": ";\n    requestBody: typeof "
            },
            {
              "kind": "Reference",
              "text": "requestBody",
              "canonicalReference": "@loopback/openapi-v3!requestBody:function"
            },
            {
              "kind": "Content",
              "text": ";\n    deprecated: typeof "
            },
            {
              "kind": "Reference",
              "text": "deprecated",
              "canonicalReference": "@loopback/openapi-v3!deprecated:function"
            },
            {
              "kind": "Content",
              "text": ";\n    response: typeof "
            },
            {
              "kind": "Reference",
              "text": "response",
              "canonicalReference": "@loopback/openapi-v3!response:function"
            },
            {
              "kind": "Content",
              "text": ";\n    tags: typeof "
            },
            {
              "kind": "Reference",
              "text": "tags",
              "canonicalReference": "@loopback/openapi-v3!tags:function"
            },
            {
              "kind": "Content",
              "text": ";\n}"
            }
          ],
          "releaseTag": "Public",
          "name": "oas",
          "variableTypeTokenRange": {
            "startIndex": 1,
            "endIndex": 26
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/openapi-v3!OASEnhancer:interface",
          "docComment": "/**\n * Typically an extension point defines an interface as the contract for extensions to implement\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface OASEnhancer "
            }
          ],
          "releaseTag": "Public",
          "name": "OASEnhancer",
          "members": [
            {
              "kind": "MethodSignature",
              "canonicalReference": "@loopback/openapi-v3!OASEnhancer#modifySpec:member(1)",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "modifySpec(spec: "
                },
                {
                  "kind": "Reference",
                  "text": "OpenApiSpec",
                  "canonicalReference": "@loopback/openapi-v3!OpenApiSpec:type"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "OpenApiSpec",
                  "canonicalReference": "@loopback/openapi-v3!OpenApiSpec:type"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "spec",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "modifySpec"
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/openapi-v3!OASEnhancer#name:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "name: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "name",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Namespace",
          "canonicalReference": "@loopback/openapi-v3!OASEnhancerBindings:namespace",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare namespace OASEnhancerBindings "
            }
          ],
          "releaseTag": "Public",
          "name": "OASEnhancerBindings",
          "members": [
            {
              "kind": "Variable",
              "canonicalReference": "@loopback/openapi-v3!OASEnhancerBindings.OAS_ENHANCER_EXTENSION_POINT_NAME:var",
              "docComment": "/**\n * Name/id of the OAS enhancer extension point\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "OAS_ENHANCER_EXTENSION_POINT_NAME = \"oas-enhancer\""
                }
              ],
              "releaseTag": "Public",
              "name": "OAS_ENHANCER_EXTENSION_POINT_NAME",
              "variableTypeTokenRange": {
                "startIndex": 0,
                "endIndex": 0
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "@loopback/openapi-v3!OASEnhancerBindings.OAS_ENHANCER_SERVICE:var",
              "docComment": "/**\n * Strongly-typed binding key for SpecService\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "OAS_ENHANCER_SERVICE: "
                },
                {
                  "kind": "Reference",
                  "text": "BindingKey",
                  "canonicalReference": "@loopback/context!BindingKey:class"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "OASEnhancerService",
                  "canonicalReference": "@loopback/openapi-v3!OASEnhancerService:class"
                },
                {
                  "kind": "Content",
                  "text": ">"
                }
              ],
              "releaseTag": "Public",
              "name": "OAS_ENHANCER_SERVICE",
              "variableTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 5
              }
            }
          ]
        },
        {
          "kind": "Class",
          "canonicalReference": "@loopback/openapi-v3!OASEnhancerService:class",
          "docComment": "/**\n * An extension point for OpenAPI Spec enhancement This service is used for enhancing an OpenAPI spec by loading and applying one or more registered enhancers.\n *\n * A typical use of it would be generating the OpenAPI spec for the endpoints on a server in the `@loopback/rest` module.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare class OASEnhancerService "
            }
          ],
          "releaseTag": "Public",
          "name": "OASEnhancerService",
          "members": [
            {
              "kind": "Constructor",
              "canonicalReference": "@loopback/openapi-v3!OASEnhancerService:constructor(1)",
              "docComment": "/**\n * Constructs a new instance of the `OASEnhancerService` class\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "constructor(\n    getEnhancers: "
                },
                {
                  "kind": "Reference",
                  "text": "Getter",
                  "canonicalReference": "@loopback/context!Getter:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "OASEnhancer",
                  "canonicalReference": "@loopback/openapi-v3!OASEnhancer:interface"
                },
                {
                  "kind": "Content",
                  "text": "[]>"
                },
                {
                  "kind": "Content",
                  "text": ", \n    options?: "
                },
                {
                  "kind": "Reference",
                  "text": "OASEnhancerServiceOptions",
                  "canonicalReference": "@loopback/openapi-v3!OASEnhancerServiceOptions:interface"
                },
                {
                  "kind": "Content",
                  "text": " | undefined"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "getEnhancers",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 5
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 6,
                    "endIndex": 8
                  }
                }
              ]
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/openapi-v3!OASEnhancerService#applyAllEnhancers:member(1)",
              "docComment": "/**\n * Generate OpenAPI spec by applying ALL registered enhancers TBD: load enhancers by group names\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "applyAllEnhancers(options?: "
                },
                {
                  "kind": "Content",
                  "text": "{}"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "OpenApiSpec",
                  "canonicalReference": "@loopback/openapi-v3!OpenApiSpec:type"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "applyAllEnhancers"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/openapi-v3!OASEnhancerService#applyEnhancerByName:member(1)",
              "docComment": "/**\n * Apply a given enhancer's merge function. Return the latest _spec.\n *\n * @param  - name The name of the enhancer you want to apply\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "applyEnhancerByName(name: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "OpenApiSpec",
                  "canonicalReference": "@loopback/openapi-v3!OpenApiSpec:type"
                },
                {
                  "kind": "Content",
                  "text": ">"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "applyEnhancerByName"
            },
            {
              "kind": "Method",
              "canonicalReference": "@loopback/openapi-v3!OASEnhancerService#getEnhancerByName:member(1)",
              "docComment": "/**\n * Find an enhancer by its name\n *\n * @param  - name The name of the enhancer you want to find\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "getEnhancerByName(name: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Reference",
                  "text": "Promise",
                  "canonicalReference": "!Promise:interface"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "OASEnhancer",
                  "canonicalReference": "@loopback/openapi-v3!OASEnhancer:interface"
                },
                {
                  "kind": "Content",
                  "text": " | undefined>"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "isStatic": false,
              "returnTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 2
                  }
                }
              ],
              "name": "getEnhancerByName"
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/openapi-v3!OASEnhancerService#options:member",
              "docComment": "/**\n * An extension point should be able to receive its options via dependency injection.\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "readonly options?: "
                },
                {
                  "kind": "Reference",
                  "text": "OASEnhancerServiceOptions",
                  "canonicalReference": "@loopback/openapi-v3!OASEnhancerServiceOptions:interface"
                },
                {
                  "kind": "Content",
                  "text": " | undefined"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "options",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 3
              },
              "isStatic": false
            },
            {
              "kind": "Property",
              "canonicalReference": "@loopback/openapi-v3!OASEnhancerService#spec:member",
              "docComment": "/**\n * Getter for `_spec`\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "get spec(): "
                },
                {
                  "kind": "Reference",
                  "text": "OpenApiSpec",
                  "canonicalReference": "@loopback/openapi-v3!OpenApiSpec:type"
                },
                {
                  "kind": "Content",
                  "text": ";"
                },
                {
                  "kind": "Content",
                  "text": "\n\nset spec(value: "
                },
                {
                  "kind": "Reference",
                  "text": "OpenApiSpec",
                  "canonicalReference": "@loopback/openapi-v3!OpenApiSpec:type"
                },
                {
                  "kind": "Content",
                  "text": ");"
                }
              ],
              "releaseTag": "Public",
              "name": "spec",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              },
              "isStatic": false
            }
          ],
          "implementsTokenRanges": []
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/openapi-v3!OASEnhancerServiceOptions:interface",
          "docComment": "/**\n * Options for the OpenAPI Spec enhancer extension point\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface OASEnhancerServiceOptions "
            }
          ],
          "releaseTag": "Public",
          "name": "OASEnhancerServiceOptions",
          "members": [],
          "extendsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/openapi-v3!OpenApiSpec:type",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type OpenApiSpec = "
            },
            {
              "kind": "Reference",
              "text": "OpenAPIObject",
              "canonicalReference": "openapi3-ts!OpenAPIObject:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "OpenApiSpec",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 2
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!operation:function(1)",
          "docComment": "/**\n * Expose a Controller method as a REST API operation.\n *\n * @param verb - HTTP verb, e.g. `GET` or `POST`.\n *\n * @param path - The URL path of this operation, e.g. `/product/{id}`\n *\n * @param spec - The OpenAPI specification describing parameters and responses of this operation.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function operation(verb: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ", path: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ", spec?: "
            },
            {
              "kind": "Reference",
              "text": "OperationObject",
              "canonicalReference": "openapi3-ts!OperationObject:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "MethodDecorator",
              "canonicalReference": "!MethodDecorator:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 7,
            "endIndex": 8
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "verb",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "path",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            },
            {
              "parameterName": "spec",
              "parameterTypeTokenRange": {
                "startIndex": 5,
                "endIndex": 6
              }
            }
          ],
          "name": "operation"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!param:function(1)",
          "docComment": "/**\n * Describe an input parameter of a Controller method.\n *\n * `@param` must be applied to parameters.\n *\n * @param paramSpec - Parameter specification.\n *\n * @example\n * ```ts\n * class MyController {\n *   @get('/')\n *   list(\n *     @param(offsetSpec) offset?: number,\n *     @param(pageSizeSpec) pageSize?: number,\n *   ) {}\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function param(paramSpec: "
            },
            {
              "kind": "Reference",
              "text": "ParameterObject",
              "canonicalReference": "openapi3-ts!ParameterObject:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "(target: object, member: string, index: number) => void"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 3,
            "endIndex": 4
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "paramSpec",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "name": "param"
        },
        {
          "kind": "Namespace",
          "canonicalReference": "@loopback/openapi-v3!param:namespace",
          "docComment": "/**\n * Namespace for `@param.*` decorators\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare namespace param "
            }
          ],
          "releaseTag": "Public",
          "name": "param",
          "members": [
            {
              "kind": "Variable",
              "canonicalReference": "@loopback/openapi-v3!param.array:var",
              "docComment": "/**\n * Define a parameter of `array` type.\n *\n * @param name - Parameter name\n *\n * @param source - Source of the parameter value\n *\n * @param itemSpec - Item type for the array or the full item object\n *\n * @example\n * ```ts\n * export class MyController {\n *   @get('/greet')\n *   greet(@param.array('names', 'query', {type: 'string'}) names: string[]): string {\n *     return `Hello, ${names}`;\n *   }\n * }\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "array: "
                },
                {
                  "kind": "Content",
                  "text": "(name: string, source: "
                },
                {
                  "kind": "Reference",
                  "text": "ParameterLocation",
                  "canonicalReference": "openapi3-ts!ParameterLocation:type"
                },
                {
                  "kind": "Content",
                  "text": ", itemSpec: "
                },
                {
                  "kind": "Reference",
                  "text": "SchemaObject",
                  "canonicalReference": "openapi3-ts!SchemaObject:interface"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "ReferenceObject",
                  "canonicalReference": "openapi3-ts!ReferenceObject:interface"
                },
                {
                  "kind": "Content",
                  "text": ") => (target: object, member: string, index: number) => void"
                }
              ],
              "releaseTag": "Public",
              "name": "array",
              "variableTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 8
              }
            },
            {
              "kind": "Function",
              "canonicalReference": "@loopback/openapi-v3!param.filter:function(1)",
              "docComment": "/**\n * Sugar decorator for `filter` query parameter\n *\n * @param modelCtor - Model class\n *\n * @param options - Options to customize the parameter name or filter schema\n *\n * @example\n * ```ts\n * async find(\n *   @param.filter(modelCtor)) filter?: Filter<T>,\n * ): Promise<(T & Relations)[]> {\n *   // ...\n * }\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "function filter(modelCtor: "
                },
                {
                  "kind": "Content",
                  "text": "typeof "
                },
                {
                  "kind": "Reference",
                  "text": "Model",
                  "canonicalReference": "@loopback/repository!Model:class"
                },
                {
                  "kind": "Content",
                  "text": ", options?: "
                },
                {
                  "kind": "Content",
                  "text": "string | ("
                },
                {
                  "kind": "Reference",
                  "text": "FilterSchemaOptions",
                  "canonicalReference": "@loopback/repository-json-schema!FilterSchemaOptions:interface"
                },
                {
                  "kind": "Content",
                  "text": " & {\n        name?: string;\n    })"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "(target: object, member: string, index: number) => void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 8,
                "endIndex": 9
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelCtor",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "options",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 7
                  }
                }
              ],
              "name": "filter"
            },
            {
              "kind": "Variable",
              "canonicalReference": "@loopback/openapi-v3!param.header:var",
              "docComment": "/**\n * Header parameter decorator\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "header: "
                },
                {
                  "kind": "Content",
                  "text": "{\n        string: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        number: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        boolean: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        integer: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        long: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        float: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        double: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        byte: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        binary: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        date: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        dateTime: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        password: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n    }"
                }
              ],
              "releaseTag": "Public",
              "name": "header",
              "variableTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 50
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "@loopback/openapi-v3!param.path:var",
              "docComment": "/**\n * Path parameter decorator\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "path: "
                },
                {
                  "kind": "Content",
                  "text": "{\n        string: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        number: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        boolean: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        integer: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        long: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        float: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        double: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        byte: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        binary: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        date: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        dateTime: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        password: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n    }"
                }
              ],
              "releaseTag": "Public",
              "name": "path",
              "variableTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 50
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "@loopback/openapi-v3!param.query:var",
              "docComment": "/**\n * Query parameter decorator\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "query: "
                },
                {
                  "kind": "Content",
                  "text": "{\n        string: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        number: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        boolean: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        integer: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        long: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        float: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        double: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        byte: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        binary: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        date: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        dateTime: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        password: (name: string, spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n        object: (name: string, schema?: "
                },
                {
                  "kind": "Reference",
                  "text": "SchemaObject",
                  "canonicalReference": "openapi3-ts!SchemaObject:interface"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "ReferenceObject",
                  "canonicalReference": "openapi3-ts!ReferenceObject:interface"
                },
                {
                  "kind": "Content",
                  "text": ", spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "Partial",
                  "canonicalReference": "!Partial:type"
                },
                {
                  "kind": "Content",
                  "text": "<"
                },
                {
                  "kind": "Reference",
                  "text": "ParameterObject",
                  "canonicalReference": "openapi3-ts!ParameterObject:interface"
                },
                {
                  "kind": "Content",
                  "text": "> | undefined) => (target: object, member: string, index: number) => void;\n    }"
                }
              ],
              "releaseTag": "Public",
              "name": "query",
              "variableTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 58
              }
            },
            {
              "kind": "Function",
              "canonicalReference": "@loopback/openapi-v3!param.where:function(1)",
              "docComment": "/**\n * Sugar decorator for `where` query parameter\n *\n * @param modelCtor - Model class\n *\n * @param name - Custom name for the parameter, default to `where`\n *\n * @example\n * ```ts\n * async count(\n *   @param.where(modelCtor)) where?: Where<T>,\n * ): Promise<Count> {\n *   // ...\n * }\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "function where(modelCtor: "
                },
                {
                  "kind": "Content",
                  "text": "typeof "
                },
                {
                  "kind": "Reference",
                  "text": "Model",
                  "canonicalReference": "@loopback/repository!Model:class"
                },
                {
                  "kind": "Content",
                  "text": ", name?: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": "): "
                },
                {
                  "kind": "Content",
                  "text": "(target: object, member: string, index: number) => void"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "returnTypeTokenRange": {
                "startIndex": 6,
                "endIndex": 7
              },
              "releaseTag": "Public",
              "overloadIndex": 1,
              "parameters": [
                {
                  "parameterName": "modelCtor",
                  "parameterTypeTokenRange": {
                    "startIndex": 1,
                    "endIndex": 3
                  }
                },
                {
                  "parameterName": "name",
                  "parameterTypeTokenRange": {
                    "startIndex": 4,
                    "endIndex": 5
                  }
                }
              ],
              "name": "where"
            }
          ]
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!patch:function(1)",
          "docComment": "/**\n * Expose a Controller method as a REST API operation mapped to `PATCH` request method.\n *\n * @param path - The URL path of this operation, e.g. `/product/{id}`\n *\n * @param spec - The OpenAPI specification describing parameters and responses of this operation.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function patch(path: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ", spec?: "
            },
            {
              "kind": "Reference",
              "text": "OperationObject",
              "canonicalReference": "openapi3-ts!OperationObject:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "MethodDecorator",
              "canonicalReference": "!MethodDecorator:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 6
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "path",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "spec",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "patch"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!post:function(1)",
          "docComment": "/**\n * Expose a Controller method as a REST API operation mapped to `POST` request method.\n *\n * @param path - The URL path of this operation, e.g. `/product/{id}`\n *\n * @param spec - The OpenAPI specification describing parameters and responses of this operation.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function post(path: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ", spec?: "
            },
            {
              "kind": "Reference",
              "text": "OperationObject",
              "canonicalReference": "openapi3-ts!OperationObject:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "MethodDecorator",
              "canonicalReference": "!MethodDecorator:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 6
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "path",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "spec",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "post"
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!put:function(1)",
          "docComment": "/**\n * Expose a Controller method as a REST API operation mapped to `PUT` request method.\n *\n * @param path - The URL path of this operation, e.g. `/product/{id}`\n *\n * @param spec - The OpenAPI specification describing parameters and responses of this operation.\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function put(path: "
            },
            {
              "kind": "Content",
              "text": "string"
            },
            {
              "kind": "Content",
              "text": ", spec?: "
            },
            {
              "kind": "Reference",
              "text": "OperationObject",
              "canonicalReference": "openapi3-ts!OperationObject:interface"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Reference",
              "text": "MethodDecorator",
              "canonicalReference": "!MethodDecorator:type"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 5,
            "endIndex": 6
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "path",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "parameterName": "spec",
              "parameterTypeTokenRange": {
                "startIndex": 3,
                "endIndex": 4
              }
            }
          ],
          "name": "put"
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/openapi-v3!REQUEST_BODY_INDEX:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "REQUEST_BODY_INDEX = \"x-parameter-index\""
            }
          ],
          "releaseTag": "Public",
          "name": "REQUEST_BODY_INDEX",
          "variableTypeTokenRange": {
            "startIndex": 0,
            "endIndex": 0
          }
        },
        {
          "kind": "Function",
          "canonicalReference": "@loopback/openapi-v3!requestBody:function(1)",
          "docComment": "/**\n * Describe the request body of a Controller method parameter.\n *\n * A typical OpenAPI requestBody spec contains property: - `description` - `required` - `content`.\n *\n * @param requestBodySpec - The complete requestBody object or partial of it. \"partial\" for allowing no `content` in spec, for example:\n * ```\n * @requestBody({description: 'a request body'}) user: User\n * ```\n *\n * @example\n * ```ts\n * requestBodySpec: {\n *   description: 'a user',\n *   required: true,\n *   content: {\n *     'application/json': {...schemaSpec},\n *     'application/text': {...schemaSpec},\n *   },\n * }\n * ```\n *\n * If the `content` object is not provided, this decorator sets it as `application/json` by default. If the `schema` object is not provided in a media type, this decorator generates it for you based on the argument's type. In this case, please make sure the argument type is a class decorated by `@model` from `@loopback/repository`\n *\n * The simplest usage is:\n * ```ts\n * class MyController {\n *   @post('/User')\n *   async create(@requestBody() user: User) {}\n * }\n * ```\n *\n * or with properties other than `content`\n * ```ts\n * class MyController {\n *   @post('/User')\n *   async create(@requestBody({description: 'a user'}) user: User) {}\n * }\n * ```\n *\n * or to be more complicated, with your customized media type\n * ```ts\n * class MyController {\n *   @post('/User')\n *   async create(@requestBody({\n *     description: 'a user',\n *     // leave the schema as empty object, the decorator will generate it.\n *     content: {'application/text': {}}\n *   }) user: User) {}\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare function requestBody(requestBodySpec?: "
            },
            {
              "kind": "Reference",
              "text": "Partial",
              "canonicalReference": "!Partial:type"
            },
            {
              "kind": "Content",
              "text": "<"
            },
            {
              "kind": "Reference",
              "text": "RequestBodyObject",
              "canonicalReference": "openapi3-ts!RequestBodyObject:interface"
            },
            {
              "kind": "Content",
              "text": ">"
            },
            {
              "kind": "Content",
              "text": "): "
            },
            {
              "kind": "Content",
              "text": "(target: object, member: string, index: number) => void"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "returnTypeTokenRange": {
            "startIndex": 6,
            "endIndex": 7
          },
          "releaseTag": "Public",
          "overloadIndex": 1,
          "parameters": [
            {
              "parameterName": "requestBodySpec",
              "parameterTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 5
              }
            }
          ],
          "name": "requestBody"
        },
        {
          "kind": "Namespace",
          "canonicalReference": "@loopback/openapi-v3!requestBody:namespace",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare namespace requestBody "
            }
          ],
          "releaseTag": "Public",
          "name": "requestBody",
          "members": [
            {
              "kind": "Variable",
              "canonicalReference": "@loopback/openapi-v3!requestBody.array:var",
              "docComment": "/**\n * Define a requestBody of `array` type.\n *\n * @param properties - The requestBody properties other than `content`\n *\n * @param itemSpec - the full item object\n *\n * @example\n * ```ts\n * export class MyController {\n *   @post('/greet')\n *   greet(@requestBody.array(\n *     {schema: {type: 'string'}},\n *     {description: 'an array of names', required: false}\n *   ) names: string[]): string {\n *     return `Hello, ${names}`;\n *   }\n * }\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "array: "
                },
                {
                  "kind": "Content",
                  "text": "(itemSpec: "
                },
                {
                  "kind": "Reference",
                  "text": "SchemaObject",
                  "canonicalReference": "openapi3-ts!SchemaObject:interface"
                },
                {
                  "kind": "Content",
                  "text": " | "
                },
                {
                  "kind": "Reference",
                  "text": "ReferenceObject",
                  "canonicalReference": "openapi3-ts!ReferenceObject:interface"
                },
                {
                  "kind": "Content",
                  "text": ", properties?: {\n        description?: string | undefined;\n        required?: boolean | undefined;\n    } | undefined) => (target: object, member: string, index: number) => void"
                }
              ],
              "releaseTag": "Public",
              "name": "array",
              "variableTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 6
              }
            },
            {
              "kind": "Variable",
              "canonicalReference": "@loopback/openapi-v3!requestBody.file:var",
              "docComment": "/**\n * Define a requestBody of `file` type. This is used to support multipart/form-data based file upload. Use `@requestBody` for other content types.\n *\n * {@link https://swagger.io/docs/specification/describing-request-body/file-upload | OpenAPI file upload}\n *\n * @param properties - Optional description and required flag\n *\n * @example\n *\n * import {Request} from '@loopback/rest';\n * ```ts\n * class MyController {\n *   @post('/pictures')\n *   upload(\n *     @requestBody.file()\n *     request: Request,\n *   ) {\n *     // ...\n *   }\n * }\n * ```\n *\n */\n",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "file: "
                },
                {
                  "kind": "Content",
                  "text": "(properties?: {\n        description?: string | undefined;\n        required?: boolean | undefined;\n    } | undefined) => (target: object, member: string, index: number) => void"
                }
              ],
              "releaseTag": "Public",
              "name": "file",
              "variableTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ]
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/openapi-v3!ResponseDecoratorMetadata:type",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type ResponseDecoratorMetadata = "
            },
            {
              "kind": "Reference",
              "text": "ResponseDecoratorMetadataItem",
              "canonicalReference": "@loopback/openapi-v3!ResponseDecoratorMetadataItem:interface"
            },
            {
              "kind": "Content",
              "text": "[]"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "ResponseDecoratorMetadata",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 3
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/openapi-v3!ResponseDecoratorMetadataItem:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface ResponseDecoratorMetadataItem "
            }
          ],
          "releaseTag": "Public",
          "name": "ResponseDecoratorMetadataItem",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/openapi-v3!ResponseDecoratorMetadataItem#contentType:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "contentType: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "contentType",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/openapi-v3!ResponseDecoratorMetadataItem#description:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "description: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "description",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/openapi-v3!ResponseDecoratorMetadataItem#responseCode:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "responseCode: "
                },
                {
                  "kind": "Content",
                  "text": "number"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "responseCode",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/openapi-v3!ResponseDecoratorMetadataItem#responseModelOrSpec:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "responseModelOrSpec: "
                },
                {
                  "kind": "Reference",
                  "text": "ResponseModelOrSpec",
                  "canonicalReference": "@loopback/openapi-v3!ResponseModelOrSpec:type"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "responseModelOrSpec",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/openapi-v3!ResponseModelOrSpec:type",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type ResponseModelOrSpec = "
            },
            {
              "kind": "Content",
              "text": "typeof "
            },
            {
              "kind": "Reference",
              "text": "Model",
              "canonicalReference": "@loopback/repository!Model:class"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "SchemaObject",
              "canonicalReference": "openapi3-ts!SchemaObject:interface"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "ResponseObject",
              "canonicalReference": "openapi3-ts!ResponseObject:interface"
            },
            {
              "kind": "Content",
              "text": " | "
            },
            {
              "kind": "Reference",
              "text": "ReferenceObject",
              "canonicalReference": "openapi3-ts!ReferenceObject:interface"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "ResponseModelOrSpec",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 9
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/openapi-v3!RestEndpoint:interface",
          "docComment": "/**\n * Data structure for REST related metadata\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface RestEndpoint "
            }
          ],
          "releaseTag": "Public",
          "name": "RestEndpoint",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/openapi-v3!RestEndpoint#path:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "path: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "path",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/openapi-v3!RestEndpoint#spec:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "spec?: "
                },
                {
                  "kind": "Reference",
                  "text": "OperationObject",
                  "canonicalReference": "openapi3-ts!OperationObject:interface"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "spec",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            },
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/openapi-v3!RestEndpoint#verb:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "verb: "
                },
                {
                  "kind": "Content",
                  "text": "string"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "verb",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "TypeAlias",
          "canonicalReference": "@loopback/openapi-v3!SchemaRef:type",
          "docComment": "/**\n * Custom LoopBack extension: a reference to Schema object that's bundled inside `definitions` property.\n *\n * @example\n * ```ts\n * const spec: SchemaRef = {\n *   $ref: '/components/schemas/Product',\n *   definitions: {\n *     Product: {\n *       title: 'Product',\n *       properties: {\n *         // etc.\n *       }\n *     }\n *   }\n * }\n * ```\n *\n */\n",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export declare type SchemaRef = "
            },
            {
              "kind": "Reference",
              "text": "ReferenceObject",
              "canonicalReference": "openapi3-ts!ReferenceObject:interface"
            },
            {
              "kind": "Content",
              "text": " & {\n    definitions: "
            },
            {
              "kind": "Reference",
              "text": "SchemasObject",
              "canonicalReference": "openapi3-ts!SchemasObject:interface"
            },
            {
              "kind": "Content",
              "text": ";\n}"
            },
            {
              "kind": "Content",
              "text": ";"
            }
          ],
          "releaseTag": "Public",
          "name": "SchemaRef",
          "typeTokenRange": {
            "startIndex": 1,
            "endIndex": 5
          }
        },
        {
          "kind": "Interface",
          "canonicalReference": "@loopback/openapi-v3!TagsDecoratorMetadata:interface",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "export interface TagsDecoratorMetadata "
            }
          ],
          "releaseTag": "Public",
          "name": "TagsDecoratorMetadata",
          "members": [
            {
              "kind": "PropertySignature",
              "canonicalReference": "@loopback/openapi-v3!TagsDecoratorMetadata#tags:member",
              "docComment": "",
              "excerptTokens": [
                {
                  "kind": "Content",
                  "text": "tags: "
                },
                {
                  "kind": "Content",
                  "text": "string[]"
                },
                {
                  "kind": "Content",
                  "text": ";"
                }
              ],
              "releaseTag": "Public",
              "name": "tags",
              "propertyTypeTokenRange": {
                "startIndex": 1,
                "endIndex": 2
              }
            }
          ],
          "extendsTokenRanges": []
        },
        {
          "kind": "Variable",
          "canonicalReference": "@loopback/openapi-v3!TS_TYPE_KEY:var",
          "docComment": "",
          "excerptTokens": [
            {
              "kind": "Content",
              "text": "TS_TYPE_KEY = \"x-ts-type\""
            }
          ],
          "releaseTag": "Public",
          "name": "TS_TYPE_KEY",
          "variableTypeTokenRange": {
            "startIndex": 0,
            "endIndex": 0
          }
        }
      ]
    }
  ]
}
