001// *************************************************************************************************************************** 002// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * 003// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * 004// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * 005// * with the License. You may obtain a copy of the License at * 006// * * 007// * http://www.apache.org/licenses/LICENSE-2.0 * 008// * * 009// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * 010// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * 011// * specific language governing permissions and limitations under the License. * 012// *************************************************************************************************************************** 013package org.apache.juneau.http.annotation; 014 015import static java.lang.annotation.RetentionPolicy.*; 016 017import java.lang.annotation.*; 018 019/** 020 * @deprecated Use {@link org.apache.juneau.jsonschema.annotation.Schema} 021 */ 022@Documented 023@Retention(RUNTIME) 024@Deprecated 025public @interface Schema { 026 027 /** 028 * <mk>$ref</mk> field of the {@doc SwaggerSchemaObject}. 029 * 030 * <p> 031 * A JSON reference to the schema definition. 032 * 033 * <h5 class='section'>Notes:</h5> 034 * <ul class='spaced-list'> 035 * <li> 036 * The format is a <a href='https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03'>JSON Reference</a>. 037 * <li> 038 * Supports {@doc DefaultRestSvlVariables} 039 * (e.g. <js>"$L{my.localized.variable}"</js>). 040 * </ul> 041 */ 042 String $ref() default ""; 043 044 /** 045 * <mk>format</mk> field of the {@doc SwaggerSchemaObject}. 046 * 047 * <h5 class='section'>Examples:</h5> 048 * <p class='bcode w800'> 049 * <jc>// Used on parameter</jc> 050 * <ja>@RestMethod</ja>(name=<jsf>PUT</jsf>) 051 * <jk>public void</jk> setAge( 052 * <ja>@Body</ja>(type=<js>"integer"</js>, format=<js>"int32"</js>) String input 053 * ) {...} 054 * </p> 055 * 056 * <h5 class='section'>Notes:</h5> 057 * <ul class='spaced-list'> 058 * <li> 059 * The format is plain text. 060 * <li> 061 * Supports {@doc DefaultRestSvlVariables} 062 * (e.g. <js>"$L{my.localized.variable}"</js>). 063 * </ul> 064 * 065 * <h5 class='section'>See Also:</h5> 066 * <ul class='doctree'> 067 * <li class='extlink'>{@doc SwaggerDataTypeFormats} 068 * </ul> 069 */ 070 String format() default ""; 071 072 /** 073 * <mk>title</mk> field of the {@doc SwaggerSchemaObject}. 074 * 075 * <h5 class='section'>Notes:</h5> 076 * <ul class='spaced-list'> 077 * <li> 078 * The format is plain text. 079 * <li> 080 * Supports {@doc DefaultRestSvlVariables} 081 * (e.g. <js>"$L{my.localized.variable}"</js>). 082 * </ul> 083 */ 084 String title() default ""; 085 086 /** 087 * <mk>description</mk> field of the {@doc SwaggerSchemaObject}. 088 * 089 * <p> 090 * A brief description of the body. This could contain examples of use. 091 * 092 * <h5 class='section'>Examples:</h5> 093 * <p class='bcode w800'> 094 * <jc>// Used on parameter</jc> 095 * <ja>@RestMethod</ja>(name=<jsf>POST</jsf>) 096 * <jk>public void</jk> addPet( 097 * <ja>@Body</ja>(description=<js>"Pet object to add to the store"</js>) Pet input 098 * ) {...} 099 * </p> 100 * <p class='bcode w800'> 101 * <jc>// Used on class</jc> 102 * <ja>@RestMethod</ja>(name=<jsf>POST</jsf>) 103 * <jk>public void</jk> addPet(Pet input) {...} 104 * 105 * <ja>@Body</ja>(description=<js>"Pet object to add to the store"</js>) 106 * <jk>public class</jk> Pet {...} 107 * </p> 108 * 109 * <h5 class='section'>Notes:</h5> 110 * <ul class='spaced-list'> 111 * <li> 112 * The format is plain text. 113 * <br>Multiple lines are concatenated with newlines. 114 * <li> 115 * Supports {@doc DefaultRestSvlVariables} 116 * (e.g. <js>"$L{my.localized.variable}"</js>). 117 * </ul> 118 */ 119 String[] description() default {}; 120 121 /** 122 * <mk>default</mk> field of the {@doc SwaggerSchemaObject}. 123 * 124 * <h5 class='section'>Notes:</h5> 125 * <ul class='spaced-list'> 126 * <li> 127 * The format is any {@doc juneau-marshall.JsonDetails.SimplifiedJson}. 128 * <br>Multiple lines are concatenated with newlines. 129 * <li> 130 * Supports {@doc DefaultRestSvlVariables} 131 * (e.g. <js>"$L{my.localized.variable}"</js>). 132 * </ul> 133 */ 134 String[] _default() default {}; 135 136 /** 137 * <mk>multipleOf</mk> field of the {@doc SwaggerSchemaObject}. 138 * 139 * <h5 class='section'>Notes:</h5> 140 * <ul class='spaced-list'> 141 * <li> 142 * The format is numeric. 143 * <li> 144 * Supports {@doc DefaultRestSvlVariables} 145 * (e.g. <js>"$L{my.localized.variable}"</js>). 146 * </ul> 147 */ 148 String multipleOf() default ""; 149 150 /** 151 * <mk>maximum</mk> field of the {@doc SwaggerSchemaObject}. 152 * 153 * <h5 class='section'>Notes:</h5> 154 * <ul class='spaced-list'> 155 * <li> 156 * The format is numeric. 157 * <li> 158 * Supports {@doc DefaultRestSvlVariables} 159 * (e.g. <js>"$L{my.localized.variable}"</js>). 160 * </ul> 161 */ 162 String maximum() default ""; 163 164 /** 165 * <mk>exclusiveMaximum</mk> field of the {@doc SwaggerSchemaObject}. 166 * 167 * <h5 class='section'>Notes:</h5> 168 * <ul class='spaced-list'> 169 * <li> 170 * The format is numeric. 171 * <li> 172 * Supports {@doc DefaultRestSvlVariables} 173 * (e.g. <js>"$L{my.localized.variable}"</js>). 174 * </ul> 175 */ 176 boolean exclusiveMaximum() default false; 177 178 /** 179 * <mk>minimum</mk> field of the {@doc SwaggerSchemaObject}. 180 * 181 * <h5 class='section'>Notes:</h5> 182 * <ul class='spaced-list'> 183 * <li> 184 * The format is numeric. 185 * <li> 186 * Supports {@doc DefaultRestSvlVariables} 187 * (e.g. <js>"$L{my.localized.variable}"</js>). 188 * </ul> 189 */ 190 String minimum() default ""; 191 192 /** 193 * <mk>exclusiveMinimum</mk> field of the {@doc SwaggerSchemaObject}. 194 * 195 * <h5 class='section'>Notes:</h5> 196 * <ul class='spaced-list'> 197 * <li> 198 * The format is numeric. 199 * <li> 200 * Supports {@doc DefaultRestSvlVariables} 201 * (e.g. <js>"$L{my.localized.variable}"</js>). 202 * </ul> 203 */ 204 boolean exclusiveMinimum() default false; 205 206 /** 207 * <mk>maxLength</mk> field of the {@doc SwaggerSchemaObject}. 208 * 209 * <h5 class='section'>Notes:</h5> 210 * <ul class='spaced-list'> 211 * <li> 212 * The format is numeric. 213 * <li> 214 * Supports {@doc DefaultRestSvlVariables} 215 * (e.g. <js>"$L{my.localized.variable}"</js>). 216 * </ul> 217 */ 218 long maxLength() default -1; 219 220 /** 221 * <mk>minLength</mk> field of the {@doc SwaggerSchemaObject}. 222 * 223 * <h5 class='section'>Notes:</h5> 224 * <ul class='spaced-list'> 225 * <li> 226 * The format is numeric. 227 * <li> 228 * Supports {@doc DefaultRestSvlVariables} 229 * (e.g. <js>"$L{my.localized.variable}"</js>). 230 * </ul> 231 */ 232 long minLength() default -1; 233 234 /** 235 * <mk>pattern</mk> field of the {@doc SwaggerSchemaObject}. 236 * 237 * <h5 class='section'>Example:</h5> 238 * <p class='bcode w800'> 239 * <ja>@RestMethod</ja>(name=<jsf>PUT</jsf>) 240 * <jk>public void</jk> doPut(<ja>@Body</ja>(format=<js>"/\\w+\\.\\d+/"</js>) String input) {...} 241 * </p> 242 * 243 * <h5 class='section'>Notes:</h5> 244 * <ul class='spaced-list'> 245 * <li> 246 * The format is plain text. 247 * <li> 248 * This string SHOULD be a valid regular expression. 249 * <li> 250 * Supports {@doc DefaultRestSvlVariables} 251 * (e.g. <js>"$L{my.localized.variable}"</js>). 252 * </ul> 253 */ 254 String pattern() default ""; 255 256 /** 257 * <mk>maxItems</mk> field of the {@doc SwaggerSchemaObject}. 258 * 259 * <h5 class='section'>Notes:</h5> 260 * <ul class='spaced-list'> 261 * <li> 262 * The format is numeric. 263 * <li> 264 * Supports {@doc DefaultRestSvlVariables} 265 * (e.g. <js>"$L{my.localized.variable}"</js>). 266 * </ul> 267 */ 268 long maxItems() default -1; 269 270 /** 271 * <mk>minItems</mk> field of the {@doc SwaggerSchemaObject}. 272 * 273 * <h5 class='section'>Notes:</h5> 274 * <ul class='spaced-list'> 275 * <li> 276 * The format is numeric. 277 * <li> 278 * Supports {@doc DefaultRestSvlVariables} 279 * (e.g. <js>"$L{my.localized.variable}"</js>). 280 * </ul> 281 */ 282 long minItems() default -1; 283 284 /** 285 * <mk>uniqueItems</mk> field of the {@doc SwaggerSchemaObject}. 286 * 287 * <h5 class='section'>Notes:</h5> 288 * <ul class='spaced-list'> 289 * <li> 290 * The format is boolean. 291 * <li> 292 * Supports {@doc DefaultRestSvlVariables} 293 * (e.g. <js>"$L{my.localized.variable}"</js>). 294 * </ul> 295 */ 296 boolean uniqueItems() default false; 297 298 299 /** 300 * <mk>maxProperties</mk> field of the {@doc SwaggerSchemaObject}. 301 * 302 * <h5 class='section'>Notes:</h5> 303 * <ul class='spaced-list'> 304 * <li> 305 * The format is a {@doc juneau-marshall.JsonDetails.SimplifiedJson} object. 306 * <br>Multiple lines are concatenated with newlines. 307 * <li> 308 * Supports {@doc DefaultRestSvlVariables} 309 * (e.g. <js>"$L{my.localized.variable}"</js>). 310 * </ul> 311 */ 312 long maxProperties() default -1; 313 314 315 /** 316 * <mk>minProperties</mk> field of the {@doc SwaggerSchemaObject}. 317 * 318 * <h5 class='section'>Notes:</h5> 319 * <ul class='spaced-list'> 320 * <li> 321 * The format is a {@doc juneau-marshall.JsonDetails.SimplifiedJson} object. 322 * <br>Multiple lines are concatenated with newlines. 323 * <li> 324 * Supports {@doc DefaultRestSvlVariables} 325 * (e.g. <js>"$L{my.localized.variable}"</js>). 326 * </ul> 327 */ 328 long minProperties() default -1; 329 330 /** 331 * <mk>required</mk> field of the {@doc SwaggerSchemaObject}. 332 * 333 * <p> 334 * Determines whether this parameter is mandatory. 335 * <br>The property MAY be included and its default value is false. 336 * 337 * <h5 class='section'>Examples:</h5> 338 * <p class='bcode w800'> 339 * <jc>// Used on parameter</jc> 340 * <ja>@RestMethod</ja>(name=<jsf>POST</jsf>) 341 * <jk>public void</jk> addPet( 342 * <ja>@Body</ja>(required=<jk>true</jk>) Pet input 343 * ) {...} 344 * </p> 345 * <p class='bcode w800'> 346 * <jc>// Used on class</jc> 347 * <ja>@RestMethod</ja>(name=<jsf>POST</jsf>) 348 * <jk>public void</jk> addPet(Pet input) {...} 349 * 350 * <ja>@Body</ja>(required=<jk>true</jk>) 351 * <jk>public class</jk> Pet {...} 352 * </p> 353 * 354 * <h5 class='section'>Notes:</h5> 355 * <ul class='spaced-list'> 356 * <li> 357 * The format is boolean. 358 * <li> 359 * Supports {@doc DefaultRestSvlVariables} 360 * (e.g. <js>"$L{my.localized.variable}"</js>). 361 * </ul> 362 */ 363 boolean required() default false; 364 365 /** 366 * <mk>enum</mk> field of the {@doc SwaggerSchemaObject}. 367 * 368 * <h5 class='section'>Notes:</h5> 369 * <ul class='spaced-list'> 370 * <li> 371 * The format is a {@doc juneau-marshall.JsonDetails.SimplifiedJson} array or comma-delimited list. 372 * <br>Multiple lines are concatenated with newlines. 373 * <li> 374 * Supports {@doc DefaultRestSvlVariables} 375 * (e.g. <js>"$L{my.localized.variable}"</js>). 376 * </ul> 377 */ 378 String[] _enum() default {}; 379 380 /** 381 * <mk>type</mk> field of the {@doc SwaggerSchemaObject}. 382 * 383 * <h5 class='section'>Examples:</h5> 384 * <p class='bcode w800'> 385 * <jc>// Used on parameter</jc> 386 * <ja>@RestMethod</ja>(name=<jsf>POST</jsf>) 387 * <jk>public void</jk> addPet( 388 * <ja>@Body</ja>(type=<js>"object"</js>) Pet input 389 * ) {...} 390 * </p> 391 * <p class='bcode w800'> 392 * <jc>// Used on class</jc> 393 * <ja>@RestMethod</ja>(name=<jsf>POST</jsf>) 394 * <jk>public void</jk> addPet(Pet input) {...} 395 * 396 * <ja>@Body</ja>(type=<js>"object"</js>) 397 * <jk>public class</jk> Pet {...} 398 * </p> 399 * 400 * <h5 class='section'>Notes:</h5> 401 * <ul class='spaced-list'> 402 * <li> 403 * The format is plain text. 404 * <li> 405 * The possible values are: 406 * <ul> 407 * <li><js>"object"</js> 408 * <li><js>"string"</js> 409 * <li><js>"number"</js> 410 * <li><js>"integer"</js> 411 * <li><js>"boolean"</js> 412 * <li><js>"array"</js> 413 * <li><js>"file"</js> 414 * </ul> 415 * <li> 416 * Supports {@doc DefaultRestSvlVariables} 417 * (e.g. <js>"$L{my.localized.variable}"</js>). 418 * </ul> 419 * 420 * <h5 class='section'>See Also:</h5> 421 * <ul class='doctree'> 422 * <li class='extlink'>{@doc SwaggerDataTypes} 423 * </ul> 424 * 425 */ 426 String type() default ""; 427 428 /** 429 * <mk>items</mk> field of the {@doc SwaggerSchemaObject}. 430 * 431 * <h5 class='section'>Notes:</h5> 432 * <ul class='spaced-list'> 433 * <li> 434 * The format is a {@doc juneau-marshall.JsonDetails.SimplifiedJson} object. 435 * <br>Multiple lines are concatenated with newlines. 436 * <li> 437 * Supports {@doc DefaultRestSvlVariables} 438 * (e.g. <js>"$L{my.localized.variable}"</js>). 439 * </ul> 440 */ 441 Items items() default @Items; 442 443 /** 444 * <mk>collectionFormat</mk> field. 445 * 446 * <p> 447 * Note that this field isn't part of the Swagger 2.0 specification, but the specification does not specify how 448 * items are supposed to be represented. 449 * 450 * <p> 451 * Determines the format of the array if <code>type</code> <js>"array"</js> is used. 452 * <br>Can only be used if <code>type</code> is <js>"array"</js>. 453 * 454 * <br>Possible values are: 455 * <ul class='spaced-list'> 456 * <li> 457 * <js>"csv"</js> (default) - Comma-separated values (e.g. <js>"foo,bar"</js>). 458 * <li> 459 * <js>"ssv"</js> - Space-separated values (e.g. <js>"foo bar"</js>). 460 * <li> 461 * <js>"tsv"</js> - Tab-separated values (e.g. <js>"foo\tbar"</js>). 462 * <li> 463 * <js>"pipes</js> - Pipe-separated values (e.g. <js>"foo|bar"</js>). 464 * <li> 465 * <js>"multi"</js> - Corresponds to multiple parameter instances instead of multiple values for a single instance (e.g. <js>"foo=bar&foo=baz"</js>). 466 * <li> 467 * <js>"uon"</js> - UON notation (e.g. <js>"@(foo,bar)"</js>). 468 * </ul> 469 * 470 * <p> 471 * Static strings are defined in {@link CollectionFormatType}. 472 * 473 * <p> 474 * Note that for collections/arrays parameters with POJO element types, the input is broken into a string array before being converted into POJO elements. 475 * 476 * <h5 class='section'>Used for:</h5> 477 * <ul class='spaced-list'> 478 * <li> 479 * Server-side schema-based parsing. 480 * <li> 481 * Server-side generated Swagger documentation. 482 * <li> 483 * Client-side schema-based serializing. 484 * </ul> 485 */ 486 String collectionFormat() default ""; 487 488 /** 489 * <mk>allOf</mk> field of the {@doc SwaggerSchemaObject}. 490 * 491 * <h5 class='section'>Notes:</h5> 492 * <ul class='spaced-list'> 493 * <li> 494 * The format is a {@doc juneau-marshall.JsonDetails.SimplifiedJson} object. 495 * <br>Multiple lines are concatenated with newlines. 496 * <li> 497 * Supports {@doc DefaultRestSvlVariables} 498 * (e.g. <js>"$L{my.localized.variable}"</js>). 499 * </ul> 500 */ 501 String[] allOf() default {}; 502 503 /** 504 * <mk>properties</mk> field of the {@doc SwaggerSchemaObject}. 505 * 506 * <h5 class='section'>Notes:</h5> 507 * <ul class='spaced-list'> 508 * <li> 509 * The format is a {@doc juneau-marshall.JsonDetails.SimplifiedJson} object. 510 * <br>Multiple lines are concatenated with newlines. 511 * <li> 512 * Supports {@doc DefaultRestSvlVariables} 513 * (e.g. <js>"$L{my.localized.variable}"</js>). 514 * </ul> 515 */ 516 String[] properties() default {}; 517 518 /** 519 * <mk>additionalProperties</mk> field of the {@doc SwaggerSchemaObject}. 520 * 521 * <h5 class='section'>Notes:</h5> 522 * <ul class='spaced-list'> 523 * <li> 524 * The format is a {@doc juneau-marshall.JsonDetails.SimplifiedJson} object. 525 * <br>Multiple lines are concatenated with newlines. 526 * <li> 527 * Supports {@doc DefaultRestSvlVariables} 528 * (e.g. <js>"$L{my.localized.variable}"</js>). 529 * </ul> 530 */ 531 String[] additionalProperties() default {}; 532 533 /** 534 * <mk>discriminator</mk> field of the {@doc SwaggerSchemaObject}. 535 * 536 * <h5 class='section'>Notes:</h5> 537 * <ul class='spaced-list'> 538 * <li> 539 * The format is a {@doc juneau-marshall.JsonDetails.SimplifiedJson} object. 540 * <br>Multiple lines are concatenated with newlines. 541 * <li> 542 * Supports {@doc DefaultRestSvlVariables} 543 * (e.g. <js>"$L{my.localized.variable}"</js>). 544 * </ul> 545 */ 546 String discriminator() default ""; 547 548 /** 549 * <mk>readOnly</mk> field of the {@doc SwaggerSchemaObject}. 550 * 551 * <h5 class='section'>Notes:</h5> 552 * <ul class='spaced-list'> 553 * <li> 554 * The format is a {@doc juneau-marshall.JsonDetails.SimplifiedJson} object. 555 * <br>Multiple lines are concatenated with newlines. 556 * <li> 557 * Supports {@doc DefaultRestSvlVariables} 558 * (e.g. <js>"$L{my.localized.variable}"</js>). 559 * </ul> 560 */ 561 boolean readOnly() default false; 562 563 /** 564 * <mk>xml</mk> field of the {@doc SwaggerSchemaObject}. 565 * 566 * <h5 class='section'>Notes:</h5> 567 * <ul class='spaced-list'> 568 * <li> 569 * The format is a {@doc juneau-marshall.JsonDetails.SimplifiedJson} object. 570 * <br>Multiple lines are concatenated with newlines. 571 * <li> 572 * Supports {@doc DefaultRestSvlVariables} 573 * (e.g. <js>"$L{my.localized.variable}"</js>). 574 * </ul> 575 */ 576 String[] xml() default {}; 577 578 /** 579 * <mk>externalDocs</mk> field of the {@doc SwaggerSchemaObject}. 580 * 581 * <h5 class='section'>Notes:</h5> 582 * <ul class='spaced-list'> 583 * <li> 584 * The format is a {@doc juneau-marshall.JsonDetails.SimplifiedJson} object. 585 * <br>Multiple lines are concatenated with newlines. 586 * <li> 587 * Supports {@doc DefaultRestSvlVariables} 588 * (e.g. <js>"$L{my.localized.variable}"</js>). 589 * </ul> 590 */ 591 ExternalDocs externalDocs() default @ExternalDocs; 592 593 /** 594 * <mk>example</mk> field of the {@doc SwaggerSchemaObject}. 595 * 596 * <p> 597 * A free-form property to include an example of an instance for this schema. 598 * 599 * <p> 600 * This attribute defines a JSON representation of the body value that is used by <code>BasicRestInfoProvider</code> to construct 601 * media-type-based examples of the body of the request. 602 * 603 * <h5 class='section'>Notes:</h5> 604 * <ul class='spaced-list'> 605 * <li> 606 * The format is a {@doc juneau-marshall.JsonDetails.SimplifiedJson} object or plain text string. 607 * <br>Multiple lines are concatenated with newlines. 608 * <li> 609 * Supports {@doc DefaultRestSvlVariables} 610 * (e.g. <js>"$L{my.localized.variable}"</js>). 611 * </ul> 612 */ 613 String[] example() default {}; 614 615 /** 616 * <mk>x-examples</mk> field of the {@doc SwaggerSchemaObject}. 617 * 618 * <p> 619 * This is a JSON object whose keys are media types and values are string representations of that value. 620 * 621 * <h5 class='section'>Notes:</h5> 622 * <ul class='spaced-list'> 623 * <li> 624 * The format is a {@doc juneau-marshall.JsonDetails.SimplifiedJson} object. 625 * <br>Multiple lines are concatenated with newlines. 626 * <li> 627 * Supports {@doc DefaultRestSvlVariables} 628 * (e.g. <js>"$L{my.localized.variable}"</js>). 629 * </ul> 630 */ 631 String[] examples() default {}; 632 633 /** 634 * Specifies that schema information for this part should not be shown in the generated Swagger documentation. 635 */ 636 boolean ignore() default false; 637 638 /** 639 * Free-form value for the {@doc SwaggerSchemaObject}. 640 * 641 * <p> 642 * This is a JSON object that makes up the swagger information for this field. 643 * 644 * <p> 645 * The following are completely equivalent ways of defining the swagger description of a Schema object: 646 * <p class='bcode w800'> 647 * <jc>// Normal</jc> 648 * <ja>@Schema</ja>( 649 * type=<js>"array"</js>, 650 * items=<ja>@Items</ja>( 651 * $ref=<js>"#/definitions/Pet"</js> 652 * ) 653 * ) 654 * </p> 655 * <p class='bcode w800'> 656 * <jc>// Free-form</jc> 657 * <ja>@Schema</ja>( 658 * <js>"type: 'array',"</js>, 659 * <js>"items: {"</js>, 660 * <js>"$ref: '#/definitions/Pet'"</js>, 661 * <js>"}"</js> 662 * ) 663 * </p> 664 * <p class='bcode w800'> 665 * <jc>// Free-form using variables</jc> 666 * <ja>@Schema</ja>(<js>"$L{petArraySwagger}"</js>) 667 * </p> 668 * <p class='bcode w800'> 669 * <mc>// Contents of MyResource.properties</mc> 670 * <mk>petArraySwagger</mk> = <mv>{ type: "array", items: { $ref: "#/definitions/Pet" } }</mv> 671 * </p> 672 * 673 * <p> 674 * The reasons why you may want to use this field include: 675 * <ul> 676 * <li>You want to pull in the entire Swagger JSON definition for this field from an external source such as a properties file. 677 * <li>You want to add extra fields to the Swagger documentation that are not officially part of the Swagger specification. 678 * </ul> 679 * 680 * <h5 class='section'>Notes:</h5> 681 * <ul class='spaced-list'> 682 * <li> 683 * The format is a {@doc juneau-marshall.JsonDetails.SimplifiedJson} object. 684 * <li> 685 * The leading/trailing <code>{ }</code> characters are optional. 686 * <br>The following two example are considered equivalent: 687 * <p class='bcode w800'> 688 * <ja>@Schema</ja>(<js>"{type: 'array'}"</js>) 689 * </p> 690 * <p class='bcode w800'> 691 * <ja>@Schema</ja>(<js>"type: 'array'"</js>) 692 * </p> 693 * <li> 694 * Multiple lines are concatenated with newlines so that you can format the value to be readable. 695 * <li> 696 * Supports {@doc DefaultRestSvlVariables} 697 * (e.g. <js>"$L{my.localized.variable}"</js>). 698 * <li> 699 * Values defined in this field supersede values pulled from the Swagger JSON file and are superseded by individual values defined on this annotation. 700 * </ul> 701 */ 702 String[] value() default {}; 703}