{
  "description": "ClusterOutput is the Schema for the clusteroutputs 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": "ClusterOutputSpec defines the desired state of ClusterOutput",
      "properties": {
        "outputs": {
          "items": {
            "description": "Output defines all available output plugins and their parameters",
            "properties": {
              "buffer": {
                "description": "buffer section",
                "properties": {
                  "calcNumRecords": {
                    "description": "Calculates the number of records, chunk size, during chunk resume.",
                    "type": "string"
                  },
                  "chunkFormat": {
                    "description": "ChunkFormat specifies the chunk format for calc_num_records.",
                    "enum": [
                      "msgpack",
                      "text",
                      "auto"
                    ],
                    "type": "string"
                  },
                  "chunkLimitRecords": {
                    "description": "The max number of events that each chunks can store in it.",
                    "pattern": "^\\d+(KB|MB|GB|TB)$",
                    "type": "string"
                  },
                  "chunkLimitSize": {
                    "description": "Buffer parameters\nThe max size of each chunks: events will be written into chunks until the size of chunks become this size\nDefault: 8MB (memory) / 256MB (file)",
                    "pattern": "^\\d+(KB|MB|GB|TB)$",
                    "type": "string"
                  },
                  "compress": {
                    "description": "Fluentd will decompress these compressed chunks automatically before passing them to the output plugin\nIf gzip is set, Fluentd compresses data records before writing to buffer chunks.\nDefault:text.",
                    "enum": [
                      "text",
                      "gzip"
                    ],
                    "type": "string"
                  },
                  "delayedCommitTimeout": {
                    "description": "The timeout (seconds) until output plugin decides if the async write operation has failed. Default is 60s",
                    "pattern": "^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$",
                    "type": "string"
                  },
                  "disableChunkBackup": {
                    "description": "Instead of storing unrecoverable chunks in the backup directory, just discard them. This option is new in Fluentd v1.2.6.",
                    "type": "boolean"
                  },
                  "flushAtShutdown": {
                    "description": "Flush parameters\nThis specifies whether to flush/write all buffer chunks on shutdown or not.",
                    "type": "boolean"
                  },
                  "flushInterval": {
                    "description": "FlushInterval defines the flush interval",
                    "pattern": "^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$",
                    "type": "string"
                  },
                  "flushMode": {
                    "description": "FlushMode defines the flush mode:\nlazy: flushes/writes chunks once per timekey\ninterval: flushes/writes chunks per specified time via flush_interval\nimmediate: flushes/writes chunks immediately after events are appended into chunks\ndefault: equals to lazy if time is specified as chunk key, interval otherwise",
                    "enum": [
                      "default",
                      "lazy",
                      "interval",
                      "immediate"
                    ],
                    "type": "string"
                  },
                  "flushThreadCount": {
                    "description": "The number of threads to flush/write chunks in parallel",
                    "pattern": "^\\d+$",
                    "type": "string"
                  },
                  "id": {
                    "description": "The @id parameter specifies a unique name for the configuration.",
                    "type": "string"
                  },
                  "localtime": {
                    "description": "If true, uses local time.",
                    "type": "boolean"
                  },
                  "logLevel": {
                    "description": "The @log_level parameter specifies the plugin-specific logging level",
                    "type": "string"
                  },
                  "overflowAction": {
                    "description": "OverflowAtction defines the output plugin behave when its buffer queue is full.\nDefault: throw_exception",
                    "type": "string"
                  },
                  "path": {
                    "description": "The path where buffer chunks are stored. This field would make no effect in memory buffer plugin.",
                    "type": "string"
                  },
                  "pathSuffix": {
                    "description": "Changes the suffix of the buffer file.",
                    "type": "string"
                  },
                  "queueLimitLength": {
                    "description": "The queue length limitation of this buffer plugin instance. Default: 0.95",
                    "pattern": "^\\d+.?\\d+$",
                    "type": "string"
                  },
                  "queuedChunksLimitSize": {
                    "description": "Limit the number of queued chunks. Default: 1\nIf a smaller flush_interval is set, e.g. 1s,\nthere are lots of small queued chunks in the buffer.\nWith file buffer, it may consume a lot of fd resources when output destination has a problem.\nThis parameter mitigates such situations.",
                    "minimum": 1,
                    "type": "integer"
                  },
                  "retryExponentialBackoffBase": {
                    "description": "The base number of exponential backoff for retries.",
                    "pattern": "^\\d+(\\.[0-9]{0,2})?$",
                    "type": "string"
                  },
                  "retryForever": {
                    "description": "If true, plugin will ignore retry_timeout and retry_max_times options and retry flushing forever.",
                    "type": "boolean"
                  },
                  "retryMaxInterval": {
                    "description": "The maximum interval (seconds) for exponential backoff between retries while failing",
                    "pattern": "^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$",
                    "type": "string"
                  },
                  "retryMaxTimes": {
                    "description": "The maximum number of times to retry to flush the failed chunks. Default: none",
                    "type": "integer"
                  },
                  "retryRandomize": {
                    "description": "If true, the output plugin will retry after randomized interval not to do burst retries",
                    "type": "boolean"
                  },
                  "retrySecondaryThreshold": {
                    "description": "The ratio of retry_timeout to switch to use the secondary while failing.",
                    "pattern": "^\\d+.?\\d+$",
                    "type": "string"
                  },
                  "retryTimeout": {
                    "description": "Retry parameters\nThe maximum time (seconds) to retry to flush again the failed chunks, until the plugin discards the buffer chunks",
                    "pattern": "^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$",
                    "type": "string"
                  },
                  "retryType": {
                    "description": "Output plugin will retry periodically with fixed intervals.",
                    "type": "string"
                  },
                  "retryWait": {
                    "description": "Wait in seconds before the next retry to flush or constant factor of exponential backoff",
                    "pattern": "^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$",
                    "type": "string"
                  },
                  "tag": {
                    "description": "The output plugins group events into chunks.\nChunk keys, specified as the argument of <buffer> section, control how to group events into chunks.\nIf tag is empty, which means blank Chunk Keys.\nTag also supports Nested Field, combination of Chunk Keys, placeholders, etc.\nSee https://docs.fluentd.org/configuration/buffer-section.",
                    "type": "string"
                  },
                  "timeFormat": {
                    "description": "Process value according to the specified format. This is available only when time_type is string",
                    "type": "string"
                  },
                  "timeFormatFallbacks": {
                    "description": "Uses the specified time format as a fallback in the specified order. You can parse undetermined time format by using time_format_fallbacks. This options is enabled when time_type is mixed.",
                    "type": "string"
                  },
                  "timeType": {
                    "description": "parses/formats value according to this type, default is string",
                    "enum": [
                      "float",
                      "unixtime",
                      "string",
                      "mixed"
                    ],
                    "type": "string"
                  },
                  "timekey": {
                    "description": "Output plugin will flush chunks per specified time (enabled when time is specified in chunk keys)",
                    "type": "string"
                  },
                  "timekeyWait": {
                    "description": "Output plugin will write chunks after timekey_wait seconds later after timekey expiration",
                    "type": "string"
                  },
                  "timezone": {
                    "description": "Uses the specified timezone.",
                    "type": "string"
                  },
                  "totalLimitSize": {
                    "description": "The size limitation of this buffer plugin instance\nDefault: 512MB (memory) / 64GB (file)",
                    "pattern": "^\\d+(KB|MB|GB|TB)$",
                    "type": "string"
                  },
                  "type": {
                    "description": "The @type parameter specifies the type of the plugin.",
                    "enum": [
                      "file",
                      "memory",
                      "file_single"
                    ],
                    "type": "string"
                  },
                  "utc": {
                    "description": "If true, uses UTC.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "cloudWatch": {
                "description": "out_cloudwatch plugin",
                "properties": {
                  "autoCreateStream": {
                    "type": "boolean"
                  },
                  "awsEcsAuthentication": {
                    "type": "boolean"
                  },
                  "awsKeyId": {
                    "description": "Secret defines the key of a value.",
                    "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
                  },
                  "awsSecKey": {
                    "description": "Secret defines the key of a value.",
                    "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
                  },
                  "awsStsDurationSeconds": {
                    "type": "string"
                  },
                  "awsStsEndpointUrl": {
                    "type": "string"
                  },
                  "awsStsExternalId": {
                    "type": "string"
                  },
                  "awsStsPolicy": {
                    "type": "string"
                  },
                  "awsStsRoleArn": {
                    "type": "string"
                  },
                  "awsStsSessionName": {
                    "type": "string"
                  },
                  "awsUseSts": {
                    "type": "boolean"
                  },
                  "concurrency": {
                    "type": "integer"
                  },
                  "durationSeconds": {
                    "type": "string"
                  },
                  "endpoint": {
                    "description": "Specify an AWS endpoint to send data to.",
                    "type": "string"
                  },
                  "httpProxy": {
                    "type": "string"
                  },
                  "includeTimeKey": {
                    "type": "boolean"
                  },
                  "jsonHandler": {
                    "type": "string"
                  },
                  "localtime": {
                    "type": "boolean"
                  },
                  "logGroupAwsTags": {
                    "type": "string"
                  },
                  "logGroupAwsTagsKey": {
                    "type": "string"
                  },
                  "logGroupName": {
                    "type": "string"
                  },
                  "logGroupNameKey": {
                    "type": "string"
                  },
                  "logRejectedRequest": {
                    "type": "string"
                  },
                  "logStreamName": {
                    "type": "string"
                  },
                  "logStreamNameKey": {
                    "type": "string"
                  },
                  "maxEventsPerBatch": {
                    "type": "string"
                  },
                  "maxMessageLength": {
                    "type": "string"
                  },
                  "messageKeys": {
                    "type": "string"
                  },
                  "policy": {
                    "type": "string"
                  },
                  "putLogEventsDisableRetryLimit": {
                    "type": "boolean"
                  },
                  "putLogEventsRetryLimit": {
                    "type": "string"
                  },
                  "putLogEventsRetryWait": {
                    "type": "string"
                  },
                  "region": {
                    "description": "The AWS region.",
                    "type": "string"
                  },
                  "removeLogGroupAwsTagsKey": {
                    "type": "boolean"
                  },
                  "removeLogGroupNameKey": {
                    "type": "boolean"
                  },
                  "removeLogStreamNameKey": {
                    "type": "boolean"
                  },
                  "removeRetentionInDaysKey": {
                    "type": "boolean"
                  },
                  "retentionInDays": {
                    "type": "string"
                  },
                  "retentionInDaysKey": {
                    "type": "string"
                  },
                  "roleArn": {
                    "description": "ARN of an IAM role to assume (for cross account access).",
                    "type": "string"
                  },
                  "roleSessionName": {
                    "description": "Role Session name",
                    "type": "string"
                  },
                  "sslVerifyPeer": {
                    "type": "boolean"
                  },
                  "useTagAsGroup": {
                    "type": "string"
                  },
                  "useTagAsStream": {
                    "type": "string"
                  },
                  "webIdentityTokenFile": {
                    "description": "Web identity token file",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "copy": {
                "description": "copy plugin",
                "properties": {
                  "copyMode": {
                    "description": "CopyMode defines how to pass the events to <store> plugins.",
                    "enum": [
                      "no_copy",
                      "shallow",
                      "deep",
                      "marshal"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "copyMode"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "customPlugin": {
                "description": "Custom plugin type",
                "properties": {
                  "config": {
                    "type": "string"
                  }
                },
                "required": [
                  "config"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "datadog": {
                "description": "datadog plugin",
                "properties": {
                  "apiKey": {
                    "description": "This parameter is required in order to authenticate your fluent agent.",
                    "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
                  },
                  "compressionLevel": {
                    "description": "Set the log compression level for HTTP (1 to 9, 9 being the best ratio)",
                    "format": "int32",
                    "type": "integer"
                  },
                  "ddHostname": {
                    "description": "Used by Datadog to identify the host submitting the logs.",
                    "type": "string"
                  },
                  "ddSource": {
                    "description": "This tells Datadog what integration it is",
                    "type": "string"
                  },
                  "ddSourcecategory": {
                    "description": "Multiple value attribute. Can be used to refine the source attribute",
                    "type": "string"
                  },
                  "ddTags": {
                    "description": "Custom tags with the following format \"key1:value1, key2:value2\"",
                    "type": "string"
                  },
                  "host": {
                    "description": "Proxy endpoint when logs are not directly forwarded to Datadog",
                    "type": "string"
                  },
                  "httpProxy": {
                    "description": "HTTP proxy, only takes effect if HTTP forwarding is enabled (use_http). Defaults to HTTP_PROXY/http_proxy env vars.",
                    "type": "string"
                  },
                  "includeTagKey": {
                    "description": "Automatically include the Fluentd tag in the record.",
                    "type": "boolean"
                  },
                  "maxBackoff": {
                    "description": "The maximum time waited between each retry in seconds",
                    "format": "int32",
                    "type": "integer"
                  },
                  "maxRetries": {
                    "description": "The number of retries before the output plugin stops. Set to -1 for unlimited retries",
                    "format": "int32",
                    "type": "integer"
                  },
                  "noSSLValidation": {
                    "description": "Disable SSL validation (useful for proxy forwarding)",
                    "type": "boolean"
                  },
                  "port": {
                    "description": "Proxy port when logs are not directly forwarded to Datadog and ssl is not used",
                    "format": "int32",
                    "maximum": 65535,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "service": {
                    "description": "Used by Datadog to correlate between logs, traces and metrics.",
                    "type": "string"
                  },
                  "sslPort": {
                    "description": "Port used to send logs over a SSL encrypted connection to Datadog. If use_http is disabled, use 10516 for the US region and 443 for the EU region.",
                    "format": "int32",
                    "maximum": 65535,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "tagKey": {
                    "description": "Where to store the Fluentd tag.",
                    "type": "string"
                  },
                  "timestampKey": {
                    "description": "Name of the attribute which will contain timestamp of the log event. If nil, timestamp attribute is not added.",
                    "type": "string"
                  },
                  "useCompression": {
                    "description": "Enable log compression for HTTP",
                    "type": "boolean"
                  },
                  "useHTTP": {
                    "description": "Enable HTTP forwarding. If you disable it, make sure to change the port to 10514 or ssl_port to 10516",
                    "type": "boolean"
                  },
                  "useJson": {
                    "description": "Event format, if true, the event is sent in json format. Othwerwise, in plain text.",
                    "type": "boolean"
                  },
                  "useSSL": {
                    "description": "If true, the agent initializes a secure connection to Datadog. In clear TCP otherwise.",
                    "type": "boolean"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "elasticsearch": {
                "description": "out_es plugin",
                "properties": {
                  "caFile": {
                    "description": "Optional, Absolute path to CA certificate file",
                    "type": "string"
                  },
                  "clientCert": {
                    "description": "Optional, Absolute path to client Certificate file",
                    "type": "string"
                  },
                  "clientKey": {
                    "description": "Optional, Absolute path to client private Key file",
                    "type": "string"
                  },
                  "clientKeyPassword": {
                    "description": "Optional, password for ClientKey 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
                  },
                  "cloudAuth": {
                    "description": "Authenticate towards Elastic Cloud using cloudAuth.",
                    "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
                  },
                  "cloudId": {
                    "description": "Authenticate towards Elastic Cloud using CloudId. If set, cloudAuth must\nbe set as well and host, port, user and password are ignored.",
                    "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
                  },
                  "enableIlm": {
                    "description": "Optional, Enable Index Lifecycle Management (ILM)",
                    "type": "boolean"
                  },
                  "failOnPuttingTemplateRetryExceeded": {
                    "description": "Optional, Indicates whether to fail when max_retry_putting_template is exceeded. If you have multiple output plugin, you could use this property to do not fail on fluentd statup (default: false)",
                    "type": "boolean"
                  },
                  "host": {
                    "description": "The hostname of your Elasticsearch node (default: localhost).",
                    "type": "string"
                  },
                  "hosts": {
                    "description": "Hosts defines a list of hosts if you want to connect to more than one Elasticsearch nodes",
                    "type": "string"
                  },
                  "ilmPolicy": {
                    "description": "Optional, Specify ILM policy contents as Hash",
                    "type": "string"
                  },
                  "ilmPolicyId": {
                    "description": "Optional, Specify ILM policy id",
                    "type": "string"
                  },
                  "ilmPolicyOverride": {
                    "description": "Optional, Specify whether overwriting ilm policy or not",
                    "type": "boolean"
                  },
                  "indexName": {
                    "description": "IndexName defines the placeholder syntax of Fluentd plugin API. See https://docs.fluentd.org/configuration/buffer-section.",
                    "type": "string"
                  },
                  "logEs400Reason": {
                    "description": "Optional, Enable logging of 400 reason without enabling debug log level",
                    "type": "boolean"
                  },
                  "logstashFormat": {
                    "description": "If true, Fluentd uses the conventional index name format logstash-%Y.%m.%d (default: false). This option supersedes the index_name option.",
                    "type": "boolean"
                  },
                  "logstashPrefix": {
                    "description": "LogstashPrefix defines the logstash prefix index name to write events when logstash_format is true (default: logstash).",
                    "type": "string"
                  },
                  "maxRetryPuttingTemplate": {
                    "description": "Optional, You can specify times of retry putting template (default: 10)",
                    "format": "int32",
                    "type": "integer"
                  },
                  "password": {
                    "description": "Optional, The login credentials to connect to Elasticsearch",
                    "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
                  },
                  "path": {
                    "description": "Path defines the REST API endpoint of Elasticsearch to post write requests (default: nil).",
                    "type": "string"
                  },
                  "port": {
                    "description": "The port number of your Elasticsearch node (default: 9200).",
                    "format": "int32",
                    "maximum": 65535,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "reconnectOnError": {
                    "description": "Optional, Indicates that the plugin should reset connection on any error (reconnect on next send) (default: false)",
                    "type": "boolean"
                  },
                  "reloadAfter": {
                    "description": "Optional, When ReloadConnections true, this is the integer number of operations after which the plugin will reload the connections. The default value is 10000.",
                    "format": "int32",
                    "type": "integer"
                  },
                  "reloadConnections": {
                    "description": "Optional, Automatically reload connection after 10000 documents (default: true)",
                    "type": "boolean"
                  },
                  "reloadOnFailure": {
                    "description": "Optional, Indicates that the elasticsearch-transport will try to reload the nodes addresses if there is a failure while making the request, this can be useful to quickly remove a dead node from the list of addresses (default: false)",
                    "type": "boolean"
                  },
                  "requestTimeout": {
                    "description": "Optional, HTTP Timeout (default: 5)",
                    "pattern": "^\\d+(s|m|h|d)$",
                    "type": "string"
                  },
                  "scheme": {
                    "description": "Specify https if your Elasticsearch endpoint supports SSL (default: http).",
                    "type": "string"
                  },
                  "snifferClassName": {
                    "description": "Optional, Provide a different sniffer class name",
                    "type": "string"
                  },
                  "sslVerify": {
                    "description": "Optional, Force certificate validation",
                    "type": "boolean"
                  },
                  "suppressTypeName": {
                    "description": "Optional, Suppress '[types removal]' warnings on elasticsearch 7.x",
                    "type": "boolean"
                  },
                  "templateOverwrite": {
                    "description": "Optional, Always update the template, even if it already exists (default: false)",
                    "type": "boolean"
                  },
                  "user": {
                    "description": "Optional, The login credentials to connect to Elasticsearch",
                    "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
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "elasticsearchDataStream": {
                "description": "out_es datastreams plugin",
                "properties": {
                  "caFile": {
                    "description": "Optional, Absolute path to CA certificate file",
                    "type": "string"
                  },
                  "clientCert": {
                    "description": "Optional, Absolute path to client Certificate file",
                    "type": "string"
                  },
                  "clientKey": {
                    "description": "Optional, Absolute path to client private Key file",
                    "type": "string"
                  },
                  "clientKeyPassword": {
                    "description": "Optional, password for ClientKey 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
                  },
                  "cloudAuth": {
                    "description": "Authenticate towards Elastic Cloud using cloudAuth.",
                    "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
                  },
                  "cloudId": {
                    "description": "Authenticate towards Elastic Cloud using CloudId. If set, cloudAuth must\nbe set as well and host, port, user and password are ignored.",
                    "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
                  },
                  "dataStreamIlmName": {
                    "description": "Optional, You can specify the name of an existing ILM policy, which will be applied to the data stream. If not present, it creates a new ILM default policy (unless data_stream_template_name is defined, in that case the ILM will be set to the one specified in the matching index template)",
                    "type": "string"
                  },
                  "dataStreamIlmPolicy": {
                    "description": "Optional, You can specify the ILM policy contents as hash. If not present, it will apply the ILM default policy",
                    "type": "string"
                  },
                  "dataStreamIlmPolicyOverwrite": {
                    "description": "Optional, Specify whether the data stream ILM policy should be overwritten",
                    "type": "boolean"
                  },
                  "dataStreamName": {
                    "description": "You can specify Elasticsearch data stream name by this parameter. This parameter is mandatory for elasticsearch_data_stream",
                    "type": "string"
                  },
                  "dataStreamTemplateName": {
                    "description": "Optional, You can specify an existing matching index template for the data stream. If not present, it creates a new matching index template",
                    "type": "string"
                  },
                  "dataStreamTemplateUseIndexPatternsWildcard": {
                    "description": "Optional, Specify whether index patterns should include a wildcard (*) when creating an index template. This is particularly useful to prevent errors in scenarios where index templates are generated automatically, and multiple services with distinct suffixes are in use",
                    "type": "boolean"
                  },
                  "enableIlm": {
                    "description": "Optional, Enable Index Lifecycle Management (ILM)",
                    "type": "boolean"
                  },
                  "failOnPuttingTemplateRetryExceeded": {
                    "description": "Optional, Indicates whether to fail when max_retry_putting_template is exceeded. If you have multiple output plugin, you could use this property to do not fail on fluentd statup (default: false)",
                    "type": "boolean"
                  },
                  "host": {
                    "description": "The hostname of your Elasticsearch node (default: localhost).",
                    "type": "string"
                  },
                  "hosts": {
                    "description": "Hosts defines a list of hosts if you want to connect to more than one Elasticsearch nodes",
                    "type": "string"
                  },
                  "ilmPolicy": {
                    "description": "Optional, Specify ILM policy contents as Hash",
                    "type": "string"
                  },
                  "ilmPolicyId": {
                    "description": "Optional, Specify ILM policy id",
                    "type": "string"
                  },
                  "ilmPolicyOverride": {
                    "description": "Optional, Specify whether overwriting ilm policy or not",
                    "type": "boolean"
                  },
                  "logEs400Reason": {
                    "description": "Optional, Enable logging of 400 reason without enabling debug log level",
                    "type": "boolean"
                  },
                  "maxRetryPuttingTemplate": {
                    "description": "Optional, You can specify times of retry putting template (default: 10)",
                    "format": "int32",
                    "type": "integer"
                  },
                  "password": {
                    "description": "Optional, The login credentials to connect to Elasticsearch",
                    "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
                  },
                  "path": {
                    "description": "Path defines the REST API endpoint of Elasticsearch to post write requests (default: nil).",
                    "type": "string"
                  },
                  "port": {
                    "description": "The port number of your Elasticsearch node (default: 9200).",
                    "format": "int32",
                    "maximum": 65535,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "reconnectOnError": {
                    "description": "Optional, Indicates that the plugin should reset connection on any error (reconnect on next send) (default: false)",
                    "type": "boolean"
                  },
                  "reloadAfter": {
                    "description": "Optional, When ReloadConnections true, this is the integer number of operations after which the plugin will reload the connections. The default value is 10000.",
                    "format": "int32",
                    "type": "integer"
                  },
                  "reloadConnections": {
                    "description": "Optional, Automatically reload connection after 10000 documents (default: true)",
                    "type": "boolean"
                  },
                  "reloadOnFailure": {
                    "description": "Optional, Indicates that the elasticsearch-transport will try to reload the nodes addresses if there is a failure while making the request, this can be useful to quickly remove a dead node from the list of addresses (default: false)",
                    "type": "boolean"
                  },
                  "requestTimeout": {
                    "description": "Optional, HTTP Timeout (default: 5)",
                    "pattern": "^\\d+(s|m|h|d)$",
                    "type": "string"
                  },
                  "scheme": {
                    "description": "Specify https if your Elasticsearch endpoint supports SSL (default: http).",
                    "type": "string"
                  },
                  "snifferClassName": {
                    "description": "Optional, Provide a different sniffer class name",
                    "type": "string"
                  },
                  "sslVerify": {
                    "description": "Optional, Force certificate validation",
                    "type": "boolean"
                  },
                  "suppressTypeName": {
                    "description": "Optional, Suppress '[types removal]' warnings on elasticsearch 7.x",
                    "type": "boolean"
                  },
                  "templateOverwrite": {
                    "description": "Optional, Always update the template, even if it already exists (default: false)",
                    "type": "boolean"
                  },
                  "user": {
                    "description": "Optional, The login credentials to connect to Elasticsearch",
                    "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
                  }
                },
                "required": [
                  "dataStreamName"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "format": {
                "description": "format section",
                "properties": {
                  "delimiter": {
                    "description": "Delimiter for each field.",
                    "type": "string"
                  },
                  "id": {
                    "description": "The @id parameter specifies a unique name for the configuration.",
                    "type": "string"
                  },
                  "localtime": {
                    "description": "If true, uses local time.",
                    "type": "boolean"
                  },
                  "logLevel": {
                    "description": "The @log_level parameter specifies the plugin-specific logging level",
                    "type": "string"
                  },
                  "newline": {
                    "description": "Specify newline characters.",
                    "enum": [
                      "lf",
                      "crlf"
                    ],
                    "type": "string"
                  },
                  "outputTag": {
                    "description": "Output tag field if true.",
                    "type": "boolean"
                  },
                  "outputTime": {
                    "description": "Output time field if true.",
                    "type": "boolean"
                  },
                  "timeFormat": {
                    "description": "Process value according to the specified format. This is available only when time_type is string",
                    "type": "string"
                  },
                  "timeFormatFallbacks": {
                    "description": "Uses the specified time format as a fallback in the specified order. You can parse undetermined time format by using time_format_fallbacks. This options is enabled when time_type is mixed.",
                    "type": "string"
                  },
                  "timeType": {
                    "description": "parses/formats value according to this type, default is string",
                    "enum": [
                      "float",
                      "unixtime",
                      "string",
                      "mixed"
                    ],
                    "type": "string"
                  },
                  "timezone": {
                    "description": "Uses the specified timezone.",
                    "type": "string"
                  },
                  "type": {
                    "description": "The @type parameter specifies the type of the plugin.",
                    "enum": [
                      "out_file",
                      "json",
                      "ltsv",
                      "csv",
                      "msgpack",
                      "hash",
                      "single_value"
                    ],
                    "type": "string"
                  },
                  "utc": {
                    "description": "If true, uses UTC.",
                    "type": "boolean"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "forward": {
                "description": "out_forward plugin",
                "properties": {
                  "ackResponseTimeout": {
                    "description": "This option is used when require_ack_response is true. This default value is based on popular tcp_syn_retries.",
                    "pattern": "^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$",
                    "type": "string"
                  },
                  "connectTimeout": {
                    "description": "The connection timeout for the socket. When the connection is timed out during the connection establishment, Errno::ETIMEDOUT error is raised.",
                    "pattern": "^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$",
                    "type": "string"
                  },
                  "dnsRoundRobin": {
                    "description": "Enable client-side DNS round robin. Uniform randomly pick an IP address to send data when a hostname has several IP addresses.\nheartbeat_type udp is not available with dns_round_robintrue. Use heartbeat_type tcp or heartbeat_type none.",
                    "type": "boolean"
                  },
                  "expireDnsCache": {
                    "description": "Sets TTL to expire DNS cache in seconds. Set 0 not to use DNS Cache.",
                    "pattern": "^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$",
                    "type": "string"
                  },
                  "hardTimeout": {
                    "description": "The hard timeout used to detect server failure. The default value is equal to the send_timeout parameter.",
                    "pattern": "^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$",
                    "type": "string"
                  },
                  "heartbeatInterval": {
                    "description": "The interval of the heartbeat packer.",
                    "pattern": "^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$",
                    "type": "string"
                  },
                  "heartbeatType": {
                    "description": "Specifies the transport protocol for heartbeats. Set none to disable.",
                    "enum": [
                      "transport",
                      "tcp",
                      "udp",
                      "none"
                    ],
                    "type": "string"
                  },
                  "ignoreNetworkErrorsAtStartup": {
                    "description": "Ignores DNS resolution and errors at startup time.",
                    "type": "boolean"
                  },
                  "keepalive": {
                    "description": "Enables the keepalive connection.",
                    "type": "boolean"
                  },
                  "keepaliveTimeout": {
                    "description": "Timeout for keepalive. Default value is nil which means to keep the connection alive as long as possible.",
                    "pattern": "^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$",
                    "type": "string"
                  },
                  "phiFailureDetector": {
                    "description": "Use the \"Phi accrual failure detector\" to detect server failure.",
                    "type": "boolean"
                  },
                  "phiThreshold": {
                    "description": "The threshold parameter used to detect server faults.",
                    "type": "integer"
                  },
                  "recoverWait": {
                    "description": "The wait time before accepting a server fault recovery.",
                    "pattern": "^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$",
                    "type": "string"
                  },
                  "requireAckResponse": {
                    "description": "Changes the protocol to at-least-once. The plugin waits the ack from destination's in_forward plugin.",
                    "type": "boolean"
                  },
                  "security": {
                    "description": "ServiceDiscovery defines the security section",
                    "properties": {
                      "allowAnonymousSource": {
                        "description": "Allows the anonymous source. <client> sections are required, if disabled.",
                        "type": "string"
                      },
                      "selfHostname": {
                        "description": "The hostname.",
                        "type": "string"
                      },
                      "sharedKey": {
                        "description": "The shared key for authentication.",
                        "type": "string"
                      },
                      "user": {
                        "description": "Defines user section directly.",
                        "properties": {
                          "password": {
                            "description": "Secret defines the key of a value.",
                            "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
                          },
                          "username": {
                            "description": "Secret defines the key of a value.",
                            "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
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "userAuth": {
                        "description": "If true, user-based authentication is used.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "sendTimeout": {
                    "description": "The timeout time when sending event logs.",
                    "pattern": "^\\d+(\\.[0-9]{0,2})?(s|m|h|d)?$",
                    "type": "string"
                  },
                  "servers": {
                    "description": "Servers defines the servers section, at least one is required",
                    "items": {
                      "description": "Server defines the common parameters for the server plugin",
                      "properties": {
                        "host": {
                          "description": "Host defines the IP address or host name of the server.",
                          "type": "string"
                        },
                        "id": {
                          "description": "The @id parameter specifies a unique name for the configuration.",
                          "type": "string"
                        },
                        "logLevel": {
                          "description": "The @log_level parameter specifies the plugin-specific logging level",
                          "type": "string"
                        },
                        "name": {
                          "description": "Name defines the name of the server. Used for logging and certificate verification in TLS transport (when the host is the address).",
                          "type": "string"
                        },
                        "password": {
                          "description": "Password defines the password for authentication.",
                          "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
                        },
                        "port": {
                          "description": "Port defines the port number of the host. Note that both TCP packets (event stream) and UDP packets (heartbeat messages) are sent to this port.",
                          "type": "string"
                        },
                        "sharedKey": {
                          "description": "SharedKey defines the shared key per server.",
                          "type": "string"
                        },
                        "standby": {
                          "description": "Standby marks a node as the standby node for an Active-Standby model between Fluentd nodes.",
                          "type": "string"
                        },
                        "type": {
                          "description": "The @type parameter specifies the type of the plugin.",
                          "type": "string"
                        },
                        "username": {
                          "description": "Username defines the username for authentication.",
                          "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
                        },
                        "weight": {
                          "description": "Weight defines the load balancing weight",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "serviceDiscovery": {
                    "description": "ServiceDiscovery defines the service_discovery section",
                    "properties": {
                      "confEncoding": {
                        "description": "The encoding of the configuration file.",
                        "type": "string"
                      },
                      "dnsLookup": {
                        "description": "DnsLookup resolves the hostname to IP address of the SRV's Target.",
                        "type": "string"
                      },
                      "dnsServerHost": {
                        "description": "DnsServerHost defines the hostname of the DNS server to request the SRV record.",
                        "type": "string"
                      },
                      "hostname": {
                        "description": "The name in RFC2782.",
                        "type": "string"
                      },
                      "id": {
                        "description": "The @id parameter specifies a unique name for the configuration.",
                        "type": "string"
                      },
                      "interval": {
                        "description": "Interval defines the interval of sending requests to DNS server.",
                        "type": "string"
                      },
                      "logLevel": {
                        "description": "The @log_level parameter specifies the plugin-specific logging level",
                        "type": "string"
                      },
                      "path": {
                        "description": "The path of the target list. Default is '/etc/fluent/sd.yaml'",
                        "type": "string"
                      },
                      "proto": {
                        "description": "Proto without the underscore in RFC2782.",
                        "type": "string"
                      },
                      "server": {
                        "description": "The server section of this plugin",
                        "properties": {
                          "host": {
                            "description": "Host defines the IP address or host name of the server.",
                            "type": "string"
                          },
                          "id": {
                            "description": "The @id parameter specifies a unique name for the configuration.",
                            "type": "string"
                          },
                          "logLevel": {
                            "description": "The @log_level parameter specifies the plugin-specific logging level",
                            "type": "string"
                          },
                          "name": {
                            "description": "Name defines the name of the server. Used for logging and certificate verification in TLS transport (when the host is the address).",
                            "type": "string"
                          },
                          "password": {
                            "description": "Password defines the password for authentication.",
                            "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
                          },
                          "port": {
                            "description": "Port defines the port number of the host. Note that both TCP packets (event stream) and UDP packets (heartbeat messages) are sent to this port.",
                            "type": "string"
                          },
                          "sharedKey": {
                            "description": "SharedKey defines the shared key per server.",
                            "type": "string"
                          },
                          "standby": {
                            "description": "Standby marks a node as the standby node for an Active-Standby model between Fluentd nodes.",
                            "type": "string"
                          },
                          "type": {
                            "description": "The @type parameter specifies the type of the plugin.",
                            "type": "string"
                          },
                          "username": {
                            "description": "Username defines the username for authentication.",
                            "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
                          },
                          "weight": {
                            "description": "Weight defines the load balancing weight",
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "service": {
                        "description": "Service without the underscore in RFC2782.",
                        "type": "string"
                      },
                      "type": {
                        "description": "The @type parameter specifies the type of the plugin.",
                        "enum": [
                          "static",
                          "file",
                          "srv"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "tlsAllowSelfSignedCert": {
                    "description": "Allows self-signed certificates or not.",
                    "type": "boolean"
                  },
                  "tlsCertLogicalStoreName": {
                    "description": "The certificate logical store name on Windows system certstore. This parameter is for Windows only.",
                    "type": "string"
                  },
                  "tlsCertPath": {
                    "description": "The additional CA certificate path for TLS.",
                    "type": "string"
                  },
                  "tlsCertThumbprint": {
                    "description": "The certificate thumbprint for searching from Windows system certstore. This parameter is for Windows only.",
                    "type": "string"
                  },
                  "tlsCertUseEnterpriseStore": {
                    "description": "Enables the certificate enterprise store on Windows system certstore. This parameter is for Windows only.",
                    "type": "boolean"
                  },
                  "tlsCiphers": {
                    "description": "The cipher configuration of TLS transport.",
                    "type": "string"
                  },
                  "tlsClientCertPath": {
                    "description": "The client certificate path for TLS.",
                    "type": "string"
                  },
                  "tlsClientPrivateKeyPassphrase": {
                    "description": "The TLS private key passphrase for the client.",
                    "type": "string"
                  },
                  "tlsClientPrivateKeyPath": {
                    "description": "The client private key path for TLS.",
                    "type": "string"
                  },
                  "tlsInsecureMode": {
                    "description": "Skips all verification of certificates or not.",
                    "type": "boolean"
                  },
                  "tlsVerifyHostname": {
                    "description": "Verifies hostname of servers and certificates or not in TLS transport.",
                    "type": "boolean"
                  },
                  "tlsVersion": {
                    "description": "The default version of TLS transport.",
                    "enum": [
                      "TLSv1_1",
                      "TLSv1_2"
                    ],
                    "type": "string"
                  },
                  "verifyConnectionAtStartup": {
                    "description": "Verify that a connection can be made with one of out_forward nodes at the time of startup.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "servers"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "http": {
                "description": "out_http plugin",
                "properties": {
                  "auth": {
                    "description": "Auth section for this plugin",
                    "properties": {
                      "auth": {
                        "description": "The method for HTTP authentication. Now only basic.",
                        "type": "string"
                      },
                      "password": {
                        "description": "The password for basic authentication.",
                        "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
                      },
                      "username": {
                        "description": "The username for basic authentication.",
                        "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
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "contentType": {
                    "description": "ContentType defines Content-Type for HTTP request. out_http automatically set Content-Type for built-in formatters when this parameter is not specified.",
                    "type": "string"
                  },
                  "endpoint": {
                    "description": "Endpoint defines the endpoint for HTTP request. If you want to use HTTPS, use https prefix.",
                    "type": "string"
                  },
                  "errorResponseAsUnrecoverable": {
                    "description": "Raise UnrecoverableError when the response code is not SUCCESS.",
                    "type": "boolean"
                  },
                  "headers": {
                    "description": "Headers defines the additional headers for HTTP request.",
                    "type": "string"
                  },
                  "headersFromPlaceholders": {
                    "description": "Additional placeholder based headers for HTTP request. If you want to use tag or record field, use this parameter instead of headers.",
                    "type": "string"
                  },
                  "httpMethod": {
                    "description": "HttpMethod defines the method for HTTP request.",
                    "enum": [
                      "post",
                      "put"
                    ],
                    "type": "string"
                  },
                  "jsonArray": {
                    "description": "JsonArray defines whether to use the array format of JSON or not",
                    "type": "boolean"
                  },
                  "openTimeout": {
                    "description": "OpenTimeout defines the connection open timeout in seconds.",
                    "type": "integer"
                  },
                  "proxy": {
                    "description": "Proxy defines the proxy for HTTP request.",
                    "type": "string"
                  },
                  "readTimeout": {
                    "description": "ReadTimeout defines the read timeout in seconds.",
                    "type": "integer"
                  },
                  "retryableResponseCodes": {
                    "description": "The list of retryable response codes. If the response code is included in this list, out_http retries the buffer flush.",
                    "type": "string"
                  },
                  "sslTimeout": {
                    "description": "SslTimeout defines the TLS timeout in seconds.",
                    "type": "integer"
                  },
                  "tlsCaCertPath": {
                    "description": "TlsCaCertPath defines the CA certificate path for TLS.",
                    "type": "string"
                  },
                  "tlsCiphers": {
                    "description": "TlsCiphers defines the cipher suites configuration of TLS.",
                    "type": "string"
                  },
                  "tlsClientCertPath": {
                    "description": "TlsClientCertPath defines the client certificate path for TLS.",
                    "type": "string"
                  },
                  "tlsPrivateKeyPassphrase": {
                    "description": "TlsPrivateKeyPassphrase defines the client private key passphrase for TLS.",
                    "type": "string"
                  },
                  "tlsPrivateKeyPath": {
                    "description": "TlsPrivateKeyPath defines the client private key path for TLS.",
                    "type": "string"
                  },
                  "tlsVerifyMode": {
                    "description": "TlsVerifyMode defines the verify mode of TLS.",
                    "enum": [
                      "peer",
                      "none"
                    ],
                    "type": "string"
                  },
                  "tlsVersion": {
                    "description": "TlsVersion defines the default version of TLS transport.",
                    "enum": [
                      "TLSv1_1",
                      "TLSv1_2"
                    ],
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "inject": {
                "description": "inject section",
                "properties": {
                  "hostname": {
                    "description": "Hostname value",
                    "type": "string"
                  },
                  "hostnameKey": {
                    "description": "The field name to inject hostname",
                    "type": "string"
                  },
                  "inline": {
                    "description": "Time section",
                    "properties": {
                      "localtime": {
                        "description": "If true, uses local time.",
                        "type": "boolean"
                      },
                      "timeFormat": {
                        "description": "Process value according to the specified format. This is available only when time_type is string",
                        "type": "string"
                      },
                      "timeFormatFallbacks": {
                        "description": "Uses the specified time format as a fallback in the specified order. You can parse undetermined time format by using time_format_fallbacks. This options is enabled when time_type is mixed.",
                        "type": "string"
                      },
                      "timeType": {
                        "description": "parses/formats value according to this type, default is string",
                        "enum": [
                          "float",
                          "unixtime",
                          "string",
                          "mixed"
                        ],
                        "type": "string"
                      },
                      "timezone": {
                        "description": "Uses the specified timezone.",
                        "type": "string"
                      },
                      "utc": {
                        "description": "If true, uses UTC.",
                        "type": "boolean"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "tagKey": {
                    "description": "The field name to inject tag",
                    "type": "string"
                  },
                  "timeKey": {
                    "description": "The field name to inject time",
                    "type": "string"
                  },
                  "workerIdKey": {
                    "description": "The field name to inject worker_id",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "kafka": {
                "description": "out_kafka plugin",
                "properties": {
                  "brokers": {
                    "description": "The list of all seed brokers, with their host and port information. Default: localhost:9092",
                    "type": "string"
                  },
                  "compressionCodec": {
                    "description": "The codec the producer uses to compress messages (default: nil).",
                    "enum": [
                      "gzip",
                      "snappy"
                    ],
                    "type": "string"
                  },
                  "defaultTopic": {
                    "description": "The name of the default topic. (default: nil)",
                    "type": "string"
                  },
                  "requiredAcks": {
                    "description": "The number of acks required per request.",
                    "type": "integer"
                  },
                  "topicKey": {
                    "description": "The field name for the target topic. If the field value is app, this plugin writes events to the app topic.",
                    "type": "string"
                  },
                  "useEventTime": {
                    "description": "Set fluentd event time to Kafka's CreateTime.",
                    "type": "boolean"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "logLevel": {
                "description": "The @log_level parameter specifies the plugin-specific logging level",
                "type": "string"
              },
              "loki": {
                "description": "out_loki plugin",
                "properties": {
                  "bearerTokenFile": {
                    "description": "Set path to file with bearer authentication token\nCan be used as alterntative to HTTP basic authentication",
                    "type": "string"
                  },
                  "dropSingleKey": {
                    "description": "If a record only has 1 key, then just set the log line to the value and discard the key.",
                    "type": "boolean"
                  },
                  "extractKubernetesLabels": {
                    "description": "If set to true, it will add all Kubernetes labels to the Stream labels.",
                    "type": "boolean"
                  },
                  "httpPassword": {
                    "description": "Password for user defined in HTTP_User\nSet HTTP basic authentication password",
                    "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
                  },
                  "httpUser": {
                    "description": "Set HTTP basic authentication user name.",
                    "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
                  },
                  "includeThreadLabel": {
                    "description": "Whether or not to include the fluentd_thread label when multiple threads are used for flushing",
                    "type": "boolean"
                  },
                  "insecure": {
                    "description": "Disable certificate validation",
                    "type": "boolean"
                  },
                  "labelKeys": {
                    "description": "Optional list of record keys that will be placed as stream labels.\nThis configuration property is for records key only.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "labels": {
                    "description": "Stream labels for API request. It can be multiple comma separated of strings specifying  key=value pairs.\nIn addition to fixed parameters, it also allows to add custom record keys (similar to label_keys property).",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "lineFormat": {
                    "description": "Format to use when flattening the record to a log line. Valid values are json or key_value.\nIf set to json,  the log line sent to Loki will be the Fluentd record dumped as JSON.\nIf set to key_value, the log line will be each item in the record concatenated together (separated by a single space) in the format.",
                    "enum": [
                      "json",
                      "key_value"
                    ],
                    "type": "string"
                  },
                  "removeKeys": {
                    "description": "Optional list of record keys that will be removed from stream labels.\nThis configuration property is for records key only.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "tenantID": {
                    "description": "Tenant ID used by default to push logs to Loki.\nIf omitted or empty it assumes Loki is running in single-tenant mode and no X-Scope-OrgID header is sent.",
                    "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
                  },
                  "tlsCaCertFile": {
                    "description": "TlsCaCert defines the CA certificate file for TLS.",
                    "type": "string"
                  },
                  "tlsClientCertFile": {
                    "description": "TlsClientCert defines the client certificate file for TLS.",
                    "type": "string"
                  },
                  "tlsPrivateKeyFile": {
                    "description": "TlsPrivateKey defines the client private key file for TLS.",
                    "type": "string"
                  },
                  "url": {
                    "description": "Loki URL.",
                    "type": "string"
                  }
                },
                "required": [
                  "url"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "opensearch": {
                "description": "out_opensearch plugin",
                "properties": {
                  "host": {
                    "description": "The hostname of your Opensearch node (default: localhost).",
                    "type": "string"
                  },
                  "hosts": {
                    "description": "Hosts defines a list of hosts if you want to connect to more than one Openearch nodes",
                    "type": "string"
                  },
                  "indexName": {
                    "description": "IndexName defines the placeholder syntax of Fluentd plugin API. See https://docs.fluentd.org/configuration/buffer-section.",
                    "type": "string"
                  },
                  "logstashFormat": {
                    "description": "If true, Fluentd uses the conventional index name format logstash-%Y.%m.%d (default: false). This option supersedes the index_name option.",
                    "type": "boolean"
                  },
                  "logstashPrefix": {
                    "description": "LogstashPrefix defines the logstash prefix index name to write events when logstash_format is true (default: logstash).",
                    "type": "string"
                  },
                  "password": {
                    "description": "Optional, The login credentials to connect to Opensearch",
                    "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
                  },
                  "path": {
                    "description": "Path defines the REST API endpoint of Opensearch to post write requests (default: nil).",
                    "type": "string"
                  },
                  "port": {
                    "description": "The port number of your Opensearch node (default: 9200).",
                    "format": "int32",
                    "maximum": 65535,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "scheme": {
                    "description": "Specify https if your Opensearch endpoint supports SSL (default: http).",
                    "type": "string"
                  },
                  "sslVerify": {
                    "description": "Optional, Force certificate validation",
                    "type": "boolean"
                  },
                  "user": {
                    "description": "Optional, The login credentials to connect to Opensearch",
                    "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
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "s3": {
                "description": "out_s3 plugin",
                "properties": {
                  "awsKeyId": {
                    "description": "The AWS access key id.",
                    "type": "string"
                  },
                  "awsSecKey": {
                    "description": "The AWS secret key.",
                    "type": "string"
                  },
                  "forcePathStyle": {
                    "description": "This prevents AWS SDK from breaking endpoint URL",
                    "type": "boolean"
                  },
                  "path": {
                    "description": "The path prefix of the files on S3.",
                    "type": "string"
                  },
                  "proxyUri": {
                    "description": "The proxy URL.",
                    "type": "string"
                  },
                  "s3Bucket": {
                    "description": "The Amazon S3 bucket name.",
                    "type": "string"
                  },
                  "s3Endpoint": {
                    "description": "The endpoint URL (like \"http://localhost:9000/\")",
                    "type": "string"
                  },
                  "s3ObjectKeyFormat": {
                    "description": "The actual S3 path. This is interpolated to the actual path.",
                    "type": "string"
                  },
                  "s3Region": {
                    "description": "The Amazon S3 region name",
                    "type": "string"
                  },
                  "sseCustomerAlgorithm": {
                    "description": "The AWS KMS enctyption algorithm.",
                    "type": "string"
                  },
                  "sseCustomerKey": {
                    "description": "The AWS KMS key.",
                    "type": "string"
                  },
                  "sseCustomerKeyMd5": {
                    "description": "The AWS KMS key MD5.",
                    "type": "string"
                  },
                  "ssekmsKeyId": {
                    "description": "The AWS KMS key ID.",
                    "type": "string"
                  },
                  "sslVerifyPeer": {
                    "description": "Verify the SSL certificate of the endpoint.",
                    "type": "boolean"
                  },
                  "storeAs": {
                    "description": "The compression type.",
                    "enum": [
                      "gzip",
                      "lzo",
                      "json",
                      "txt"
                    ],
                    "type": "string"
                  },
                  "timeSliceFormat": {
                    "description": "This timestamp is added to each file name",
                    "type": "string"
                  },
                  "useServerSideEncryption": {
                    "description": "the following parameters are for S3 kms https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "stdout": {
                "description": "out_stdout plugin",
                "type": "object"
              },
              "tag": {
                "description": "Which tag to be matched.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "ClusterOutputStatus defines the observed state of ClusterOutput",
      "type": "object"
    }
  },
  "type": "object"
}
