apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  name: inputs.logging.kubesphere.io
spec:
  group: logging.kubesphere.io
  names:
    kind: Input
    listKind: InputList
    plural: inputs
    singular: input
  scope: Namespaced
  versions:
  - name: v1alpha2
    schema:
      openAPIV3Schema:
        description: Input is the Schema for the inputs API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: InputSpec defines the desired state of Input
            properties:
              alias:
                description: A user friendly alias name for this input plugin. Used
                  in metrics for distinction of each configured input.
                type: string
              dummy:
                description: Dummy defines Dummy Input configuration.
                properties:
                  dummy:
                    description: Dummy JSON record.
                    type: string
                  rate:
                    description: Events number generated per second.
                    format: int32
                    type: integer
                  samples:
                    description: Sample events to generate.
                    format: int32
                    type: integer
                  tag:
                    description: Tag name associated to all records comming from this
                      plugin.
                    type: string
                type: object
              systemd:
                description: Systemd defines Systemd Input configuration.
                properties:
                  db:
                    description: Specify the database file to keep track of monitored
                      files and offsets.
                    type: string
                  dbSync:
                    description: 'Set a default synchronization (I/O) method. values:
                      Extra, Full, Normal, Off. This flag affects how the internal
                      SQLite engine do synchronization to disk, for more details about
                      each option please refer to this section. note: this option
                      was introduced on Fluent Bit v1.4.6.'
                    enum:
                    - Extra
                    - Full
                    - Normal
                    - "Off"
                    type: string
                  maxEntries:
                    description: When Fluent Bit starts, the Journal might have a
                      high number of logs in the queue. In order to avoid delays and
                      reduce memory usage, this option allows to specify the maximum
                      number of log entries that can be processed per round. Once
                      the limit is reached, Fluent Bit will continue processing the
                      remaining log entries once Journald performs the notification.
                    type: integer
                  maxFields:
                    description: Set a maximum number of fields (keys) allowed per
                      record.
                    type: integer
                  path:
                    description: Optional path to the Systemd journal directory, if
                      not set, the plugin will use default paths to read local-only
                      logs.
                    type: string
                  readFromTail:
                    description: Start reading new entries. Skip entries already stored
                      in Journald.
                    enum:
                    - "on"
                    - "off"
                    type: string
                  stripUnderscores:
                    description: Remove the leading underscore of the Journald field
                      (key). For example the Journald field _PID becomes the key PID.
                    enum:
                    - "on"
                    - "off"
                    type: string
                  systemdFilter:
                    description: 'Allows to perform a query over logs that contains
                      a specific Journald key/value pairs, e.g: _SYSTEMD_UNIT=UNIT.
                      The Systemd_Filter option can be specified multiple times in
                      the input section to apply multiple filters as required.'
                    items:
                      type: string
                    type: array
                  systemdFilterType:
                    description: Define the filter type when Systemd_Filter is specified
                      multiple times. Allowed values are And and Or. With And a record
                      is matched only when all of the Systemd_Filter have a match.
                      With Or a record is matched when any of the Systemd_Filter has
                      a match.
                    enum:
                    - And
                    - Or
                    type: string
                  tag:
                    description: 'The tag is used to route messages but on Systemd
                      plugin there is an extra functionality: if the tag includes
                      a star/wildcard, it will be expanded with the Systemd Unit file
                      (e.g: host.* => host.UNIT_NAME).'
                    type: string
                type: object
              tail:
                description: Tail defines Tail Input configuration.
                properties:
                  bufferChunkSize:
                    description: Set the initial buffer size to read files data. This
                      value is used too to increase buffer size. The value must be
                      according to the Unit Size specification.
                    pattern: ^\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$
                    type: string
                  bufferMaxSize:
                    description: 'Set the limit of the buffer size per monitored file.
                      When a buffer needs to be increased (e.g: very long lines),
                      this value is used to restrict how much the memory buffer can
                      grow. If reading a file exceed this limit, the file is removed
                      from the monitored file list The value must be according to
                      the Unit Size specification.'
                    pattern: ^\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$
                    type: string
                  db:
                    description: Specify the database file to keep track of monitored
                      files and offsets.
                    type: string
                  dbSync:
                    description: 'Set a default synchronization (I/O) method. Values:
                      Extra, Full, Normal, Off.'
                    enum:
                    - Extra
                    - Full
                    - Normal
                    - "Off"
                    type: string
                  disableInotifyWatcher:
                    description: DisableInotifyWatcher will disable inotify and use
                      the file stat watcher instead.
                    type: boolean
                  dockerMode:
                    description: If enabled, the plugin will recombine split Docker
                      log lines before passing them to any parser as configured above.
                      This mode cannot be used at the same time as Multiline.
                    type: boolean
                  dockerModeFlushSeconds:
                    description: Wait period time in seconds to flush queued unfinished
                      split lines.
                    format: int64
                    type: integer
                  excludePath:
                    description: 'Set one or multiple shell patterns separated by
                      commas to exclude files matching a certain criteria, e.g: exclude_path=*.gz,*.zip'
                    type: string
                  ignoredOlder:
                    description: Ignores records which are older than this time in
                      seconds. Supports m,h,d (minutes, hours, days) syntax. Default
                      behavior is to read all records from specified files. Only available
                      when a Parser is specificied and it can parse the time of a
                      record.
                    pattern: ^\d+(m|h|d)?$
                    type: string
                  key:
                    description: When a message is unstructured (no parser applied),
                      it's appended as a string under the key name log. This option
                      allows to define an alternative name for that key.
                    type: string
                  memBufLimit:
                    description: Set a limit of memory that Tail plugin can use when
                      appending data to the Engine. If the limit is reach, it will
                      be paused; when the data is flushed it resumes.
                    type: string
                  multiline:
                    description: If enabled, the plugin will try to discover multiline
                      messages and use the proper parsers to compose the outgoing
                      messages. Note that when this option is enabled the Parser option
                      is not used.
                    type: boolean
                  multilineFlushSeconds:
                    description: Wait period time in seconds to process queued multiline
                      messages
                    format: int64
                    type: integer
                  parser:
                    description: Specify the name of a parser to interpret the entry
                      as a structured message.
                    type: string
                  parserFirstline:
                    description: Name of the parser that matchs the beginning of a
                      multiline message. Note that the regular expression defined
                      in the parser must include a group name (named capture)
                    type: string
                  parserN:
                    description: Optional-extra parser to interpret and structure
                      multiline entries. This option can be used to define multiple
                      parsers.
                    items:
                      type: string
                    type: array
                  path:
                    description: Pattern specifying a specific log files or multiple
                      ones through the use of common wildcards.
                    type: string
                  pathKey:
                    description: If enabled, it appends the name of the monitored
                      file as part of the record. The value assigned becomes the key
                      in the map.
                    type: string
                  readFromHead:
                    description: For new discovered files on start (without a database
                      offset/position), read the content from the head of the file,
                      not tail.
                    type: boolean
                  refreshIntervalSeconds:
                    description: The interval of refreshing the list of watched files
                      in seconds.
                    format: int64
                    type: integer
                  rotateWaitSeconds:
                    description: Specify the number of extra time in seconds to monitor
                      a file once is rotated in case some pending data is flushed.
                    format: int64
                    type: integer
                  skipLongLines:
                    description: When a monitored file reach it buffer capacity due
                      to a very long line (Buffer_Max_Size), the default behavior
                      is to stop monitoring that file. Skip_Long_Lines alter that
                      behavior and instruct Fluent Bit to skip long lines and continue
                      processing other lines that fits into the buffer size.
                    type: boolean
                  tag:
                    description: Set a tag (with regex-extract fields) that will be
                      placed on lines read. E.g. kube.<namespace_name>.<pod_name>.<container_name>
                    type: string
                  tagRegex:
                    description: Set a regex to exctract fields from the file
                    type: string
                type: object
            type: object
        type: object
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []