{
  "description": "ClusterInput is the Schema for the inputs API",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore 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 ClusterInput",
      "properties": {
        "alias": {
          "description": "A user friendly alias name for this input plugin.\nUsed in metrics for distinction of each configured input.",
          "type": "string"
        },
        "collectd": {
          "description": "Collectd defines the Collectd input plugin configuration",
          "properties": {
            "listen": {
              "description": "Set the address to listen to, default: 0.0.0.0",
              "type": "string"
            },
            "port": {
              "description": "Set the port to listen to, default: 25826",
              "format": "int32",
              "maximum": 65535,
              "minimum": 1,
              "type": "integer"
            },
            "typesDB": {
              "description": "Set the data specification file,default: /usr/share/collectd/types.db",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "customPlugin": {
          "description": "CustomPlugin defines Custom Input configuration.",
          "properties": {
            "config": {
              "description": "Config holds any unsupported plugins classic configurations,\nif ConfigFileFormat is set to yaml, this filed will be ignored",
              "type": "string"
            },
            "yamlConfig": {
              "description": "YamlConfig holds the unsupported plugins yaml configurations, it only works when the ConfigFileFormat is yaml",
              "type": "object",
              "x-kubernetes-preserve-unknown-fields": true
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "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",
          "additionalProperties": false
        },
        "execWasi": {
          "description": "ExecWasi defines the exec wasi input plugin configuration",
          "properties": {
            "accessiblePaths": {
              "description": "Specify the whitelist of paths to be able to access paths from WASM programs.",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "bufSize": {
              "description": "Size of the buffer (check unit sizes for allowed values)",
              "pattern": "^\\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$",
              "type": "string"
            },
            "intervalNSec": {
              "description": "Polling interval (nanoseconds).",
              "format": "int64",
              "type": "integer"
            },
            "intervalSec": {
              "description": "Polling interval (seconds).",
              "format": "int32",
              "type": "integer"
            },
            "parser": {
              "description": "Specify the name of a parser to interpret the entry as a structured message.",
              "type": "string"
            },
            "threaded": {
              "description": "Indicates whether to run this input in its own thread. Default: false.",
              "type": "boolean"
            },
            "wasiPath": {
              "description": "The place of a WASM program file.",
              "type": "string"
            },
            "wasmHeapSize": {
              "pattern": "^\\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$",
              "type": "string"
            },
            "wasmStackSize": {
              "description": "Size of the stack size of Wasm execution. Review unit sizes for allowed values.",
              "pattern": "^\\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "fluentBitMetrics": {
          "description": "FluentBitMetrics defines Fluent Bit Metrics Input configuration.",
          "properties": {
            "scrapeInterval": {
              "description": "The rate at which metrics are collected from the host operating system. default is 2 seconds.",
              "type": "string"
            },
            "scrapeOnStart": {
              "description": "Scrape metrics upon start, useful to avoid waiting for 'scrape_interval' for the first round of metrics.",
              "type": "boolean"
            },
            "tag": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "forward": {
          "description": "Forward defines forward  input plugin configuration",
          "properties": {
            "bufferMaxSize": {
              "description": "Specify maximum buffer memory size used to recieve a forward message.\nThe 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"
            },
            "bufferchunkSize": {
              "description": "Set the initial buffer size to store incoming data.\nThis value is used too to increase buffer size as required.\nThe 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"
            },
            "listen": {
              "description": "Listener network interface.",
              "type": "string"
            },
            "port": {
              "description": "Port for forward plugin instance.",
              "format": "int32",
              "maximum": 65535,
              "minimum": 1,
              "type": "integer"
            },
            "tag": {
              "description": "in_forward uses the tag value for incoming logs. If not set it uses tag from incoming log.",
              "type": "string"
            },
            "tagPrefix": {
              "description": "Adds the prefix to incoming event's tag",
              "type": "string"
            },
            "threaded": {
              "description": "Threaded mechanism allows input plugin to run in a separate thread which helps to desaturate the main pipeline.",
              "type": "string"
            },
            "unixPath": {
              "description": "Specify the path to unix socket to recieve a forward message. If set, Listen and port are ignnored.",
              "type": "string"
            },
            "unixPerm": {
              "description": "Set the permission of unix socket file.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "http": {
          "description": "HTTP defines the HTTP input plugin configuration",
          "properties": {
            "bufferChunkSize": {
              "description": "This sets the chunk size for incoming incoming JSON messages.\nThese chunks are then stored/managed in the space available by buffer_max_size,default 512K.",
              "pattern": "^\\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$",
              "type": "string"
            },
            "bufferMaxSize": {
              "description": "Specify the maximum buffer size in KB to receive a JSON message,default 4M.",
              "pattern": "^\\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$",
              "type": "string"
            },
            "listen": {
              "description": "The address to listen on,default 0.0.0.0",
              "type": "string"
            },
            "port": {
              "description": "The port for Fluent Bit to listen on,default 9880",
              "format": "int32",
              "maximum": 65535,
              "minimum": 1,
              "type": "integer"
            },
            "successfulHeader": {
              "description": "Add an HTTP header key/value pair on success. Multiple headers can be set. Example: X-Custom custom-answer.",
              "type": "string"
            },
            "successfulResponseCode": {
              "description": "It allows to set successful response code. 200, 201 and 204 are supported,default 201.",
              "format": "int32",
              "type": "integer"
            },
            "tagKey": {
              "description": "Specify the key name to overwrite a tag. If set, the tag will be overwritten by a value of the key.",
              "type": "string"
            },
            "tls": {
              "description": "Fluent Bit provides integrated support for Transport Layer Security (TLS) and it predecessor Secure Sockets Layer (SSL) respectively.",
              "properties": {
                "caFile": {
                  "description": "Absolute path to CA certificate file",
                  "type": "string"
                },
                "caPath": {
                  "description": "Absolute path to scan for certificate files",
                  "type": "string"
                },
                "crtFile": {
                  "description": "Absolute path to Certificate file",
                  "type": "string"
                },
                "debug": {
                  "description": "Set TLS debug verbosity level.\nIt accept the following values: 0 (No debug), 1 (Error), 2 (State change), 3 (Informational) and 4 Verbose",
                  "enum": [
                    0,
                    1,
                    2,
                    3,
                    4
                  ],
                  "format": "int32",
                  "type": "integer"
                },
                "keyFile": {
                  "description": "Absolute path to private Key file",
                  "type": "string"
                },
                "keyPassword": {
                  "description": "Optional password for tls.key_file file",
                  "properties": {
                    "valueFrom": {
                      "description": "ValueSource defines how to find a value's key.",
                      "properties": {
                        "secretKeyRef": {
                          "description": "Selects a key of a secret in the pod's namespace",
                          "properties": {
                            "key": {
                              "description": "The key of the secret to select from.  Must be a valid secret key.",
                              "type": "string"
                            },
                            "name": {
                              "default": "",
                              "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nTODO: Add other useful fields. apiVersion, kind, uid?\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.",
                              "type": "string"
                            },
                            "optional": {
                              "description": "Specify whether the Secret or its key must be defined",
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "key"
                          ],
                          "type": "object",
                          "x-kubernetes-map-type": "atomic",
                          "additionalProperties": false
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "verify": {
                  "description": "Force certificate validation",
                  "type": "boolean"
                },
                "vhost": {
                  "description": "Hostname to be used for TLS SNI extension",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "kubernetesEvents": {
          "description": "KubernetesEvents defines the KubernetesEvents input plugin configuration",
          "properties": {
            "db": {
              "description": "Set a database file to keep track of recorded Kubernetes events",
              "type": "string"
            },
            "dbSync": {
              "description": "Set a database sync method. values: extra, full, normal and off",
              "type": "string"
            },
            "intervalNsec": {
              "description": "Set the polling interval for each channel (sub seconds: nanoseconds).",
              "format": "int64",
              "type": "integer"
            },
            "intervalSec": {
              "description": "Set the polling interval for each channel.",
              "format": "int32",
              "type": "integer"
            },
            "kubeCAFile": {
              "description": "CA certificate file",
              "type": "string"
            },
            "kubeCAPath": {
              "description": "Absolute path to scan for certificate files",
              "type": "string"
            },
            "kubeNamespace": {
              "description": "Kubernetes namespace to query events from. Gets events from all namespaces by default",
              "type": "string"
            },
            "kubeRequestLimit": {
              "description": "kubernetes limit parameter for events query, no limit applied when set to 0.",
              "format": "int32",
              "type": "integer"
            },
            "kubeRetentionTime": {
              "description": "Kubernetes retention time for events.",
              "type": "string"
            },
            "kubeTokenFile": {
              "description": "Token file",
              "type": "string"
            },
            "kubeTokenTTL": {
              "description": "configurable 'time to live' for the K8s token. By default, it is set to 600 seconds.\nAfter this time, the token is reloaded from Kube_Token_File or the Kube_Token_Command.",
              "type": "string"
            },
            "kubeURL": {
              "description": "API Server end-point",
              "type": "string"
            },
            "tag": {
              "description": "Tag name associated to all records comming from this plugin.",
              "type": "string"
            },
            "tlsDebug": {
              "description": "Debug level between 0 (nothing) and 4 (every detail).",
              "format": "int32",
              "type": "integer"
            },
            "tlsVerify": {
              "description": "When enabled, turns on certificate validation when connecting to the Kubernetes API server.",
              "type": "boolean"
            },
            "tlsVhost": {
              "description": "Set optional TLS virtual host.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "logLevel": {
          "enum": [
            "off",
            "error",
            "warning",
            "info",
            "debug",
            "trace"
          ],
          "type": "string"
        },
        "mqtt": {
          "description": "MQTT defines the MQTT input plugin configuration",
          "properties": {
            "listen": {
              "description": "Listener network interface, default: 0.0.0.0",
              "type": "string"
            },
            "port": {
              "description": "TCP port where listening for connections, default: 1883",
              "format": "int32",
              "maximum": 65535,
              "minimum": 1,
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "nginx": {
          "description": "Nginx defines the Nginx input plugin configuration",
          "properties": {
            "host": {
              "description": "Name of the target host or IP address to check, default: localhost",
              "type": "string"
            },
            "nginxPlus": {
              "description": "Turn on NGINX plus mode,default: true",
              "type": "boolean"
            },
            "port": {
              "description": "Port of the target nginx service to connect to, default: 80",
              "format": "int32",
              "maximum": 65535,
              "minimum": 1,
              "type": "integer"
            },
            "statusURL": {
              "description": "The URL of the Stub Status Handler,default: /status",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "nodeExporterMetrics": {
          "description": "NodeExporterMetrics defines Node Exporter Metrics Input configuration.",
          "properties": {
            "path": {
              "properties": {
                "procfs": {
                  "description": "The mount point used to collect process information and metrics.",
                  "type": "string"
                },
                "sysfs": {
                  "description": "The path in the filesystem used to collect system metrics.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "scrapeInterval": {
              "description": "The rate at which metrics are collected from the host operating system, default is 5 seconds.",
              "type": "string"
            },
            "tag": {
              "description": "Tag name associated to all records comming from this plugin.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "openTelemetry": {
          "description": "OpenTelemetry defines the OpenTelemetry input plugin configuration",
          "properties": {
            "bufferChunkSize": {
              "description": "This sets the chunk size for incoming incoming JSON messages. These chunks are then stored/managed in the space available by buffer_max_size(default 512K).",
              "pattern": "^\\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$",
              "type": "string"
            },
            "bufferMaxSize": {
              "description": "Specify the maximum buffer size in KB to receive a JSON message(default 4M).",
              "pattern": "^\\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$",
              "type": "string"
            },
            "listen": {
              "description": "The address to listen on,default 0.0.0.0",
              "type": "string"
            },
            "port": {
              "description": "The port for Fluent Bit to listen on.default 4318.",
              "format": "int32",
              "maximum": 65535,
              "minimum": 1,
              "type": "integer"
            },
            "rawTraces": {
              "description": "Route trace data as a log message(default false).",
              "type": "boolean"
            },
            "successfulResponseCode": {
              "description": "It allows to set successful response code. 200, 201 and 204 are supported(default 201).",
              "format": "int32",
              "type": "integer"
            },
            "tag": {
              "description": "opentelemetry uses the tag value for incoming metrics.",
              "type": "string"
            },
            "tagFromURI": {
              "description": "If true, tag will be created from uri. e.g. v1_metrics from /v1/metrics",
              "type": "boolean"
            },
            "tagKey": {
              "description": "Specify the key name to overwrite a tag. If set, the tag will be overwritten by a value of the key.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "processors": {
          "description": "Processors defines the processors configuration",
          "type": "object",
          "x-kubernetes-preserve-unknown-fields": true
        },
        "prometheusScrapeMetrics": {
          "description": "PrometheusScrapeMetrics  defines Prometheus Scrape Metrics Input configuration.",
          "properties": {
            "host": {
              "description": "The host of the prometheus metric endpoint that you want to scrape",
              "type": "string"
            },
            "metricsPath": {
              "description": "The metrics URI endpoint, that must start with a forward slash, deflaut: /metrics",
              "type": "string"
            },
            "port": {
              "description": "The port of the promethes metric endpoint that you want to scrape",
              "format": "int32",
              "maximum": 65535,
              "minimum": 1,
              "type": "integer"
            },
            "scrapeInterval": {
              "description": "The interval to scrape metrics, default: 10s",
              "type": "string"
            },
            "tag": {
              "description": "Tag name associated to all records comming from this plugin",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "statsd": {
          "description": "StatsD defines the StatsD input plugin configuration",
          "properties": {
            "listen": {
              "description": "Listener network interface, default: 0.0.0.0",
              "type": "string"
            },
            "port": {
              "description": "UDP port where listening for connections, default: 8125",
              "format": "int32",
              "maximum": 65535,
              "minimum": 1,
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "syslog": {
          "description": "Syslog defines the Syslog input plugin configuration",
          "properties": {
            "bufferChunkSize": {
              "description": "By default the buffer to store the incoming Syslog messages, do not allocate the maximum memory allowed, instead it allocate memory when is required.\nThe rounds of allocations are set by Buffer_Chunk_Size. If not set, Buffer_Chunk_Size is equal to 32000 bytes (32KB).",
              "pattern": "^\\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$",
              "type": "string"
            },
            "bufferMaxSize": {
              "description": "Specify the maximum buffer size to receive a Syslog message. If not set, the default size will be the value of Buffer_Chunk_Size.",
              "pattern": "^\\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$",
              "type": "string"
            },
            "listen": {
              "description": "If Mode is set to tcp or udp, specify the network interface to bind, default: 0.0.0.0",
              "type": "string"
            },
            "mode": {
              "description": "Defines transport protocol mode: unix_udp (UDP over Unix socket), unix_tcp (TCP over Unix socket), tcp or udp",
              "enum": [
                "unix_udp",
                "unix_tcp",
                "tcp",
                "udp"
              ],
              "type": "string"
            },
            "parser": {
              "description": "Specify an alternative parser for the message. If Mode is set to tcp or udp then the default parser is syslog-rfc5424 otherwise syslog-rfc3164-local is used.\nIf your syslog messages have fractional seconds set this Parser value to syslog-rfc5424 instead.",
              "type": "string"
            },
            "path": {
              "description": "If Mode is set to unix_tcp or unix_udp, set the absolute path to the Unix socket file.",
              "type": "string"
            },
            "port": {
              "description": "If Mode is set to tcp or udp, specify the TCP port to listen for incoming connections.",
              "format": "int32",
              "maximum": 65535,
              "minimum": 1,
              "type": "integer"
            },
            "receiveBufferSize": {
              "description": "Specify the maximum socket receive buffer size. If not set, the default value is OS-dependant,\nbut generally too low to accept thousands of syslog messages per second without loss on udp or unix_udp sockets. Note that on Linux the value is capped by sysctl net.core.rmem_max.",
              "pattern": "^\\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$",
              "type": "string"
            },
            "sourceAddressKey": {
              "description": "Specify the key where the source address will be injected.",
              "type": "string"
            },
            "unixPerm": {
              "description": "If Mode is set to unix_tcp or unix_udp, set the permission of the Unix socket file, default: 0644",
              "format": "int32",
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "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.\nThis flag affects how the internal SQLite engine do synchronization to disk,\nfor more details about each option please refer to this section.\nnote: 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.\nIn 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.\nOnce 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,\nif not set, the plugin will use default paths to read local-only logs.",
              "type": "string"
            },
            "pauseOnChunksOverlimit": {
              "description": "Specifies if the input plugin should be paused (stop ingesting new data) when the storage.max_chunks_up value is reached.",
              "enum": [
                "on",
                "off"
              ],
              "type": "string"
            },
            "readFromTail": {
              "description": "Start reading new entries. Skip entries already stored in Journald.",
              "enum": [
                "on",
                "off"
              ],
              "type": "string"
            },
            "storageType": {
              "description": "Specify the buffering mechanism to use. It can be memory or filesystem",
              "enum": [
                "filesystem",
                "memory"
              ],
              "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.\nThe 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.\nWith And a record is matched only when all of the Systemd_Filter have a match.\nWith 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:\nif 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",
          "additionalProperties": false
        },
        "tail": {
          "description": "Tail defines Tail Input configuration.",
          "properties": {
            "bufferChunkSize": {
              "description": "Set the initial buffer size to read files data.\nThis value is used too to increase buffer size.\nThe 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.\nWhen a buffer needs to be increased (e.g: very long lines),\nthis value is used to restrict how much the memory buffer can grow.\nIf reading a file exceed this limit, the file is removed from the monitored file list\nThe 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.\nThis 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"
            },
            "dockerModeParser": {
              "description": "Specify an optional parser for the first line of the docker multiline mode. The parser name to be specified must be registered in the parsers.conf file.",
              "type": "string"
            },
            "excludePath": {
              "description": "Set one or multiple shell patterns separated by commas to exclude files matching a certain criteria,\ne.g: exclude_path=*.gz,*.zip",
              "type": "string"
            },
            "ignoredOlder": {
              "description": "Ignores records which are older than this time in seconds.\nSupports m,h,d (minutes, hours, days) syntax.\nDefault behavior is to read all records from specified files.\nOnly 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.\nThis 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.\nIf 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\nand use the proper parsers to compose the outgoing messages.\nNote 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"
            },
            "multilineParser": {
              "description": "This will help to reassembly multiline messages originally split by Docker or CRI\nSpecify one or Multiline Parser definition to apply to the content.",
              "type": "string"
            },
            "offsetKey": {
              "description": "If enabled, Fluent Bit appends the offset of the current monitored file as part of the record.\nThe value assigned becomes the key in the map",
              "type": "string"
            },
            "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.\nNote 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.\nThis 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.\nThe value assigned becomes the key in the map.",
              "type": "string"
            },
            "pauseOnChunksOverlimit": {
              "description": "Specifies if the input plugin should be paused (stop ingesting new data) when the storage.max_chunks_up value is reached.",
              "enum": [
                "on",
                "off"
              ],
              "type": "string"
            },
            "readFromHead": {
              "description": "For new discovered files on start (without a database offset/position),\nread 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"
            },
            "skipEmptyLines": {
              "description": "Skips empty lines in the log file from any further processing or output.",
              "type": "boolean"
            },
            "skipLongLines": {
              "description": "When a monitored file reach it buffer capacity due to a very long line (Buffer_Max_Size),\nthe default behavior is to stop monitoring that file.\nSkip_Long_Lines alter that behavior and instruct Fluent Bit to skip long lines\nand continue processing other lines that fits into the buffer size.",
              "type": "boolean"
            },
            "storageType": {
              "description": "Specify the buffering mechanism to use. It can be memory or filesystem",
              "enum": [
                "filesystem",
                "memory"
              ],
              "type": "string"
            },
            "tag": {
              "description": "Set a tag (with regex-extract fields) that will be placed on lines read.\nE.g. kube.<namespace_name>.<pod_name>.<container_name>",
              "type": "string"
            },
            "tagRegex": {
              "description": "Set a regex to exctract fields from the file",
              "type": "string"
            },
            "threaded": {
              "description": "Threaded mechanism allows input plugin to run in a separate thread which helps to desaturate the main pipeline.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "tcp": {
          "description": "TCP defines the TCP input plugin configuration",
          "properties": {
            "bufferSize": {
              "description": "Specify the maximum buffer size in KB to receive a JSON message. If not set, the default size will be the value of Chunk_Size.",
              "pattern": "^\\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$",
              "type": "string"
            },
            "chunkSize": {
              "description": "By default the buffer to store the incoming JSON messages, do not allocate the maximum memory allowed, instead it allocate memory when is required.\nThe rounds of allocations are set by Chunk_Size in KB. If not set, Chunk_Size is equal to 32 (32KB).",
              "pattern": "^\\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$",
              "type": "string"
            },
            "format": {
              "description": "Specify the expected payload format. It support the options json and none.\nWhen using json, it expects JSON maps, when is set to none, it will split every record using the defined Separator (option below).",
              "type": "string"
            },
            "listen": {
              "description": "Listener network interface,default 0.0.0.0",
              "type": "string"
            },
            "port": {
              "description": "TCP port where listening for connections,default 5170",
              "format": "int32",
              "maximum": 65535,
              "minimum": 1,
              "type": "integer"
            },
            "separator": {
              "description": "When the expected Format is set to none, Fluent Bit needs a separator string to split the records. By default it uses the breakline character (LF or 0x10).",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "udp": {
          "description": "UDP defines the UDP input plugin configuration",
          "properties": {
            "bufferSize": {
              "description": "BufferSize Specify the maximum buffer size in KB to receive a JSON message.\nIf not set, the default size will be the value of Chunk_Size.",
              "pattern": "^\\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$",
              "type": "string"
            },
            "chunkSize": {
              "description": "By default the buffer to store the incoming JSON messages, do not allocate the maximum memory allowed,\ninstead it allocate memory when is required.\nThe rounds of allocations are set by Chunk_Size in KB. If not set, Chunk_Size is equal to 32 (32KB).",
              "pattern": "^\\d+(k|K|KB|kb|m|M|MB|mb|g|G|GB|gb)?$",
              "type": "string"
            },
            "format": {
              "description": "Format Specify the expected payload format. It support the options json and none.\nWhen using json, it expects JSON maps, when is set to none,\nit will split every record using the defined Separator (option below).",
              "type": "string"
            },
            "listen": {
              "description": "Listen Listener network interface, default: 0.0.0.0",
              "type": "string"
            },
            "port": {
              "description": "Port Specify the UDP port where listening for connections, default: 5170",
              "format": "int32",
              "maximum": 65535,
              "minimum": 1,
              "type": "integer"
            },
            "separator": {
              "description": "Separator When the expected Format is set to none, Fluent Bit needs a separator string to split the records. By default it uses the breakline character (LF or 0x10).",
              "type": "string"
            },
            "sourceAddressKey": {
              "description": "SourceAddressKey Specify the key where the source address will be injected.",
              "type": "string"
            },
            "threaded": {
              "description": "Threaded mechanism allows input plugin to run in a separate thread which helps to desaturate the main pipeline.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
