Class ServerVariable

java.lang.Object
org.apache.juneau.bean.openapi3.OpenApiElement
org.apache.juneau.bean.openapi3.ServerVariable

public class ServerVariable extends OpenApiElement
TODO

The ServerVariable Object represents a server variable for server URL template substitution. Server variables can be used to define different server environments (e.g., development, staging, production) with different base URLs, ports, or other variable parts of the server URL.

OpenAPI Specification:

The ServerVariable Object is composed of the following fields:

  • enum (array of any) - An enumeration of string values to be used if the substitution options are from a limited set
  • default (string, REQUIRED) - The default value to use for substitution, which SHALL be sent if an alternate value is not supplied
  • description (string) - An optional description for the server variable. CommonMark syntax MAY be used for rich text representation
Example:

// Construct using SwaggerBuilder. ServerVariable x = serverVariable() .setDefault("api") .setEnum("api", "staging", "dev") .setDescription("Environment to use"); // Serialize using JsonSerializer. String json = Json.from(x); // Or just use toString() which does the same as above. json = x.toString();

// Output { "default": "api", "enum": ["api", "staging", "dev"], "description": "Environment to use" }

See Also:
  • Constructor Details

  • Method Details

    • copy

      public ServerVariable copy()
      Make a deep copy of this object.
      Returns:
      A deep copy of this object.
    • strict

      protected ServerVariable strict()
      Description copied from class: OpenApiElement
      Sets strict mode on this bean.
      Overrides:
      strict in class OpenApiElement
      Returns:
      This object
    • strict

      public ServerVariable strict(Object value)
      Description copied from class: OpenApiElement
      Sets strict mode on this bean.
      Overrides:
      strict in class OpenApiElement
      Parameters:
      value - The new value for this property.
      Non-boolean values will be converted to boolean using Boolean.valueOf(value.toString()).
      Can be null (interpreted as false).
      Returns:
      This object
    • getEnum

      public List<Object> getEnum()
      Bean property getter: enum.
      Returns:
      The property value, or null if it is not set.
    • setEnum

      Bean property setter: enum.
      Parameters:
      value - The new value for this property.
      Can be null to unset the property.
      Returns:
      This object
    • addEnum

      public ServerVariable addEnum(Object... values)
      Adds one or more values to the enum property.
      Parameters:
      values - The values to add to this property.
      Valid types:
      • Object
      • Collection<Object>
      • String - JSON array representation of Collection<Object>
        Example:

        _enum("['foo','bar']");

      • String - Individual values
        Example:

        _enum("foo", "bar");


      Ignored if null.
      Returns:
      This object
    • getDefault

      public String getDefault()
      Bean property getter: default.

      Declares the value of the item that the server will use if none is provided.

      Notes:
      • "default" has no meaning for required items.
      • Unlike JSON Schema this value MUST conform to the defined type for the data type.
      Returns:
      The property value, or null if it is not set.
    • setDefault

      Bean property setter: default.

      Declares the value of the item that the server will use if none is provided.

      Notes:
      • "default" has no meaning for required items.
      • Unlike JSON Schema this value MUST conform to the defined type for the data type.
      Parameters:
      value - The new value for this property.
      Can be null to unset the property.
      Returns:
      This object
    • getDescription

      Bean property getter: description.

      Declares the value of the item that the server will use if none is provided.

      Notes:
      • "description" has no meaning for required items.
      • Unlike JSON Schema this value MUST conform to the defined type for the data type.
      Returns:
      The property value, or null if it is not set.
    • setDescription

      Bean property setter: description.

      Declares the value of the item that the server will use if none is provided.

      Notes:
      • "description" has no meaning for required items.
      • Unlike JSON Schema this value MUST conform to the defined type for the data type.
      Parameters:
      value - The new value for this property.
      Can be null to unset the property.
      Returns:
      This object
    • get

      public <T> T get(String property, Class<T> type)
      Description copied from class: OpenApiElement
      Generic property getter.

      Can be used to retrieve non-standard Swagger fields such as "$ref".

      Overrides:
      get in class OpenApiElement
      Type Parameters:
      T - The datatype to cast the value to.
      Parameters:
      property - The property name to retrieve.
      type - The datatype to cast the value to.
      Returns:
      The property value, or null if the property does not exist or is not set.
    • set

      public ServerVariable set(String property, Object value)
      Description copied from class: OpenApiElement
      Generic property setter.

      Can be used to set non-standard Swagger fields such as "$ref".

      Overrides:
      set in class OpenApiElement
      Parameters:
      property - The property name to set. Must not be null.
      value - The new value for the property.
      Returns:
      This object
    • keySet

      public Set<String> keySet()
      Description copied from class: OpenApiElement
      Returns all the keys on this element.
      Overrides:
      keySet in class OpenApiElement
      Returns:
      All the keys on this element.
      Never null.