Class SystemIndexDescriptor

java.lang.Object
org.elasticsearch.indices.SystemIndexDescriptor
All Implemented Interfaces:
Comparable<SystemIndexDescriptor>, IndexPatternMatcher

public class SystemIndexDescriptor extends Object implements IndexPatternMatcher, Comparable<SystemIndexDescriptor>
A system index descriptor describes one or more system indices. It can match a number of indices using a pattern. For system indices that are managed externally to Elasticsearch, this is enough. For system indices that are managed internally to Elasticsearch, a descriptor can also include information for creating the system index, upgrading its mappings, and creating an alias.
  • Constructor Details

    • SystemIndexDescriptor

      public SystemIndexDescriptor(String indexPattern, String description)
      Creates a descriptor for system indices matching the supplied pattern. These indices will not be managed by Elasticsearch internally.
      Parameters:
      indexPattern - The pattern of index names that this descriptor will be used for. Must start with a '.' character.
      description - The name of the plugin responsible for this system index.
    • SystemIndexDescriptor

      public SystemIndexDescriptor(String indexPattern, String description, SystemIndexDescriptor.Type type, List<String> allowedElasticProductOrigins)
      Creates a descriptor for system indices matching the supplied pattern. These indices will not be managed by Elasticsearch internally.
      Parameters:
      indexPattern - The pattern of index names that this descriptor will be used for. Must start with a '.' character.
      description - The name of the plugin responsible for this system index.
      type - The SystemIndexDescriptor.Type of system index
      allowedElasticProductOrigins - A list of allowed origin values that should be allowed access in the case of external system indices
  • Method Details

    • getIndexPattern

      public String getIndexPattern()
      Specified by:
      getIndexPattern in interface IndexPatternMatcher
      Returns:
      The pattern of index names that this descriptor will be used for.
    • getPrimaryIndex

      public String getPrimaryIndex()
      Returns:
      The concrete name of an index being managed internally to Elasticsearch. Will be null for indices managed externally to Elasticsearch.
    • matchesIndexPattern

      public boolean matchesIndexPattern(String index)
      Checks whether an index name matches the system index name pattern for this descriptor.
      Parameters:
      index - The index name to be checked against the index pattern given at construction time.
      Returns:
      True if the name matches the pattern, false otherwise.
    • getMatchingIndices

      public List<String> getMatchingIndices(Metadata metadata)
      Retrieves a list of all indices which match this descriptor's pattern. This cannot be done via IndexNameExpressionResolver because that class can only handle simple wildcard expressions, but system index name patterns may use full Lucene regular expression syntax,
      Specified by:
      getMatchingIndices in interface IndexPatternMatcher
      Parameters:
      metadata - The current metadata to get the list of matching indices from
      Returns:
      A list of index names that match this descriptor
    • getDescription

      public String getDescription()
      Returns:
      A short description of the purpose of this system index.
    • toString

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

      public String getMappings()
    • getSettings

      public Settings getSettings()
    • getAliasName

      public String getAliasName()
    • getIndexFormat

      public int getIndexFormat()
    • getVersionMetaKey

      public String getVersionMetaKey()
    • getMinimumNodeVersion

      public Version getMinimumNodeVersion()
    • isAutomaticallyManaged

      public boolean isAutomaticallyManaged()
    • getOrigin

      public String getOrigin()
    • getIndexType

      public String getIndexType()
    • hasDynamicMappings

      public boolean hasDynamicMappings()
    • isExternal

      public boolean isExternal()
    • isInternal

      public boolean isInternal()
    • getAllowedElasticProductOrigins

      public List<String> getAllowedElasticProductOrigins()
    • isNetNew

      public boolean isNetNew()
    • getMappingVersion

      public Version getMappingVersion()
    • getMinimumNodeVersionMessage

      public String getMinimumNodeVersionMessage(String cause)
      Gets a standardized message when the node contains a data or master node whose version is less than that of the minimum supported version of this descriptor and its prior descriptors.
      Parameters:
      cause - the action being attempted that triggered the check. Used in the error message.
      Returns:
      the standardized error message
    • getDescriptorCompatibleWith

      public SystemIndexDescriptor getDescriptorCompatibleWith(Version version)
      Finds the descriptor that can be used within this cluster, by comparing the supplied minimum node version to this descriptor's minimum version and the prior descriptors minimum version.
      Parameters:
      version - the lower node version in the cluster
      Returns:
      null if the lowest node version is lower than the minimum version in this descriptor, or the appropriate descriptor if the supplied version is acceptable.
    • getThreadPoolNames

      public ExecutorNames getThreadPoolNames()
      Returns:
      The names of thread pools that should be used for operations on this system index.
    • builder

      public static SystemIndexDescriptor.Builder builder()
    • compareTo

      public int compareTo(SystemIndexDescriptor other)
      Specified by:
      compareTo in interface Comparable<SystemIndexDescriptor>