fork of hey-api/openapi-ts because I need some additional things

feat: Add extension fields (x-*) support to IR types and parsers

Co-authored-by: mrlubos <12529395+mrlubos@users.noreply.github.com>

Changed files
+189 -33
packages
+16 -1
packages/openapi-ts/src/ir/types.d.ts
··· 27 27 } 28 28 29 29 export interface IROperationObject { 30 + /** 31 + * OpenAPI extension fields (x-*) from the original operation. 32 + * These are custom fields that can be used by plugins. 33 + */ 34 + [extension: `x-${string}`]: unknown; 30 35 body?: IRBodyObject; 31 36 deprecated?: boolean; 32 37 description?: string; ··· 36 41 parameters?: IRParametersObject; 37 42 path: keyof IRPathsObject; 38 43 responses?: IRResponsesObject; 39 - security?: ReadonlyArray<IRSecurityObject>; 40 44 servers?: ReadonlyArray<IRServerObject>; 41 45 summary?: string; 42 46 tags?: ReadonlyArray<string>; 47 + security?: ReadonlyArray<IRSecurityObject>; 43 48 } 44 49 45 50 interface IRParametersObject { ··· 51 56 52 57 interface IRParameterObject 53 58 extends Pick<JsonSchemaDraft2020_12, 'deprecated' | 'description'> { 59 + /** 60 + * OpenAPI extension fields (x-*) from the original parameter. 61 + * These are custom fields that can be used by plugins. 62 + */ 63 + [extension: `x-${string}`]: unknown; 54 64 /** 55 65 * Determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986 `:/?#[]@!$&'()*+,;=` to be included without percent-encoding. The default value is `false`. This property SHALL be ignored if the request body media type is not `application/x-www-form-urlencoded` or `multipart/form-data`. If a value is explicitly defined, then the value of `contentType` (implicit or explicit) SHALL be ignored. 56 66 */ ··· 143 153 | 'title' 144 154 | 'example' 145 155 > { 156 + /** 157 + * OpenAPI extension fields (x-*) from the original schema. 158 + * These are custom fields that can be used by plugins. 159 + */ 160 + [extension: `x-${string}`]: unknown; 146 161 /** 147 162 * If the schema is intended to be used as an object property, it can be 148 163 * marked as read-only or write-only. This value controls whether the schema
+8
packages/openapi-ts/src/openApi/2.0.x/parser/operation.ts
··· 77 77 operation, 78 78 }); 79 79 80 + // Copy extension fields 81 + for (const key in operation) { 82 + if (key.startsWith('x-')) { 83 + (irOperation as unknown as Record<string, unknown>)[key] = 84 + operation[key as keyof Operation]; 85 + } 86 + } 87 + 80 88 return irOperation; 81 89 }; 82 90
+8
packages/openapi-ts/src/openApi/2.0.x/parser/parameter.ts
··· 165 165 irParameter.required = parameter.required; 166 166 } 167 167 168 + // Copy extension fields 169 + for (const key in parameter) { 170 + if (key.startsWith('x-')) { 171 + (irParameter as unknown as Record<string, unknown>)[key] = 172 + parameter[key as keyof ParameterObject]; 173 + } 174 + } 175 + 168 176 return irParameter; 169 177 };
+21
packages/openapi-ts/src/openApi/2.0.x/parser/schema.ts
··· 270 270 return irSchema; 271 271 }; 272 272 273 + const parseExtensions = ({ 274 + irSchema, 275 + schema, 276 + }: { 277 + irSchema: IR.SchemaObject; 278 + schema: SchemaObject; 279 + }) => { 280 + // Copy all x-* extension fields from the source schema to the IR schema 281 + for (const key in schema) { 282 + if (key.startsWith('x-')) { 283 + (irSchema as unknown as Record<string, unknown>)[key] = 284 + schema[key as keyof SchemaObject]; 285 + } 286 + } 287 + }; 288 + 273 289 const initIrSchema = ({ 274 290 schema, 275 291 }: { ··· 278 294 const irSchema: IR.SchemaObject = {}; 279 295 280 296 parseSchemaJsDoc({ 297 + irSchema, 298 + schema, 299 + }); 300 + 301 + parseExtensions({ 281 302 irSchema, 282 303 schema, 283 304 });
+8
packages/openapi-ts/src/openApi/3.0.x/parser/operation.ts
··· 74 74 operation, 75 75 }); 76 76 77 + // Copy extension fields 78 + for (const key in operation) { 79 + if (key.startsWith('x-')) { 80 + (irOperation as unknown as Record<string, unknown>)[key] = 81 + operation[key as keyof Operation]; 82 + } 83 + } 84 + 77 85 return irOperation; 78 86 }; 79 87
+8
packages/openapi-ts/src/openApi/3.0.x/parser/parameter.ts
··· 173 173 irParameter.required = parameter.required; 174 174 } 175 175 176 + // Copy extension fields 177 + for (const key in parameter) { 178 + if (key.startsWith('x-')) { 179 + (irParameter as unknown as Record<string, unknown>)[key] = 180 + parameter[key as keyof ParameterObject]; 181 + } 182 + } 183 + 176 184 return irParameter; 177 185 }; 178 186
+21
packages/openapi-ts/src/openApi/3.0.x/parser/schema.ts
··· 276 276 return irSchema; 277 277 }; 278 278 279 + const parseExtensions = ({ 280 + irSchema, 281 + schema, 282 + }: { 283 + irSchema: IR.SchemaObject; 284 + schema: SchemaObject; 285 + }) => { 286 + // Copy all x-* extension fields from the source schema to the IR schema 287 + for (const key in schema) { 288 + if (key.startsWith('x-')) { 289 + (irSchema as unknown as Record<string, unknown>)[key] = 290 + schema[key as keyof SchemaObject]; 291 + } 292 + } 293 + }; 294 + 279 295 const initIrSchema = ({ 280 296 schema, 281 297 }: { ··· 284 300 const irSchema: IR.SchemaObject = {}; 285 301 286 302 parseSchemaJsDoc({ 303 + irSchema, 304 + schema, 305 + }); 306 + 307 + parseExtensions({ 287 308 irSchema, 288 309 schema, 289 310 });
+32 -17
packages/openapi-ts/src/openApi/3.0.x/types/spec.d.ts
··· 453 453 */ 454 454 export interface OperationObject { 455 455 /** 456 + * OpenAPI extension fields (x-*) from the original operation. 457 + * Specification Extensions may be used to add additional metadata. 458 + */ 459 + [extension: `x-${string}`]: unknown; 460 + /** 456 461 * A map of possible out-of band callbacks related to the parent operation. The key is a unique identifier for the Callback Object. Each value in the map is a {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#callback-object Callback Object} that describes a request that may be initiated by the API provider and the expected responses. 457 462 */ 458 463 callbacks?: Record<string, CallbackObject | ReferenceObject>; ··· 489 494 */ 490 495 security?: ReadonlyArray<SecurityRequirementObject>; 491 496 /** 492 - * An alternative `servers` array to service this operation. If a `servers` array is specified at the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#path-item-servers Path Item Object} or {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#oas-servers OpenAPI Object} level, it will be overridden by this value. 493 - */ 494 - servers?: ReadonlyArray<ServerObject>; 495 - /** 496 497 * A short summary of what the operation does. 497 498 */ 498 499 summary?: string; ··· 500 501 * A list of tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier. 501 502 */ 502 503 tags?: ReadonlyArray<string>; 504 + /** 505 + * An alternative `servers` array to service this operation. If a `servers` array is specified at the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#path-item-servers Path Item Object} or {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#oas-servers OpenAPI Object} level, it will be overridden by this value. 506 + */ 507 + servers?: ReadonlyArray<ServerObject>; 503 508 } 504 509 505 510 /** ··· 548 553 */ 549 554 export interface ParameterObject { 550 555 /** 556 + * OpenAPI extension fields (x-*) from the original parameter. 557 + * Specification Extensions may be used to add additional metadata. 558 + */ 559 + [extension: `x-${string}`]: unknown; 560 + /** 551 561 * If `true`, clients MAY pass a zero-length string value in place of parameters that would otherwise be omitted entirely, which the server SHOULD interpret as the parameter being unused. Default value is `false`. If {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#parameter-style `style`} is used, and if {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#style-examples behavior is _n/a_ (cannot be serialized)}, the value of `allowEmptyValue` SHALL be ignored. Interactions between this field and the parameter's {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#schema-object Schema Object} are implementation-defined. This field is valid only for `query` parameters. Use of this field is NOT RECOMMENDED, and it is likely to be removed in a later revision. 552 562 */ 553 563 allowEmptyValue?: boolean; ··· 583 593 * **REQUIRED**. The location of the parameter. Possible values are `"query"`, `"header"`, `"path"` or `"cookie"`. 584 594 */ 585 595 in: 'cookie' | 'header' | 'path' | 'query'; 586 - /** 587 - * **REQUIRED**. The name of the parameter. Parameter names are _case sensitive_. 588 - * - If {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#parameter-in `in`} is `"path"`, the `name` field MUST correspond to a template expression occurring within the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#paths-path path} field in the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#paths-object Paths Object}. See {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#path-templating Path Templating} for further information. 589 - * - If {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#parameter-in `in`} is `"header"` and the `name` field is `"Accept"`, `"Content-Type"` or `"Authorization"`, the parameter definition SHALL be ignored. 590 - * - For all other cases, the `name` corresponds to the parameter name used by the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#parameter-in `in`} field. 591 - */ 592 - name: string; 593 596 /** 594 597 * Determines whether this parameter is mandatory. If the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#parameter-in parameter location} is `"path"`, this field is **REQUIRED** and its value MUST be `true`. Otherwise, the field MAY be included and its default value is `false`. 595 598 */ ··· 609 612 | 'pipeDelimited' 610 613 | 'simple' 611 614 | 'spaceDelimited'; 615 + /** 616 + * **REQUIRED**. The name of the parameter. Parameter names are _case sensitive_. 617 + * - If {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#parameter-in `in`} is `"path"`, the `name` field MUST correspond to a template expression occurring within the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#paths-path path} field in the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#paths-object Paths Object}. See {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#path-templating Path Templating} for further information. 618 + * - If {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#parameter-in `in`} is `"header"` and the `name` field is `"Accept"`, `"Content-Type"` or `"Authorization"`, the parameter definition SHALL be ignored. 619 + * - For all other cases, the `name` corresponds to the parameter name used by the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#parameter-in `in`} field. 620 + */ 621 + name: string; 612 622 } 613 623 614 624 /** ··· 846 856 */ 847 857 export interface SchemaObject extends EnumExtensions { 848 858 /** 859 + * OpenAPI extension fields (x-*) from the original schema. 860 + * Specification Extensions may be used to add additional metadata. 861 + */ 862 + [extension: `x-${string}`]: unknown; 863 + /** 849 864 * The value of "additionalProperties" MUST be a boolean or a schema. 850 865 * 851 866 * If "additionalProperties" is absent, it may be considered present with an empty schema as a value. ··· 908 923 * A free-form field to include an example of an instance for this schema. To represent examples that cannot be naturally represented in JSON or YAML, a string value can be used to contain the example with escaping where necessary. 909 924 */ 910 925 example?: unknown; 911 - /** 912 - * The value of "exclusiveMaximum" MUST be a boolean, representing whether the limit in "maximum" is exclusive or not. An undefined value is the same as false. 913 - * 914 - * If "exclusiveMaximum" is true, then a numeric instance SHOULD NOT be equal to the value specified in "maximum". If "exclusiveMaximum" is false (or not specified), then a numeric instance MAY be equal to the value of "maximum". 915 - */ 916 - exclusiveMaximum?: boolean; 917 926 /** 918 927 * The value of "exclusiveMinimum" MUST be a boolean, representing whether the limit in "minimum" is exclusive or not. An undefined value is the same as false. 919 928 * ··· 1068 1077 * This MAY be used only on property schemas. It has no effect on root schemas. Adds additional metadata to describe the XML representation of this property. 1069 1078 */ 1070 1079 xml?: XMLObject; 1080 + /** 1081 + * The value of "exclusiveMaximum" MUST be a boolean, representing whether the limit in "maximum" is exclusive or not. An undefined value is the same as false. 1082 + * 1083 + * If "exclusiveMaximum" is true, then a numeric instance SHOULD NOT be equal to the value specified in "maximum". If "exclusiveMaximum" is false (or not specified), then a numeric instance MAY be equal to the value of "maximum". 1084 + */ 1085 + exclusiveMaximum?: boolean; 1071 1086 } 1072 1087 1073 1088 /**
+8
packages/openapi-ts/src/openApi/3.1.x/parser/operation.ts
··· 74 74 operation, 75 75 }); 76 76 77 + // Copy extension fields 78 + for (const key in operation) { 79 + if (key.startsWith('x-')) { 80 + (irOperation as unknown as Record<string, unknown>)[key] = 81 + operation[key as keyof Operation]; 82 + } 83 + } 84 + 77 85 return irOperation; 78 86 }; 79 87
+8
packages/openapi-ts/src/openApi/3.1.x/parser/parameter.ts
··· 166 166 irParameter.required = parameter.required; 167 167 } 168 168 169 + // Copy extension fields 170 + for (const key in parameter) { 171 + if (key.startsWith('x-')) { 172 + (irParameter as unknown as Record<string, unknown>)[key] = 173 + parameter[key as keyof ParameterObject]; 174 + } 175 + } 176 + 169 177 return irParameter; 170 178 }; 171 179
+21
packages/openapi-ts/src/openApi/3.1.x/parser/schema.ts
··· 357 357 return irSchema; 358 358 }; 359 359 360 + const parseExtensions = ({ 361 + irSchema, 362 + schema, 363 + }: { 364 + irSchema: IR.SchemaObject; 365 + schema: SchemaObject; 366 + }) => { 367 + // Copy all x-* extension fields from the source schema to the IR schema 368 + for (const key in schema) { 369 + if (key.startsWith('x-')) { 370 + (irSchema as unknown as Record<string, unknown>)[key] = 371 + schema[key as keyof SchemaObject]; 372 + } 373 + } 374 + }; 375 + 360 376 const initIrSchema = ({ 361 377 schema, 362 378 }: { ··· 365 381 const irSchema: IR.SchemaObject = {}; 366 382 367 383 parseSchemaJsDoc({ 384 + irSchema, 385 + schema, 386 + }); 387 + 388 + parseExtensions({ 368 389 irSchema, 369 390 schema, 370 391 });
+9 -4
packages/openapi-ts/src/openApi/3.1.x/types/json-schema-draft-2020-12.d.ts
··· 12 12 EnumExtensions, 13 13 OpenApiSchemaExtensions { 14 14 /** 15 + * OpenAPI extension fields (x-*) from the original schema. 16 + * Specification Extensions may be used to add additional metadata. 17 + */ 18 + [extension: `x-${string}`]: unknown; 19 + /** 15 20 * The `$comment` {@link https://json-schema.org/learn/glossary#keyword keyword} is strictly intended for adding comments to a schema. Its value must always be a string. Unlike the annotations `title`, `description`, and `examples`, JSON schema {@link https://json-schema.org/learn/glossary#implementation implementations} aren't allowed to attach any meaning or behavior to it whatsoever, and may even strip them at any time. Therefore, they are useful for leaving notes to future editors of a JSON schema, but should not be used to communicate to users of the schema. 16 21 */ 17 22 $comment?: string; ··· 61 66 * The `dependentRequired` {@link https://json-schema.org/learn/glossary#keyword keyword} conditionally requires that certain properties must be present if a given property is present in an object. For example, suppose we have a {@link https://json-schema.org/learn/glossary#schema schema} representing a customer. If you have their credit card number, you also want to ensure you have a billing address. If you don't have their credit card number, a billing address would not be required. We represent this dependency of one property on another using the `dependentRequired` keyword. The value of the `dependentRequired` keyword is an object. Each entry in the object maps from the name of a property, _p_, to an array of strings listing properties that are required if _p_ is present. 62 67 */ 63 68 dependentRequired?: Record<string, ReadonlyArray<string>>; 64 - /** 65 - * The `dependentSchemas` keyword conditionally applies a {@link https://json-schema.org/learn/glossary#subschema subschema} when a given property is present. This schema is applied in the same way {@link https://json-schema.org/understanding-json-schema/reference/combining#allof allOf} applies schemas. Nothing is merged or extended. Both schemas apply independently. 66 - */ 67 - dependentSchemas?: Record<string, JsonSchemaDraft2020_12>; 68 69 /** 69 70 * The `deprecated` keyword is a boolean that indicates that the {@link https://json-schema.org/learn/glossary#instance instance} value the keyword applies to should not be used and may be removed in the future. 70 71 */ ··· 151 152 * The boolean keywords `readOnly` and `writeOnly` are typically used in an API context. `readOnly` indicates that a value should not be modified. It could be used to indicate that a `PUT` request that changes a value would result in a `400 Bad Request` response. `writeOnly` indicates that a value may be set, but will remain hidden. In could be used to indicate you can set a value with a `PUT` request, but it would not be included when retrieving that record with a `GET` request. 152 153 */ 153 154 writeOnly?: boolean; 155 + /** 156 + * The `dependentSchemas` keyword conditionally applies a {@link https://json-schema.org/learn/glossary#subschema subschema} when a given property is present. This schema is applied in the same way {@link https://json-schema.org/understanding-json-schema/reference/combining#allof allOf} applies schemas. Nothing is merged or extended. Both schemas apply independently. 157 + */ 158 + dependentSchemas?: Record<string, JsonSchemaDraft2020_12>; 154 159 } 155 160 156 161 interface ArrayKeywords {
+21 -11
packages/openapi-ts/src/openApi/3.1.x/types/spec.d.ts
··· 1047 1047 */ 1048 1048 export interface OperationObject { 1049 1049 /** 1050 + * OpenAPI extension fields (x-*) from the original operation. 1051 + * Specification Extensions may be used to add additional metadata. 1052 + */ 1053 + [extension: `x-${string}`]: unknown; 1054 + /** 1050 1055 * A map of possible out-of band callbacks related to the parent operation. The key is a unique identifier for the Callback Object. Each value in the map is a {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#callback-object Callback Object} that describes a request that may be initiated by the API provider and the expected responses. 1051 1056 */ 1052 1057 callbacks?: Record<string, CallbackObject | ReferenceObject>; ··· 1083 1088 */ 1084 1089 security?: ReadonlyArray<SecurityRequirementObject>; 1085 1090 /** 1086 - * An alternative `server` array to service this operation. If an alternative `server` object is specified at the Path Item Object or Root level, it will be overridden by this value. 1087 - */ 1088 - servers?: ReadonlyArray<ServerObject>; 1089 - /** 1090 1091 * A short summary of what the operation does. 1091 1092 */ 1092 1093 summary?: string; ··· 1094 1095 * A list of tags for API documentation control. Tags can be used for logical grouping of operations by resources or any other qualifier. 1095 1096 */ 1096 1097 tags?: ReadonlyArray<string>; 1098 + /** 1099 + * An alternative `server` array to service this operation. If an alternative `server` object is specified at the Path Item Object or Root level, it will be overridden by this value. 1100 + */ 1101 + servers?: ReadonlyArray<ServerObject>; 1097 1102 } 1098 1103 1099 1104 /** ··· 1195 1200 */ 1196 1201 export interface ParameterObject { 1197 1202 /** 1203 + * OpenAPI extension fields (x-*) from the original parameter. 1204 + * Specification Extensions may be used to add additional metadata. 1205 + */ 1206 + [extension: `x-${string}`]: unknown; 1207 + /** 1198 1208 * Sets the ability to pass empty-valued parameters. This is valid only for `query` parameters and allows sending a parameter with an empty value. Default value is `false`. If {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#parameterStyle `style`} is used, and if behavior is `n/a` (cannot be serialized), the value of `allowEmptyValue` SHALL be ignored. Use of this property is NOT RECOMMENDED, as it is likely to be removed in a later revision. 1199 1209 */ 1200 1210 allowEmptyValue?: boolean; ··· 1231 1241 */ 1232 1242 in: 'cookie' | 'header' | 'path' | 'query'; 1233 1243 /** 1234 - * **REQUIRED**. The name of the parameter. Parameter names are _case sensitive_. 1235 - * - If {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#parameterIn `in`} is `"path"`, the `name` field MUST correspond to a template expression occurring within the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#pathsPath path} field in the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#paths-object Paths Object}. See {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#path-templating Path Templating} for further information. 1236 - * - If {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#parameterIn `in`} is `"header"` and the `name` field is `"Accept"`, `"Content-Type"` or `"Authorization"`, the parameter definition SHALL be ignored. 1237 - * - For all other cases, the `name` corresponds to the parameter name used by the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#parameterIn `in`} property. 1238 - */ 1239 - name: string; 1240 - /** 1241 1244 * Determines whether this parameter is mandatory. If the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#parameterIn parameter location} is `"path"`, this property is **REQUIRED** and its value MUST be `true`. Otherwise, the property MAY be included and its default value is `false`. 1242 1245 */ 1243 1246 required?: boolean; ··· 1256 1259 | 'pipeDelimited' 1257 1260 | 'simple' 1258 1261 | 'spaceDelimited'; 1262 + /** 1263 + * **REQUIRED**. The name of the parameter. Parameter names are _case sensitive_. 1264 + * - If {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#parameterIn `in`} is `"path"`, the `name` field MUST correspond to a template expression occurring within the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#pathsPath path} field in the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#paths-object Paths Object}. See {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#path-templating Path Templating} for further information. 1265 + * - If {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#parameterIn `in`} is `"header"` and the `name` field is `"Accept"`, `"Content-Type"` or `"Authorization"`, the parameter definition SHALL be ignored. 1266 + * - For all other cases, the `name` corresponds to the parameter name used by the {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#parameterIn `in`} property. 1267 + */ 1268 + name: string; 1259 1269 } 1260 1270 1261 1271 /**