Package io.vertx.openapi.contract

## Interface OpenAPIContract

-     public interface OpenAPIContract

- - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Operation` | `findOperation​(String urlPath, HttpMethod method)` | Finds the related `Operation` object based on the passed url path and method.
    `Path` | `findPath​(String urlPath)` | Finds the related `Path` object based on the passed url path.
    `static Future<OpenAPIContract>` | `from​(Vertx vertx, JsonObject unresolvedContract)` | Resolves / dereferences the passed contract and creates an `OpenAPIContract` instance.
    `static Future<OpenAPIContract>` | `from​(Vertx vertx, JsonObject unresolvedContract, Map<String,​JsonObject> additionalContractFiles)` | Resolves / dereferences the passed contract and creates an `OpenAPIContract` instance.
    `static Future<OpenAPIContract>` | `from​(Vertx vertx, String unresolvedContractPath)` | Resolves / dereferences the passed contract and creates an `OpenAPIContract` instance.
    `static Future<OpenAPIContract>` | `from​(Vertx vertx, String unresolvedContractPath, Map<String,​String> additionalContractFiles)` | Resolves / dereferences the passed contract and creates an `OpenAPIContract` instance.
    `List<Path>` | `getPaths()` |
    `JsonObject` | `getRawContract()` |
    `SchemaRepository` | `getSchemaRepository()` |
    `List<SecurityRequirement>` | `getSecurityRequirements()` | Returns the applicable list of global security requirements (scopes) or empty list.
    `List<Server>` | `getServers()` |
    `OpenAPIVersion` | `getVersion()` |
    `Operation` | `operation​(String operationId)` | Access to an operation defined in the contract with `operationId`.
    `List<Operation>` | `operations()` |
    `SecurityScheme` | `securityScheme​(String name)` | Gets the related `SecurityScheme` object based on the passed name.

- - ### Method Detail

    - #### from

          static Future<OpenAPIContract> from​(Vertx vertx,
                                              String unresolvedContractPath)

      Resolves / dereferences the passed contract and creates an `OpenAPIContract` instance.
      Parameters:
        `vertx` - The related Vert.x instance.
        `unresolvedContractPath` - The path to the unresolved contract.
      Returns:
        A succeeded `Future` holding an `OpenAPIContract` instance, otherwise a failed `Future`.

    - #### from

          static Future<OpenAPIContract> from​(Vertx vertx,
                                              JsonObject unresolvedContract)

      Resolves / dereferences the passed contract and creates an `OpenAPIContract` instance.
      Parameters:
        `vertx` - The related Vert.x instance.
        `unresolvedContract` - The unresolved contract.
      Returns:
        A succeeded `Future` holding an `OpenAPIContract` instance, otherwise a failed `Future`.

    - #### from

          static Future<OpenAPIContract> from​(Vertx vertx,
                                              String unresolvedContractPath,
                                              Map<String,​String> additionalContractFiles)

      Resolves / dereferences the passed contract and creates an `OpenAPIContract` instance.

      This method can be used in case that the contract is split into several files. These files can be passed in a Map that has the reference as key and the path to the file as value.

      Parameters:
        `vertx` - The related Vert.x instance.
        `unresolvedContractPath` - The path to the unresolved contract.
        `additionalContractFiles` - The additional contract files
      Returns:
        A succeeded `Future` holding an `OpenAPIContract` instance, otherwise a failed `Future`.

    - #### from

          static Future<OpenAPIContract> from​(Vertx vertx,
                                              JsonObject unresolvedContract,
                                              Map<String,​JsonObject> additionalContractFiles)

      Resolves / dereferences the passed contract and creates an `OpenAPIContract` instance.

      This method can be used in case that the contract is split into several files. These files can be passed in a Map that has the reference as key and the path to the file as value.

      Parameters:
        `vertx` - The related Vert.x instance.
        `unresolvedContract` - The unresolved contract.
        `additionalContractFiles` - The additional contract files
      Returns:
        A succeeded `Future` holding an `OpenAPIContract` instance, otherwise a failed `Future`.

    - #### operation

          Operation operation​(String operationId)

      Access to an operation defined in the contract with `operationId`.
      Parameters:
        `operationId` - the id of the operation.
      Returns:
        the requested operation.
      Throws:
        `IllegalArgumentException` - if the operation id doesn't exist in the contract.

    - #### operations

          List<Operation> operations()

      Returns:
        all operations defined in the contract.

    - #### getPaths

          List<Path> getPaths()

      Returns:
        all `Paths` defined in the OpenAPI contract.

    - #### getRawContract

          JsonObject getRawContract()

      Returns:
        the resolved OpenAPI contract as `JsonObject`.

    - #### getVersion

          OpenAPIVersion getVersion()

      Returns:
        the OpenAPI version of the contract.

    - #### getSchemaRepository

          SchemaRepository getSchemaRepository()

      Returns:
        the `SchemaRepository` to validate against.

    - #### getServers

          List<Server> getServers()

      Returns:
        the servers of the contract.

    - #### findPath

          Path findPath​(String urlPath)

      Finds the related `Path` object based on the passed url path.
      Parameters:
        `urlPath` - The path of the request.
      Returns:
        the found `Path` object, or null if the passed path doesn't match any `Path` object.

    - #### findOperation

          Operation findOperation​(String urlPath,
                                  HttpMethod method)

      Finds the related `Operation` object based on the passed url path and method.
      Parameters:
        `urlPath` - The path of the request.
        `method` - The method of the request.
      Returns:
        the found `Operation` object, or null if the passed path and method doesn't match any `Operation` object.

    - #### getSecurityRequirements

          List<SecurityRequirement> getSecurityRequirements()

      Returns the applicable list of global security requirements (scopes) or empty list.
      Returns:
        The related security requirement.

    - #### securityScheme

          SecurityScheme securityScheme​(String name)

      Gets the related `SecurityScheme` object based on the passed name.
      Parameters:
        `name` - The name of the security scheme.
      Returns:
        the found `SecurityScheme` object, or null if the passed path and method doesn't match any `Operation` object.