Package oracle.dbtools.plugin.api.http.annotations

## Annotation Type PathTemplate

-     @Retention(RUNTIME)
      @Target(TYPE)
      @Documented
      public @interface PathTemplate

  Describes the URI pattern of resources that a type `Dispatches`. The syntax of the pattern MUST conform to the syntax of Route Patterns.
  Author:
    cdivilly

- - ### Field Summary

    Fields
    Modifier and Type | Fields | Description
    --- | --- | ---
    `static int` | `DEFAULT_PRIORITY` | Default priority value

  - ### Required Element Summary

    Required Elements
    Modifier and Type | Required Element | Description
    --- | --- | ---
    `java.lang.String` | `value` | The Route pattern

  - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element | Description
    --- | --- | ---
    `java.lang.String[]` | `accepts` | Enumerates the sets of media types that this resource can accept for requests that may contain a resource body (e.g.
    `java.lang.String[]` | `allowedOrigins` | The set of Web Origins that can access this resource via `CORS`
    `HTTPAuthenticationScheme[]` | `authSchemes` | Optionally specify the HTTP Authentication Schemes that this pattern can dispatch.
    `CrossOriginSharingPolicy` | `cors` | Identifies if the resource can be accessed via `CORS` or not.
    `java.lang.String` | `deprecatedSince` | The version that this resource was deprecated in.
    `DocumentationPolicy` | `documentation` | Describes how this resource is documented.
    `FramePolicy` | `frameOptions` | Defines if the resource can be framed
    `java.lang.String` | `introducedSince` | The version that this resource was introduced in.
    `java.lang.String[]` | `methods` | Optionally specify the HTTP methods that this pattern can dispatch
    `java.lang.String` | `name` | Optionally assign a mnemonic name to the path template
    `boolean` | `overlaps` | Set this attribute to true if this resource may overlap with other (possibly user defined resources)
    `int` | `pageSize` | For resources that may be paginated indicates the number of items to display per page.
    `PaginationStrategy` | `pagination` | Describes how a resource is paginated.
    `PathSyntaxPolicy` | `pathValidation` | Describes how path portion of the request URI should be validated.
    `java.lang.String` | `removedSince` | The version that this resource was removed from.
    `java.lang.String` | `requiresPrivilege` | Identifies the name of the `Privilege` that protects this URI pattern
    `TransportPolicy` | `transport` | Describes the transport level security requirements for this URI pattern

- - ### Field Detail

    - #### DEFAULT_PRIORITY

          static final int DEFAULT_PRIORITY

      Default priority value

  - ### Element Detail

    - #### value

          java.lang.String value

      The Route pattern
      Returns:
        Route Pattern

  - - #### accepts

          java.lang.String[] accepts

      Enumerates the sets of media types that this resource can accept for requests that may contain a resource body (e.g. PUT, POST). The media type specification MAY contain wildcards An empty array (the default) indicates that the resource accepts any media type
      Returns:
        The acceptable media types
      Default:
        {}

  - - #### cors

          CrossOriginSharingPolicy cors

      Identifies if the resource can be accessed via `CORS` or not. Note the default is `CrossOriginSharingPolicy.ALLOW`.
      Returns:
        The `CrossOriginSharingPolicy`
      Default:
        oracle.dbtools.plugin.api.http.annotations.CrossOriginSharingPolicy.INHERIT

  - - #### allowedOrigins

          java.lang.String[] allowedOrigins

      The set of Web Origins that can access this resource via `CORS`
      Returns:
        Array of Web Origins
      Default:
        {}

  - - #### documentation

          DocumentationPolicy documentation

      Describes how this resource is documented.
      Returns:
        `DocumentationPolicy` instance
      Default:
        oracle.dbtools.plugin.api.http.annotations.DocumentationPolicy.AUTHORIZED

  - - #### pathValidation

          PathSyntaxPolicy pathValidation

      Describes how path portion of the request URI should be validated.
      Returns:
        `PathSyntaxPolicy` instance
      Default:
        oracle.dbtools.plugin.api.http.annotations.PathSyntaxPolicy.CHECK

  - - #### frameOptions

          FramePolicy frameOptions

      Defines if the resource can be framed
      Returns:
        `FramePolicy` instance
      Default:
        oracle.dbtools.plugin.api.http.annotations.FramePolicy.SAME_ORIGIN

  - - #### methods

          java.lang.String[] methods

      Optionally specify the HTTP methods that this pattern can dispatch
      Returns:
        supported HTTP methods
      Default:
        {}

  - - #### authSchemes

          HTTPAuthenticationScheme[] authSchemes

      Optionally specify the HTTP Authentication Schemes that this pattern can dispatch. Currently only one explicit HTTPAuthenticationScheme is defined (HTTPAuthenticationScheme.BASIC). It is imagined that in the future we will support more defined HTTPAuthenticationSchemes so an Array is used here.
      Returns:
        supported Auth Schemes
      Default:
        {oracle.dbtools.plugin.api.http.annotations.HTTPAuthenticationScheme.ANY}

  - - #### name

          java.lang.String name

      Optionally assign a mnemonic name to the path template
      Returns:
        mnemonic that uniquely identifies this `PathTemplate`
      See Also:
        `PathTemplateMatch.name()`
      Default:
        ""

  - - #### pageSize

          int pageSize

      For resources that may be paginated indicates the number of items to display per page.
      Returns:
        number of items per page
      Default:
        -1

  - - #### pagination

          PaginationStrategy pagination

      Describes how a resource is paginated.
      Returns:
        `PaginationStrategy` instance
      Default:
        oracle.dbtools.plugin.api.pagination.PaginationStrategy.NONE

  - - #### requiresPrivilege

          java.lang.String requiresPrivilege

      Identifies the name of the `Privilege` that protects this URI pattern
      Returns:
        privilege name
      Default:
        ""

  - - #### transport

          TransportPolicy transport

      Describes the transport level security requirements for this URI pattern
      Returns:
        `TransportPolicy` instance
      Default:
        oracle.dbtools.plugin.api.security.annotations.TransportPolicy.ANY

  - - #### introducedSince

          java.lang.String introducedSince

      The version that this resource was introduced in. If not specified then it's value is inherited from the `HttpServlet`'s `IntroducedSince` annotation or the plugin identified by `BelongsTo`'s `IntroducedSince` annotation
      Returns:
        Version number string
      See Also:
        `IntroducedSince`
      Default:
        ""

  - - #### deprecatedSince

          java.lang.String deprecatedSince

      The version that this resource was deprecated in. If not specified then it's value is inherited from the `HttpServlet`'s `IntroducedSince` annotation or the plugin identified by `BelongsTo`'s `IntroducedSince` annotation. If no value is inherited then the resource is not deprecated
      Returns:
        Version number string
      See Also:
        `DeprecatedSince`
      Default:
        ""

  - - #### removedSince

          java.lang.String removedSince

      The version that this resource was removed from. If not specified then it's value is inherited from the `HttpServlet`'s `RemovedSince` annotation. If no value is inherited then the resource has not been removed.
      Returns:
        Version number string
      See Also:
        `RemovedSince`
      Default:
        ""

  - - #### overlaps

          boolean overlaps

      Set this attribute to true if this resource may overlap with other (possibly user defined resources)
      Returns:
        true if this resource path may overlap with other resources
      Default:
        false