org.eclipse.microprofile.openapi

## Class OASFactory

- java.lang.Object
- - org.eclipse.microprofile.openapi.OASFactory

    public final class OASFactory
    extends Object

This class allows application developers to build new OpenAPI model elements.
For example, to start a new top-level OpenAPI element with an ExternalDocument inside of it an application developer would write:

    OASFactory.createObject(OpenAPI.class)
              .setExternalDocs(OASFactory.createObject(ExternalDocumentation.class).url("http://myDoc"));

### Method Summary

All Methods Static Methods Concrete Methods Deprecated Methods
`static APIResponse` `createAPIResponse()` This method creates a new `APIResponse` instance.
`static APIResponses` `createAPIResponses()` This method creates a new `APIResponses` instance.
`static Callback` `createCallback()` This method creates a new `Callback` instance.
`static Components` `createComponents()` This method creates a new `Components` instance.
`static Contact` `createContact()` This method creates a new `Contact` instance.
`static Content` `createContent()` This method creates a new `Content` instance.
`static Discriminator` `createDiscriminator()` This method creates a new `Discriminator` instance.
`static Encoding` `createEncoding()` This method creates a new `Encoding` instance.
`static Example` `createExample()` This method creates a new `Example` instance.
`static ExternalDocumentation` `createExternalDocumentation()` This method creates a new `ExternalDocumentation` instance.
`static Header` `createHeader()` This method creates a new `Header` instance.
`static Info` `createInfo()` This method creates a new `Info` instance.
`static License` `createLicense()` This method creates a new `License` instance.
`static Link` `createLink()` This method creates a new `Link` instance.
`static MediaType` `createMediaType()` This method creates a new `MediaType` instance.
`static OAuthFlow` `createOAuthFlow()` This method creates a new `OAuthFlow` instance.
`static OAuthFlows` `createOAuthFlows()` This method creates a new `OAuthFlows` instance.
`static <T extends Constructible> T` `createObject(Class<T> clazz)` This method creates a new instance of a constructible element from the OpenAPI model tree.
`static OpenAPI` `createOpenAPI()` This method creates a new `OpenAPI` instance.
`static Operation` `createOperation()` This method creates a new `Operation` instance.
`static Parameter` `createParameter()` This method creates a new `Parameter` instance.
`static PathItem` `createPathItem()` This method creates a new `PathItem` instance.
`static Paths` `createPaths()` This method creates a new `Paths` instance.
`static RequestBody` `createRequestBody()` This method creates a new `RequestBody` instance.
`static Schema` `createSchema()` This method creates a new `Schema` instance.
`static Scopes` `createScopes()` Deprecated. since 1.2 use `Map<String, String>` for scopes instead
`static SecurityRequirement` `createSecurityRequirement()` This method creates a new `SecurityRequirement` instance.
`static SecurityScheme` `createSecurityScheme()` This method creates a new `SecurityScheme` instance.
`static Server` `createServer()` This method creates a new `Server` instance.
`static ServerVariable` `createServerVariable()` This method creates a new `ServerVariable` instance.
`static ServerVariables` `createServerVariables()` Deprecated. since 1.1, use `Map<String, ServerVariable>` for server variables instead
`static Tag` `createTag()` This method creates a new `Tag` instance.
`static XML` `createXML()` This method creates a new `XML` instance.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### createObject

    public static <T extends Constructible> T createObject(Class<T> clazz)

This method creates a new instance of a constructible element from the OpenAPI model tree.
Example:

    OASFactory.createObject(Info.class).title("Airlines").description("Airlines APIs").version("1.0.0");

Type Parameters:
  `T` - describes the type parameter
Parameters:
  `clazz` - represents a model which extends the `Constructible` interface
Returns:
  a new instance of the requested model class
Throws:
  `NullPointerException` - if the specified class is null
  `IllegalArgumentException` - if an instance could not be created, most likely, due to an illegal or inappropriate class

#### createComponents

    public static Components createComponents()

This method creates a new `Components` instance.

Returns:
  a new Components instance

#### createExternalDocumentation

    public static ExternalDocumentation createExternalDocumentation()

This method creates a new `ExternalDocumentation` instance.

Returns:
  a new ExternalDocumentation instance

#### createOpenAPI

    public static OpenAPI createOpenAPI()

This method creates a new `OpenAPI` instance.

Returns:
  a new OpenAPI instance

#### createOperation

    public static Operation createOperation()

This method creates a new `Operation` instance.

Returns:
  a new Operation instance

#### createPathItem

    public static PathItem createPathItem()

This method creates a new `PathItem` instance.

Returns:
  a new PathItem instance

#### createPaths

    public static Paths createPaths()

This method creates a new `Paths` instance.

Returns:
  a new Paths instance

#### createCallback

    public static Callback createCallback()

This method creates a new `Callback` instance.

Returns:
  a new Callback instance

#### createExample

    public static Example createExample()

This method creates a new `Example` instance.

Returns:
  a new Example instance

#### createHeader

    public static Header createHeader()

This method creates a new `Header` instance.

Returns:
  a new Header instance

#### createContact

    public static Contact createContact()

This method creates a new `Contact` instance.

Returns:
  a new Contact instance

#### createInfo

    public static Info createInfo()

This method creates a new `Info` instance.

Returns:
  a new Info instance

#### createLicense

    public static License createLicense()

This method creates a new `License` instance.

Returns:
  a new License instance

#### createLink

    public static Link createLink()

This method creates a new `Link` instance.

Returns:
  a new Link instance

#### createContent

    public static Content createContent()

This method creates a new `Content` instance.

Returns:
  a new Content instance

#### createDiscriminator

    public static Discriminator createDiscriminator()

This method creates a new `Discriminator` instance.

Returns:
  a new Discriminator instance

#### createEncoding

    public static Encoding createEncoding()

This method creates a new `Encoding` instance.

Returns:
  a new Encoding instance

#### createMediaType

    public static MediaType createMediaType()

This method creates a new `MediaType` instance.

Returns:
  a new MediaType instance

#### createSchema

    public static Schema createSchema()

This method creates a new `Schema` instance.

Returns:
  a new Schema instance

#### createXML

    public static XML createXML()

This method creates a new `XML` instance.

Returns:
  a new XML instance

#### createParameter

    public static Parameter createParameter()

This method creates a new `Parameter` instance.

Returns:
  a new Parameter instance

#### createRequestBody

    public static RequestBody createRequestBody()

This method creates a new `RequestBody` instance.

Returns:
  a new RequestBody instance

#### createAPIResponse

    public static APIResponse createAPIResponse()

This method creates a new `APIResponse` instance.

Returns:
  a new APIResponse instance

#### createAPIResponses

    public static APIResponses createAPIResponses()

This method creates a new `APIResponses` instance.

Returns:
  a new APIResponses instance

#### createOAuthFlow

    public static OAuthFlow createOAuthFlow()

This method creates a new `OAuthFlow` instance.

Returns:
  a new OAuthFlow instance

#### createOAuthFlows

    public static OAuthFlows createOAuthFlows()

This method creates a new `OAuthFlows` instance.

Returns:
  a new OAuthFlows instance

#### createScopes

    @Deprecated
    public static Scopes createScopes()

Deprecated. since 1.2 use `Map<String, String>` for scopes instead
This method creates a new `Scopes` instance.

Returns:
  a new Scopes instance

#### createSecurityRequirement

    public static SecurityRequirement createSecurityRequirement()

This method creates a new `SecurityRequirement` instance.

Returns:
  a new SecurityRequirement instance

#### createSecurityScheme

    public static SecurityScheme createSecurityScheme()

This method creates a new `SecurityScheme` instance.

Returns:
  a new SecurityScheme instance

#### createServer

    public static Server createServer()

This method creates a new `Server` instance.

Returns:
  a new Server instance

#### createServerVariable

    public static ServerVariable createServerVariable()

This method creates a new `ServerVariable` instance.

Returns:
  a new ServerVariable instance

#### createServerVariables

    @Deprecated
    public static ServerVariables createServerVariables()

Deprecated. since 1.1, use `Map<String, ServerVariable>` for server variables instead
This method creates a new `ServerVariables` instance.

Returns:
  a new ServerVariables instance

#### createTag

    public static Tag createTag()

This method creates a new `Tag` instance.

Returns:
  a new Tag instance