Class OpenApiFeatureConfig.BuilderBase<BUILDER extends OpenApiFeatureConfig.BuilderBase<BUILDER, PROTOTYPE>, PROTOTYPE extends OpenApiFeatureConfig>

java.lang.Object
io.helidon.openapi.OpenApiFeatureConfig.BuilderBase<BUILDER, PROTOTYPE>
Type Parameters:
BUILDER - type of the builder extending this abstract builder
PROTOTYPE - type of the prototype interface that would be built by Prototype.Builder.buildPrototype()
All Implemented Interfaces:
Prototype.Builder<BUILDER, PROTOTYPE>, ConfigBuilderSupport.ConfiguredBuilder<BUILDER, PROTOTYPE>
Direct Known Subclasses:
OpenApiFeatureConfig.Builder
Enclosing interface:
OpenApiFeatureConfig

public abstract static class OpenApiFeatureConfig.BuilderBase<BUILDER extends OpenApiFeatureConfig.BuilderBase<BUILDER, PROTOTYPE>, PROTOTYPE extends OpenApiFeatureConfig> extends Object implements ConfigBuilderSupport.ConfiguredBuilder<BUILDER, PROTOTYPE>
Fluent API builder base for OpenApiFeatureConfig.
  • Constructor Details

    • BuilderBase

      protected BuilderBase()
      Protected to support extensibility.
  • Method Details

    • from

      public BUILDER from(OpenApiFeatureConfig prototype)
      Update this builder from an existing prototype instance. This method disables automatic service discovery.
      Parameters:
      prototype - existing prototype to update this builder from
      Returns:
      updated builder instance
    • from

      public BUILDER from(OpenApiFeatureConfig.BuilderBase<?,?> builder)
      Update this builder from an existing prototype builder instance.
      Parameters:
      builder - existing builder prototype to update this builder from
      Returns:
      updated builder instance
    • config

      public BUILDER config(Config config)
      Update builder from configuration (node of this type). If a value is present in configuration, it would override currently configured values.
      Specified by:
      config in interface ConfigBuilderSupport.ConfiguredBuilder<BUILDER extends OpenApiFeatureConfig.BuilderBase<BUILDER, PROTOTYPE>, PROTOTYPE extends OpenApiFeatureConfig>
      Parameters:
      config - configuration instance used to obtain values to update this builder
      Returns:
      updated builder instance
    • weight

      public BUILDER weight(double weight)
      Weight of the OpenAPI feature. This is quite low, to be registered after routing. 90.0.
      Parameters:
      weight - weight of the feature
      Returns:
      updated builder instance
      See Also:
    • isEnabled

      public BUILDER isEnabled(boolean isEnabled)
      Sets whether the feature should be enabled.
      Parameters:
      isEnabled - true if enabled, false otherwise
      Returns:
      updated builder instance
      See Also:
    • webContext

      public BUILDER webContext(String webContext)
      Web context path for the OpenAPI endpoint.
      Parameters:
      webContext - webContext to use
      Returns:
      updated builder instance
      See Also:
    • clearStaticFile

      public BUILDER clearStaticFile()
      Clear existing value of staticFile.
      Returns:
      updated builder instance
      See Also:
    • staticFile

      public BUILDER staticFile(String staticFile)
      Path of the static OpenAPI document file. Default types are `json`, `yaml`, and `yml`.
      Parameters:
      staticFile - location of the static OpenAPI document file
      Returns:
      updated builder instance
      See Also:
    • generatedMode

      public BUILDER generatedMode(OpenApiGeneratedMode generatedMode)
      Generated document source handling mode.
      Parameters:
      generatedMode - generated document source handling mode
      Returns:
      updated builder instance
      See Also:
    • generatedResolveConfigExpressions

      public BUILDER generatedResolveConfigExpressions(boolean generatedResolveConfigExpressions)
      Whether generated document sources resolve annotation string values as Helidon config expressions at runtime.

      When disabled, generated document sources use annotation string values literally. This is disabled by default because annotation text can be user-visible OpenAPI content.

      Parameters:
      generatedResolveConfigExpressions - whether to resolve generated OpenAPI annotation string values as config expressions
      Returns:
      updated builder instance
      See Also:
    • clearGeneratedDocumentSources

      public BUILDER clearGeneratedDocumentSources()
      Clear all generatedDocumentSources.
      Returns:
      updated builder instance
      See Also:
    • generatedDocumentSources

      public BUILDER generatedDocumentSources(List<String> generatedDocumentSources)
      Named generated document metadata sources to use, in the order configured.

      Sources generated from @OpenApi.Document use the annotated type's dotted canonical type name. Custom OpenApiDocumentSource services must be qualified with @Service.Named to be selected by name. Unqualified sources always participate when they support the document context and cannot be filtered with this option.

      Parameters:
      generatedDocumentSources - generated document metadata source names
      Returns:
      updated builder instance
      See Also:
    • addGeneratedDocumentSources

      public BUILDER addGeneratedDocumentSources(List<String> generatedDocumentSources)
      Named generated document metadata sources to use, in the order configured.

      Sources generated from @OpenApi.Document use the annotated type's dotted canonical type name. Custom OpenApiDocumentSource services must be qualified with @Service.Named to be selected by name. Unqualified sources always participate when they support the document context and cannot be filtered with this option.

      Parameters:
      generatedDocumentSources - generated document metadata source names
      Returns:
      updated builder instance
      See Also:
    • addGeneratedDocumentSource

      public BUILDER addGeneratedDocumentSource(String generatedDocumentSource)
      Named generated document metadata sources to use, in the order configured.

      Sources generated from @OpenApi.Document use the annotated type's dotted canonical type name. Custom OpenApiDocumentSource services must be qualified with @Service.Named to be selected by name. Unqualified sources always participate when they support the document context and cannot be filtered with this option.

      Parameters:
      generatedDocumentSource - add single generated document metadata source names
      Returns:
      updated builder instance
      See Also:
    • generatedOperationIds

      public BUILDER generatedOperationIds(Map<String,String> generatedOperationIds)
      Operation ids to use for generated Java methods.

      Each key is a Java method signature consisting of the fully qualified class name, #, the method name, and fully qualified parameter types separated by ,. The value is the operation id to use for that method. This method replaces all values with the new ones.

      Parameters:
      generatedOperationIds - generated operation ids keyed by fully qualified Java method signature
      Returns:
      updated builder instance
      See Also:
    • addGeneratedOperationIds

      public BUILDER addGeneratedOperationIds(Map<String,String> generatedOperationIds)
      Operation ids to use for generated Java methods.

      Each key is a Java method signature consisting of the fully qualified class name, #, the method name, and fully qualified parameter types separated by ,. The value is the operation id to use for that method. This method keeps existing values, then puts all new values into the map.

      Parameters:
      generatedOperationIds - generated operation ids keyed by fully qualified Java method signature
      Returns:
      updated builder instance
      See Also:
    • clearOpenApiVersion

      public BUILDER clearOpenApiVersion()
      Clear existing value of openApiVersion.
      Returns:
      updated builder instance
      See Also:
    • openApiVersion

      public BUILDER openApiVersion(OpenApiVersion openApiVersion)
      OpenAPI version implementation for rendered generated or merged documents.

      If not configured, service discovery selects the highest-weighted available OpenAPI version provider. This means that adding OpenAPI 3.1 or 3.2 support modules can change generated output to the highest available OpenAPI document version. Configure this option to pin the OpenAPI document version for generated output.

      Static documents served directly by OpenApiGeneratedMode.STATIC_ONLY or by a static hit in OpenApiGeneratedMode.STATIC_FIRST are not re-rendered through this provider.

      Parameters:
      openApiVersion - version implementation for generated or merged OpenAPI documents
      Returns:
      updated builder instance
      See Also:
    • clearServices

      public BUILDER clearServices()
      Clear all services.
      Returns:
      updated builder instance
      See Also:
    • services

      public BUILDER services(List<? extends OpenApiService> services)
      OpenAPI services.
      Parameters:
      services - the OpenAPI services
      Returns:
      updated builder instance
      See Also:
    • addServices

      public BUILDER addServices(List<? extends OpenApiService> services)
      OpenAPI services.
      Parameters:
      services - the OpenAPI services
      Returns:
      updated builder instance
      See Also:
    • addService

      public BUILDER addService(OpenApiService service)
      OpenAPI services.
      Parameters:
      service - add single the OpenAPI services
      Returns:
      updated builder instance
      See Also:
    • clearManager

      public BUILDER clearManager()
      Clear existing value of manager.
      Returns:
      updated builder instance
      See Also:
    • manager

      public BUILDER manager(OpenApiManager<?> manager)
      OpenAPI manager.
      Parameters:
      manager - the OpenAPI manager
      Returns:
      updated builder instance
      See Also:
    • permitAll

      public BUILDER permitAll(boolean permitAll)
      Whether to allow anybody to access the endpoint.
      Parameters:
      permitAll - whether to permit access to metrics endpoint to anybody, defaults to true
      Returns:
      updated builder instance
      See Also:
    • clearRoles

      public BUILDER clearRoles()
      Clear all roles.
      Returns:
      updated builder instance
      See Also:
    • roles

      public BUILDER roles(List<String> roles)
      Hints for role names the user is expected to be in.
      Parameters:
      roles - list of hints
      Returns:
      updated builder instance
      See Also:
    • addRoles

      public BUILDER addRoles(List<String> roles)
      Hints for role names the user is expected to be in.
      Parameters:
      roles - list of hints
      Returns:
      updated builder instance
      See Also:
    • name

      public BUILDER name(String name)
      Name of this instance.
      Parameters:
      name - instance name, used when discovered from configuration
      Returns:
      updated builder instance
      See Also:
    • clearSockets

      public BUILDER clearSockets()
      Clear all sockets.
      Returns:
      updated builder instance
      See Also:
    • sockets

      public BUILDER sockets(Set<String> sockets)
      List of sockets to register this feature on. If empty, it would get registered on all sockets.
      Parameters:
      sockets - socket names to register on, defaults to empty (all available sockets)
      Returns:
      updated builder instance
      See Also:
    • addSockets

      public BUILDER addSockets(Set<String> sockets)
      List of sockets to register this feature on. If empty, it would get registered on all sockets.
      Parameters:
      sockets - socket names to register on, defaults to empty (all available sockets)
      Returns:
      updated builder instance
      See Also:
    • addSocket

      public BUILDER addSocket(String socket)
      List of sockets to register this feature on. If empty, it would get registered on all sockets.
      Parameters:
      socket - add single socket names to register on, defaults to empty (all available sockets)
      Returns:
      updated builder instance
      See Also:
    • openApiVersionDiscoverServices

      public BUILDER openApiVersionDiscoverServices(boolean openApiVersionDiscoverServices)
      Service discovery flag for openApiVersion(). If set to true, services will be discovered from Java service loader, or Helidon ServiceRegistry.
      Parameters:
      openApiVersionDiscoverServices - whether to enable automatic service discovery
      Returns:
      updated builder instance
      See Also:
    • servicesDiscoverServices

      public BUILDER servicesDiscoverServices(boolean servicesDiscoverServices)
      Service discovery flag for services(). If set to true, services will be discovered from Java service loader, or Helidon ServiceRegistry.
      Parameters:
      servicesDiscoverServices - whether to enable automatic service discovery
      Returns:
      updated builder instance
      See Also:
    • managerDiscoverServices

      public BUILDER managerDiscoverServices(boolean managerDiscoverServices)
      Service discovery flag for manager(). If set to true, services will be discovered from Java service loader, or Helidon ServiceRegistry.
      Parameters:
      managerDiscoverServices - whether to enable automatic service discovery
      Returns:
      updated builder instance
      See Also:
    • serviceRegistry

      public BUILDER serviceRegistry(ServiceRegistry serviceRegistry)
      Service registry used to discover providers and services. Provide an explicit registry instance to use.

      If not configured, the GlobalServiceRegistry would be used to discover services.

      Parameters:
      serviceRegistry - service registry to use
      Returns:
      updated builder instance
      See Also:
    • weight

      public double weight()
      Weight of the OpenAPI feature. This is quite low, to be registered after routing. 90.0.
      Returns:
      weight of the feature
    • isEnabled

      public boolean isEnabled()
      Sets whether the feature should be enabled.
      Returns:
      true if enabled, false otherwise
    • webContext

      public String webContext()
      Web context path for the OpenAPI endpoint.
      Returns:
      webContext to use
    • staticFile

      public Optional<String> staticFile()
      Path of the static OpenAPI document file. Default types are `json`, `yaml`, and `yml`.
      Returns:
      location of the static OpenAPI document file
    • generatedMode

      public OpenApiGeneratedMode generatedMode()
      Generated document source handling mode.
      Returns:
      generated document source handling mode
    • generatedResolveConfigExpressions

      public boolean generatedResolveConfigExpressions()
      Whether generated document sources resolve annotation string values as Helidon config expressions at runtime.

      When disabled, generated document sources use annotation string values literally. This is disabled by default because annotation text can be user-visible OpenAPI content.

      Returns:
      whether to resolve generated OpenAPI annotation string values as config expressions
    • generatedDocumentSources

      public List<String> generatedDocumentSources()
      Named generated document metadata sources to use, in the order configured.

      Sources generated from @OpenApi.Document use the annotated type's dotted canonical type name. Custom OpenApiDocumentSource services must be qualified with @Service.Named to be selected by name. Unqualified sources always participate when they support the document context and cannot be filtered with this option.

      Returns:
      generated document metadata source names
    • generatedOperationIds

      public Map<String,String> generatedOperationIds()
      Operation ids to use for generated Java methods.

      Each key is a Java method signature consisting of the fully qualified class name, #, the method name, and fully qualified parameter types separated by ,. The value is the operation id to use for that method.

      Returns:
      generated operation ids keyed by fully qualified Java method signature
    • openApiVersion

      public Optional<OpenApiVersion> openApiVersion()
      OpenAPI version implementation for rendered generated or merged documents.

      If not configured, service discovery selects the highest-weighted available OpenAPI version provider. This means that adding OpenAPI 3.1 or 3.2 support modules can change generated output to the highest available OpenAPI document version. Configure this option to pin the OpenAPI document version for generated output.

      Static documents served directly by OpenApiGeneratedMode.STATIC_ONLY or by a static hit in OpenApiGeneratedMode.STATIC_FIRST are not re-rendered through this provider.

      Returns:
      version implementation for generated or merged OpenAPI documents
    • services

      public List<OpenApiService> services()
      OpenAPI services.
      Returns:
      the OpenAPI services
    • manager

      public Optional<OpenApiManager<?>> manager()
      OpenAPI manager.
      Returns:
      the OpenAPI manager
    • permitAll

      public boolean permitAll()
      Whether to allow anybody to access the endpoint.
      Returns:
      whether to permit access to metrics endpoint to anybody, defaults to true
      See Also:
    • roles

      public List<String> roles()
      Hints for role names the user is expected to be in.
      Returns:
      list of hints
    • name

      public String name()
      Name of this instance.
      Returns:
      instance name, used when discovered from configuration
    • sockets

      public Set<String> sockets()
      List of sockets to register this feature on. If empty, it would get registered on all sockets.
      Returns:
      socket names to register on, defaults to empty (all available sockets)
    • openApiVersionDiscoverServices

      public boolean openApiVersionDiscoverServices()
      Service discovery flag for openApiVersion(). If set to true, services will be discovered from Java service loader, or Helidon ServiceRegistry.
      Returns:
      whether to enable automatic service discovery
    • servicesDiscoverServices

      public boolean servicesDiscoverServices()
      Service discovery flag for services(). If set to true, services will be discovered from Java service loader, or Helidon ServiceRegistry.
      Returns:
      whether to enable automatic service discovery
    • managerDiscoverServices

      public boolean managerDiscoverServices()
      Service discovery flag for manager(). If set to true, services will be discovered from Java service loader, or Helidon ServiceRegistry.
      Returns:
      whether to enable automatic service discovery
    • serviceRegistry

      public Optional<ServiceRegistry> serviceRegistry()
      Service registry used to discover providers and services. Provide an explicit registry instance to use.

      If not configured, the GlobalServiceRegistry would be used to discover services.

      Returns:
      service registry to use
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • preBuildPrototype

      protected void preBuildPrototype()
      Handles providers and decorators.
    • validatePrototype

      protected void validatePrototype()
      Validates required properties.
    • config

      protected Optional<Config> config()
      Configuration used to configure this instance.
      Returns:
      config instance