Package org.eclipse.microprofile.openapi.annotations

## Annotation Type OpenAPIDefinition

    @Target({TYPE,PACKAGE})
    @Retention(RUNTIME)
    @Inherited
    public @interface OpenAPIDefinition

OpenAPI

This is the root document object of the OpenAPI document. It contains required and optional fields.

See Also:
  OpenAPI Specification OpenAPI Object

### Required Element Summary

Required Elements
`Info` `info` Required: Provides metadata about the API.

### Optional Element Summary

Optional Elements
`Components` `components` An element to hold a set of reusable objects for different aspects of the OpenAPI Specification (OAS).
`Extension[]` `extensions` List of extensions to be added to the `OpenAPI` model corresponding to the containing annotation.
`ExternalDocumentation` `externalDocs` Any additional external documentation for the API
`SecurityRequirement[]` `security` A declaration of which security mechanisms can be used across the API.
`SecurityRequirementsSet[]` `securitySets` A declaration of which security mechanisms can be used across the API.
`Server[]` `servers` An array of Server Objects, which provide connectivity information to a target server.
`Tag[]` `tags` A list of tags used by the specification with additional metadata.

### Element Detail

#### info

    Info info

Required: Provides metadata about the API. The metadata MAY be used by tooling as required.

Returns:
  the metadata about this API

#### tags

    Tag[] tags

A list of tags used by the specification with additional metadata. The order of the tags can be used to reflect on their order by the parsing tools.

Returns:
  the tags used by the specification with any additional metadata

Default:
  {}

#### servers

    Server[] servers

An array of Server Objects, which provide connectivity information to a target server. If the servers property is not provided, or is an empty array, the default value would be a Server Object with a url value of /.

Returns:
  the servers of this API

Default:
  {}

#### security

    SecurityRequirement[] security

A declaration of which security mechanisms can be used across the API.

Adding a `SecurityRequirement` to this array is equivalent to adding a `SecurityRequirementsSet` containing a single `SecurityRequirement` to `securitySets()`.

Returns:
  the array of security requirements for this API

Default:
  {}

#### securitySets

    SecurityRequirementsSet[] securitySets

A declaration of which security mechanisms can be used across the API.

All of the security requirements within any one of the sets must be satisfied to authorize a request.

Including an empty set within this list indicates that the other requirements are optional.

Returns:
  the array of security requirement sets for this API

Default:
  {}

#### externalDocs

    ExternalDocumentation externalDocs

Any additional external documentation for the API

Returns:
  the external documentation for this API.

Default:
  @org.eclipse.microprofile.openapi.annotations.ExternalDocumentation

#### components

    Components components

An element to hold a set of reusable objects for different aspects of the OpenAPI Specification (OAS). All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object.

Returns:
  the element with a set of reusable objects for different aspects of the OAS.

Default:
  @org.eclipse.microprofile.openapi.annotations.Components

#### extensions

    Extension[] extensions

List of extensions to be added to the `OpenAPI` model corresponding to the containing annotation.

Returns:
  array of extensions
Since:
  3.1

Default:
  {}