import { IObjectMeta } from "@kubernetes-models/apimachinery/apis/meta/v1/ObjectMeta";
import { Model, ModelData } from "@kubernetes-models/base";
/**
 * Output is the Schema for the outputs API
 */
export interface IOutput {
    /**
     * APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
     */
    "apiVersion": "fluentd.fluent.io/v1alpha1";
    /**
     * Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
     */
    "kind": "Output";
    "metadata"?: IObjectMeta;
    /**
     * OutputSpec defines the desired state of Output
     */
    "spec"?: {
        "outputs"?: Array<{
            /**
             * buffer section
             */
            "buffer"?: {
                /**
                 * Calculates the number of records, chunk size, during chunk resume.
                 */
                "calcNumRecords"?: string;
                /**
                 * ChunkFormat specifies the chunk format for calc_num_records.
                 */
                "chunkFormat"?: "msgpack" | "text" | "auto";
                /**
                 * The max number of events that each chunks can store in it.
                 */
                "chunkLimitRecords"?: string;
                /**
                 * Buffer parameters The max size of each chunks: events will be written into chunks until the size of chunks become this size Default: 8MB (memory) / 256MB (file)
                 */
                "chunkLimitSize"?: string;
                /**
                 * Fluentd will decompress these compressed chunks automatically before passing them to the output plugin If gzip is set, Fluentd compresses data records before writing to buffer chunks. Default:text.
                 */
                "compress"?: "text" | "gzip";
                /**
                 * The timeout (seconds) until output plugin decides if the async write operation has failed. Default is 60s
                 */
                "delayedCommitTimeout"?: string;
                /**
                 * Instead of storing unrecoverable chunks in the backup directory, just discard them. This option is new in Fluentd v1.2.6.
                 */
                "disableChunkBackup"?: boolean;
                /**
                 * Flush parameters This specifies whether to flush/write all buffer chunks on shutdown or not.
                 */
                "flushAtShutdown"?: boolean;
                /**
                 * FlushInterval defines the flush interval
                 */
                "flushInterval"?: string;
                /**
                 * FlushMode defines the flush mode: lazy: flushes/writes chunks once per timekey interval: flushes/writes chunks per specified time via flush_interval immediate: flushes/writes chunks immediately after events are appended into chunks default: equals to lazy if time is specified as chunk key, interval otherwise
                 */
                "flushMode"?: "default" | "lazy" | "interval" | "immediate";
                /**
                 * The number of threads to flush/write chunks in parallel
                 */
                "flushThreadCount"?: string;
                /**
                 * The @id parameter specifies a unique name for the configuration.
                 */
                "id"?: string;
                /**
                 * If true, uses local time.
                 */
                "localtime"?: boolean;
                /**
                 * The @log_level parameter specifies the plugin-specific logging level
                 */
                "logLevel"?: string;
                /**
                 * OverflowAtction defines the output plugin behave when its buffer queue is full. Default: throw_exception
                 */
                "overflowAction"?: string;
                /**
                 * The path where buffer chunks are stored. This field would make no effect in memory buffer plugin.
                 */
                "path"?: string;
                /**
                 * Changes the suffix of the buffer file.
                 */
                "pathSuffix"?: string;
                /**
                 * The queue length limitation of this buffer plugin instance. Default: 0.95
                 */
                "queueLimitLength"?: string;
                /**
                 * Limit the number of queued chunks. Default: 1 If a smaller flush_interval is set, e.g. 1s, there are lots of small queued chunks in the buffer. With file buffer, it may consume a lot of fd resources when output destination has a problem. This parameter mitigates such situations.
                 */
                "queuedChunksLimitSize"?: number;
                /**
                 * The base number of exponential backoff for retries.
                 */
                "retryExponentialBackoffBase"?: string;
                /**
                 * If true, plugin will ignore retry_timeout and retry_max_times options and retry flushing forever.
                 */
                "retryForever"?: boolean;
                /**
                 * The maximum interval (seconds) for exponential backoff between retries while failing
                 */
                "retryMaxInterval"?: string;
                /**
                 * The maximum number of times to retry to flush the failed chunks. Default: none
                 */
                "retryMaxTimes"?: number;
                /**
                 * If true, the output plugin will retry after randomized interval not to do burst retries
                 */
                "retryRandomize"?: boolean;
                /**
                 * The ratio of retry_timeout to switch to use the secondary while failing.
                 */
                "retrySecondaryThreshold"?: string;
                /**
                 * Retry parameters The maximum time (seconds) to retry to flush again the failed chunks, until the plugin discards the buffer chunks
                 */
                "retryTimeout"?: string;
                /**
                 * Output plugin will retry periodically with fixed intervals.
                 */
                "retryType"?: string;
                /**
                 * Wait in seconds before the next retry to flush or constant factor of exponential backoff
                 */
                "retryWait"?: string;
                /**
                 * The output plugins group events into chunks. Chunk keys, specified as the argument of <buffer> section, control how to group events into chunks. If tag is empty, which means blank Chunk Keys. Tag also supports Nested Field, combination of Chunk Keys, placeholders, etc. See https://docs.fluentd.org/configuration/buffer-section.
                 */
                "tag"?: string;
                /**
                 * Process value according to the specified format. This is available only when time_type is string
                 */
                "timeFormat"?: string;
                /**
                 * 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.
                 */
                "timeFormatFallbacks"?: string;
                /**
                 * parses/formats value according to this type, default is string
                 */
                "timeType"?: "float" | "unixtime" | "string" | "mixed";
                /**
                 * Output plugin will flush chunks per specified time (enabled when time is specified in chunk keys)
                 */
                "timekey"?: string;
                /**
                 * Output plugin will write chunks after timekey_wait seconds later after timekey expiration
                 */
                "timekeyWait"?: string;
                /**
                 * Uses the specified timezone.
                 */
                "timezone"?: string;
                /**
                 * The size limitation of this buffer plugin instance Default: 512MB (memory) / 64GB (file)
                 */
                "totalLimitSize"?: string;
                /**
                 * The @type parameter specifies the type of the plugin.
                 */
                "type": "file" | "memory" | "file_single";
                /**
                 * If true, uses UTC.
                 */
                "utc"?: boolean;
            };
            /**
             * out_cloudwatch plugin
             */
            "cloudWatch"?: {
                "autoCreateStream"?: boolean;
                "awsEcsAuthentication"?: boolean;
                /**
                 * Secret defines the key of a value.
                 */
                "awsKeyId"?: {
                    /**
                     * ValueSource defines how to find a value's key.
                     */
                    "valueFrom"?: {
                        /**
                         * Selects a key of a secret in the pod's namespace
                         */
                        "secretKeyRef"?: {
                            /**
                             * The key of the secret to select from.  Must be a valid secret key.
                             */
                            "key": string;
                            /**
                             * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                             */
                            "name"?: string;
                            /**
                             * Specify whether the Secret or its key must be defined
                             */
                            "optional"?: boolean;
                        };
                    };
                };
                /**
                 * Secret defines the key of a value.
                 */
                "awsSecKey"?: {
                    /**
                     * ValueSource defines how to find a value's key.
                     */
                    "valueFrom"?: {
                        /**
                         * Selects a key of a secret in the pod's namespace
                         */
                        "secretKeyRef"?: {
                            /**
                             * The key of the secret to select from.  Must be a valid secret key.
                             */
                            "key": string;
                            /**
                             * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                             */
                            "name"?: string;
                            /**
                             * Specify whether the Secret or its key must be defined
                             */
                            "optional"?: boolean;
                        };
                    };
                };
                "awsStsDurationSeconds"?: string;
                "awsStsEndpointUrl"?: string;
                "awsStsExternalId"?: string;
                "awsStsPolicy"?: string;
                "awsStsRoleArn"?: string;
                "awsStsSessionName"?: string;
                "awsUseSts"?: boolean;
                "concurrency"?: number;
                "durationSeconds"?: string;
                /**
                 * Specify an AWS endpoint to send data to.
                 */
                "endpoint"?: string;
                "httpProxy"?: string;
                "includeTimeKey"?: boolean;
                "jsonHandler"?: string;
                "localtime"?: boolean;
                "logGroupAwsTags"?: string;
                "logGroupAwsTagsKey"?: string;
                "logGroupName"?: string;
                "logGroupNameKey"?: string;
                "logRejectedRequest"?: string;
                "logStreamName"?: string;
                "logStreamNameKey"?: string;
                "maxEventsPerBatch"?: string;
                "maxMessageLength"?: string;
                "messageKeys"?: string;
                "policy"?: string;
                "putLogEventsDisableRetryLimit"?: boolean;
                "putLogEventsRetryLimit"?: string;
                "putLogEventsRetryWait"?: string;
                /**
                 * The AWS region.
                 */
                "region"?: string;
                "removeLogGroupAwsTagsKey"?: boolean;
                "removeLogGroupNameKey"?: boolean;
                "removeLogStreamNameKey"?: boolean;
                "removeRetentionInDaysKey"?: boolean;
                "retentionInDays"?: string;
                "retentionInDaysKey"?: string;
                /**
                 * ARN of an IAM role to assume (for cross account access).
                 */
                "roleArn"?: string;
                /**
                 * Role Session name
                 */
                "roleSessionName"?: string;
                "sslVerifyPeer"?: boolean;
                "useTagAsGroup"?: string;
                "useTagAsStream"?: string;
                /**
                 * Web identity token file
                 */
                "webIdentityTokenFile"?: string;
            };
            /**
             * Custom plugin type
             */
            "customPlugin"?: {
                "config": string;
            };
            /**
             * datadog plugin
             */
            "datadog"?: {
                /**
                 * This parameter is required in order to authenticate your fluent agent.
                 */
                "apiKey"?: {
                    /**
                     * ValueSource defines how to find a value's key.
                     */
                    "valueFrom"?: {
                        /**
                         * Selects a key of a secret in the pod's namespace
                         */
                        "secretKeyRef"?: {
                            /**
                             * The key of the secret to select from.  Must be a valid secret key.
                             */
                            "key": string;
                            /**
                             * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                             */
                            "name"?: string;
                            /**
                             * Specify whether the Secret or its key must be defined
                             */
                            "optional"?: boolean;
                        };
                    };
                };
                /**
                 * Set the log compression level for HTTP (1 to 9, 9 being the best ratio)
                 */
                "compressionLevel"?: number;
                /**
                 * Used by Datadog to identify the host submitting the logs.
                 */
                "ddHostname"?: string;
                /**
                 * This tells Datadog what integration it is
                 */
                "ddSource"?: string;
                /**
                 * Multiple value attribute. Can be used to refine the source attribute
                 */
                "ddSourcecategory"?: string;
                /**
                 * Custom tags with the following format "key1:value1, key2:value2"
                 */
                "ddTags"?: string;
                /**
                 * Proxy endpoint when logs are not directly forwarded to Datadog
                 */
                "host"?: string;
                /**
                 * HTTP proxy, only takes effect if HTTP forwarding is enabled (use_http). Defaults to HTTP_PROXY/http_proxy env vars.
                 */
                "httpProxy"?: string;
                /**
                 * Automatically include the Fluentd tag in the record.
                 */
                "includeTagKey"?: boolean;
                /**
                 * The maximum time waited between each retry in seconds
                 */
                "maxBackoff"?: number;
                /**
                 * The number of retries before the output plugin stops. Set to -1 for unlimited retries
                 */
                "maxRetries"?: number;
                /**
                 * Disable SSL validation (useful for proxy forwarding)
                 */
                "noSSLValidation"?: boolean;
                /**
                 * Proxy port when logs are not directly forwarded to Datadog and ssl is not used
                 */
                "port"?: number;
                /**
                 * Used by Datadog to correlate between logs, traces and metrics.
                 */
                "service"?: string;
                /**
                 * 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.
                 */
                "sslPort"?: number;
                /**
                 * Where to store the Fluentd tag.
                 */
                "tagKey"?: string;
                /**
                 * Name of the attribute which will contain timestamp of the log event. If nil, timestamp attribute is not added.
                 */
                "timestampKey"?: string;
                /**
                 * Enable log compression for HTTP
                 */
                "useCompression"?: boolean;
                /**
                 * Enable HTTP forwarding. If you disable it, make sure to change the port to 10514 or ssl_port to 10516
                 */
                "useHTTP"?: boolean;
                /**
                 * Event format, if true, the event is sent in json format. Othwerwise, in plain text.
                 */
                "useJson"?: boolean;
                /**
                 * If true, the agent initializes a secure connection to Datadog. In clear TCP otherwise.
                 */
                "useSSL"?: boolean;
            };
            /**
             * out_es plugin
             */
            "elasticsearch"?: {
                /**
                 * The hostname of your Elasticsearch node (default: localhost).
                 */
                "host"?: string;
                /**
                 * Hosts defines a list of hosts if you want to connect to more than one Elasticsearch nodes
                 */
                "hosts"?: string;
                /**
                 * IndexName defines the placeholder syntax of Fluentd plugin API. See https://docs.fluentd.org/configuration/buffer-section.
                 */
                "indexName"?: string;
                /**
                 * If true, Fluentd uses the conventional index name format logstash-%Y.%m.%d (default: false). This option supersedes the index_name option.
                 */
                "logstashFormat"?: boolean;
                /**
                 * LogstashPrefix defines the logstash prefix index name to write events when logstash_format is true (default: logstash).
                 */
                "logstashPrefix"?: string;
                /**
                 * Optional, The login credentials to connect to Elasticsearch
                 */
                "password"?: {
                    /**
                     * ValueSource defines how to find a value's key.
                     */
                    "valueFrom"?: {
                        /**
                         * Selects a key of a secret in the pod's namespace
                         */
                        "secretKeyRef"?: {
                            /**
                             * The key of the secret to select from.  Must be a valid secret key.
                             */
                            "key": string;
                            /**
                             * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                             */
                            "name"?: string;
                            /**
                             * Specify whether the Secret or its key must be defined
                             */
                            "optional"?: boolean;
                        };
                    };
                };
                /**
                 * Path defines the REST API endpoint of Elasticsearch to post write requests (default: nil).
                 */
                "path"?: string;
                /**
                 * The port number of your Elasticsearch node (default: 9200).
                 */
                "port"?: number;
                /**
                 * Specify https if your Elasticsearch endpoint supports SSL (default: http).
                 */
                "scheme"?: string;
                /**
                 * Optional, The login credentials to connect to Elasticsearch
                 */
                "user"?: {
                    /**
                     * ValueSource defines how to find a value's key.
                     */
                    "valueFrom"?: {
                        /**
                         * Selects a key of a secret in the pod's namespace
                         */
                        "secretKeyRef"?: {
                            /**
                             * The key of the secret to select from.  Must be a valid secret key.
                             */
                            "key": string;
                            /**
                             * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                             */
                            "name"?: string;
                            /**
                             * Specify whether the Secret or its key must be defined
                             */
                            "optional"?: boolean;
                        };
                    };
                };
            };
            /**
             * format section
             */
            "format"?: {
                /**
                 * Delimiter for each field.
                 */
                "delimiter"?: string;
                /**
                 * The @id parameter specifies a unique name for the configuration.
                 */
                "id"?: string;
                /**
                 * If true, uses local time.
                 */
                "localtime"?: boolean;
                /**
                 * The @log_level parameter specifies the plugin-specific logging level
                 */
                "logLevel"?: string;
                /**
                 * Specify newline characters.
                 */
                "newline"?: "lf" | "crlf";
                /**
                 * Output tag field if true.
                 */
                "outputTag"?: boolean;
                /**
                 * Output time field if true.
                 */
                "outputTime"?: boolean;
                /**
                 * Process value according to the specified format. This is available only when time_type is string
                 */
                "timeFormat"?: string;
                /**
                 * 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.
                 */
                "timeFormatFallbacks"?: string;
                /**
                 * parses/formats value according to this type, default is string
                 */
                "timeType"?: "float" | "unixtime" | "string" | "mixed";
                /**
                 * Uses the specified timezone.
                 */
                "timezone"?: string;
                /**
                 * The @type parameter specifies the type of the plugin.
                 */
                "type"?: "out_file" | "json" | "ltsv" | "csv" | "msgpack" | "hash" | "single_value";
                /**
                 * If true, uses UTC.
                 */
                "utc"?: boolean;
            };
            /**
             * out_forward plugin
             */
            "forward"?: {
                /**
                 * This option is used when require_ack_response is true. This default value is based on popular tcp_syn_retries.
                 */
                "ackResponseTimeout"?: string;
                /**
                 * The connection timeout for the socket. When the connection is timed out during the connection establishment, Errno::ETIMEDOUT error is raised.
                 */
                "connectTimeout"?: string;
                /**
                 * Enable client-side DNS round robin. Uniform randomly pick an IP address to send data when a hostname has several IP addresses. heartbeat_type udp is not available with dns_round_robintrue. Use heartbeat_type tcp or heartbeat_type none.
                 */
                "dnsRoundRobin"?: boolean;
                /**
                 * Sets TTL to expire DNS cache in seconds. Set 0 not to use DNS Cache.
                 */
                "expireDnsCache"?: string;
                /**
                 * The hard timeout used to detect server failure. The default value is equal to the send_timeout parameter.
                 */
                "hardTimeout"?: string;
                /**
                 * The interval of the heartbeat packer.
                 */
                "heartbeatInterval"?: string;
                /**
                 * Specifies the transport protocol for heartbeats. Set none to disable.
                 */
                "heartbeatType"?: "transport" | "tcp" | "udp" | "none";
                /**
                 * Ignores DNS resolution and errors at startup time.
                 */
                "ignoreNetworkErrorsAtStartup"?: boolean;
                /**
                 * Enables the keepalive connection.
                 */
                "keepalive"?: boolean;
                /**
                 * Timeout for keepalive. Default value is nil which means to keep the connection alive as long as possible.
                 */
                "keepaliveTimeout"?: string;
                /**
                 * Use the "Phi accrual failure detector" to detect server failure.
                 */
                "phiFailureDetector"?: boolean;
                /**
                 * The threshold parameter used to detect server faults.
                 */
                "phiThreshold"?: number;
                /**
                 * The wait time before accepting a server fault recovery.
                 */
                "recoverWait"?: string;
                /**
                 * Changes the protocol to at-least-once. The plugin waits the ack from destination's in_forward plugin.
                 */
                "requireAckResponse"?: boolean;
                /**
                 * ServiceDiscovery defines the security section
                 */
                "security"?: {
                    /**
                     * Allows the anonymous source. <client> sections are required, if disabled.
                     */
                    "allowAnonymousSource"?: string;
                    /**
                     * The hostname.
                     */
                    "selfHostname"?: string;
                    /**
                     * The shared key for authentication.
                     */
                    "sharedKey"?: string;
                    /**
                     * Defines user section directly.
                     */
                    "user"?: {
                        /**
                         * Secret defines the key of a value.
                         */
                        "password"?: {
                            /**
                             * ValueSource defines how to find a value's key.
                             */
                            "valueFrom"?: {
                                /**
                                 * Selects a key of a secret in the pod's namespace
                                 */
                                "secretKeyRef"?: {
                                    /**
                                     * The key of the secret to select from.  Must be a valid secret key.
                                     */
                                    "key": string;
                                    /**
                                     * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                                     */
                                    "name"?: string;
                                    /**
                                     * Specify whether the Secret or its key must be defined
                                     */
                                    "optional"?: boolean;
                                };
                            };
                        };
                        /**
                         * Secret defines the key of a value.
                         */
                        "username"?: {
                            /**
                             * ValueSource defines how to find a value's key.
                             */
                            "valueFrom"?: {
                                /**
                                 * Selects a key of a secret in the pod's namespace
                                 */
                                "secretKeyRef"?: {
                                    /**
                                     * The key of the secret to select from.  Must be a valid secret key.
                                     */
                                    "key": string;
                                    /**
                                     * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                                     */
                                    "name"?: string;
                                    /**
                                     * Specify whether the Secret or its key must be defined
                                     */
                                    "optional"?: boolean;
                                };
                            };
                        };
                    };
                    /**
                     * If true, user-based authentication is used.
                     */
                    "userAuth"?: string;
                };
                /**
                 * The timeout time when sending event logs.
                 */
                "sendTimeout"?: string;
                /**
                 * Servers defines the servers section, at least one is required
                 */
                "servers": Array<{
                    /**
                     * Host defines the IP address or host name of the server.
                     */
                    "host"?: string;
                    /**
                     * The @id parameter specifies a unique name for the configuration.
                     */
                    "id"?: string;
                    /**
                     * The @log_level parameter specifies the plugin-specific logging level
                     */
                    "logLevel"?: string;
                    /**
                     * Name defines the name of the server. Used for logging and certificate verification in TLS transport (when the host is the address).
                     */
                    "name"?: string;
                    /**
                     * Password defines the password for authentication.
                     */
                    "password"?: {
                        /**
                         * ValueSource defines how to find a value's key.
                         */
                        "valueFrom"?: {
                            /**
                             * Selects a key of a secret in the pod's namespace
                             */
                            "secretKeyRef"?: {
                                /**
                                 * The key of the secret to select from.  Must be a valid secret key.
                                 */
                                "key": string;
                                /**
                                 * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                                 */
                                "name"?: string;
                                /**
                                 * Specify whether the Secret or its key must be defined
                                 */
                                "optional"?: boolean;
                            };
                        };
                    };
                    /**
                     * 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.
                     */
                    "port"?: string;
                    /**
                     * SharedKey defines the shared key per server.
                     */
                    "sharedKey"?: string;
                    /**
                     * Standby marks a node as the standby node for an Active-Standby model between Fluentd nodes.
                     */
                    "standby"?: string;
                    /**
                     * The @type parameter specifies the type of the plugin.
                     */
                    "type"?: string;
                    /**
                     * Username defines the username for authentication.
                     */
                    "username"?: {
                        /**
                         * ValueSource defines how to find a value's key.
                         */
                        "valueFrom"?: {
                            /**
                             * Selects a key of a secret in the pod's namespace
                             */
                            "secretKeyRef"?: {
                                /**
                                 * The key of the secret to select from.  Must be a valid secret key.
                                 */
                                "key": string;
                                /**
                                 * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                                 */
                                "name"?: string;
                                /**
                                 * Specify whether the Secret or its key must be defined
                                 */
                                "optional"?: boolean;
                            };
                        };
                    };
                    /**
                     * Weight defines the load balancing weight
                     */
                    "weight"?: string;
                }>;
                /**
                 * ServiceDiscovery defines the service_discovery section
                 */
                "serviceDiscovery"?: {
                    /**
                     * The encoding of the configuration file.
                     */
                    "confEncoding"?: string;
                    /**
                     * DnsLookup resolves the hostname to IP address of the SRV's Target.
                     */
                    "dnsLookup"?: string;
                    /**
                     * DnsServerHost defines the hostname of the DNS server to request the SRV record.
                     */
                    "dnsServerHost"?: string;
                    /**
                     * The name in RFC2782.
                     */
                    "hostname"?: string;
                    /**
                     * The @id parameter specifies a unique name for the configuration.
                     */
                    "id"?: string;
                    /**
                     * Interval defines the interval of sending requests to DNS server.
                     */
                    "interval"?: string;
                    /**
                     * The @log_level parameter specifies the plugin-specific logging level
                     */
                    "logLevel"?: string;
                    /**
                     * The path of the target list. Default is '/etc/fluent/sd.yaml'
                     */
                    "path"?: string;
                    /**
                     * Proto without the underscore in RFC2782.
                     */
                    "proto"?: string;
                    /**
                     * The server section of this plugin
                     */
                    "server"?: {
                        /**
                         * Host defines the IP address or host name of the server.
                         */
                        "host"?: string;
                        /**
                         * The @id parameter specifies a unique name for the configuration.
                         */
                        "id"?: string;
                        /**
                         * The @log_level parameter specifies the plugin-specific logging level
                         */
                        "logLevel"?: string;
                        /**
                         * Name defines the name of the server. Used for logging and certificate verification in TLS transport (when the host is the address).
                         */
                        "name"?: string;
                        /**
                         * Password defines the password for authentication.
                         */
                        "password"?: {
                            /**
                             * ValueSource defines how to find a value's key.
                             */
                            "valueFrom"?: {
                                /**
                                 * Selects a key of a secret in the pod's namespace
                                 */
                                "secretKeyRef"?: {
                                    /**
                                     * The key of the secret to select from.  Must be a valid secret key.
                                     */
                                    "key": string;
                                    /**
                                     * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                                     */
                                    "name"?: string;
                                    /**
                                     * Specify whether the Secret or its key must be defined
                                     */
                                    "optional"?: boolean;
                                };
                            };
                        };
                        /**
                         * 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.
                         */
                        "port"?: string;
                        /**
                         * SharedKey defines the shared key per server.
                         */
                        "sharedKey"?: string;
                        /**
                         * Standby marks a node as the standby node for an Active-Standby model between Fluentd nodes.
                         */
                        "standby"?: string;
                        /**
                         * The @type parameter specifies the type of the plugin.
                         */
                        "type"?: string;
                        /**
                         * Username defines the username for authentication.
                         */
                        "username"?: {
                            /**
                             * ValueSource defines how to find a value's key.
                             */
                            "valueFrom"?: {
                                /**
                                 * Selects a key of a secret in the pod's namespace
                                 */
                                "secretKeyRef"?: {
                                    /**
                                     * The key of the secret to select from.  Must be a valid secret key.
                                     */
                                    "key": string;
                                    /**
                                     * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                                     */
                                    "name"?: string;
                                    /**
                                     * Specify whether the Secret or its key must be defined
                                     */
                                    "optional"?: boolean;
                                };
                            };
                        };
                        /**
                         * Weight defines the load balancing weight
                         */
                        "weight"?: string;
                    };
                    /**
                     * Service without the underscore in RFC2782.
                     */
                    "service"?: string;
                    /**
                     * The @type parameter specifies the type of the plugin.
                     */
                    "type": "static" | "file" | "srv";
                };
                /**
                 * Allows self-signed certificates or not.
                 */
                "tlsAllowSelfSignedCert"?: boolean;
                /**
                 * The certificate logical store name on Windows system certstore. This parameter is for Windows only.
                 */
                "tlsCertLogicalStoreName"?: string;
                /**
                 * The additional CA certificate path for TLS.
                 */
                "tlsCertPath"?: string;
                /**
                 * The certificate thumbprint for searching from Windows system certstore. This parameter is for Windows only.
                 */
                "tlsCertThumbprint"?: string;
                /**
                 * Enables the certificate enterprise store on Windows system certstore. This parameter is for Windows only.
                 */
                "tlsCertUseEnterpriseStore"?: boolean;
                /**
                 * The cipher configuration of TLS transport.
                 */
                "tlsCiphers"?: string;
                /**
                 * The client certificate path for TLS.
                 */
                "tlsClientCertPath"?: string;
                /**
                 * The TLS private key passphrase for the client.
                 */
                "tlsClientPrivateKeyPassphrase"?: string;
                /**
                 * The client private key path for TLS.
                 */
                "tlsClientPrivateKeyPath"?: string;
                /**
                 * Skips all verification of certificates or not.
                 */
                "tlsInsecureMode"?: boolean;
                /**
                 * Verifies hostname of servers and certificates or not in TLS transport.
                 */
                "tlsVerifyHostname"?: boolean;
                /**
                 * The default version of TLS transport.
                 */
                "tlsVersion"?: "TLSv1_1" | "TLSv1_2";
                /**
                 * Verify that a connection can be made with one of out_forward nodes at the time of startup.
                 */
                "verifyConnectionAtStartup"?: boolean;
            };
            /**
             * out_http plugin
             */
            "http"?: {
                /**
                 * Auth section for this plugin
                 */
                "auth"?: {
                    /**
                     * The method for HTTP authentication. Now only basic.
                     */
                    "auth"?: string;
                    /**
                     * The password for basic authentication.
                     */
                    "password"?: {
                        /**
                         * ValueSource defines how to find a value's key.
                         */
                        "valueFrom"?: {
                            /**
                             * Selects a key of a secret in the pod's namespace
                             */
                            "secretKeyRef"?: {
                                /**
                                 * The key of the secret to select from.  Must be a valid secret key.
                                 */
                                "key": string;
                                /**
                                 * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                                 */
                                "name"?: string;
                                /**
                                 * Specify whether the Secret or its key must be defined
                                 */
                                "optional"?: boolean;
                            };
                        };
                    };
                    /**
                     * The username for basic authentication.
                     */
                    "username"?: {
                        /**
                         * ValueSource defines how to find a value's key.
                         */
                        "valueFrom"?: {
                            /**
                             * Selects a key of a secret in the pod's namespace
                             */
                            "secretKeyRef"?: {
                                /**
                                 * The key of the secret to select from.  Must be a valid secret key.
                                 */
                                "key": string;
                                /**
                                 * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                                 */
                                "name"?: string;
                                /**
                                 * Specify whether the Secret or its key must be defined
                                 */
                                "optional"?: boolean;
                            };
                        };
                    };
                };
                /**
                 * ContentType defines Content-Type for HTTP request. out_http automatically set Content-Type for built-in formatters when this parameter is not specified.
                 */
                "contentType"?: string;
                /**
                 * Endpoint defines the endpoint for HTTP request. If you want to use HTTPS, use https prefix.
                 */
                "endpoint"?: string;
                /**
                 * Raise UnrecoverableError when the response code is not SUCCESS.
                 */
                "errorResponseAsUnrecoverable"?: boolean;
                /**
                 * Headers defines the additional headers for HTTP request.
                 */
                "headers"?: string;
                /**
                 * Additional placeholder based headers for HTTP request. If you want to use tag or record field, use this parameter instead of headers.
                 */
                "headersFromPlaceholders"?: string;
                /**
                 * HttpMethod defines the method for HTTP request.
                 */
                "httpMethod"?: "post" | "put";
                /**
                 * JsonArray defines whether to use the array format of JSON or not
                 */
                "jsonArray"?: boolean;
                /**
                 * OpenTimeout defines the connection open timeout in seconds.
                 */
                "openTimeout"?: number;
                /**
                 * Proxy defines the proxy for HTTP request.
                 */
                "proxy"?: string;
                /**
                 * ReadTimeout defines the read timeout in seconds.
                 */
                "readTimeout"?: number;
                /**
                 * The list of retryable response codes. If the response code is included in this list, out_http retries the buffer flush.
                 */
                "retryableResponseCodes"?: string;
                /**
                 * SslTimeout defines the TLS timeout in seconds.
                 */
                "sslTimeout"?: number;
                /**
                 * TlsCaCertPath defines the CA certificate path for TLS.
                 */
                "tlsCaCertPath"?: string;
                /**
                 * TlsCiphers defines the cipher suites configuration of TLS.
                 */
                "tlsCiphers"?: string;
                /**
                 * TlsClientCertPath defines the client certificate path for TLS.
                 */
                "tlsClientCertPath"?: string;
                /**
                 * TlsPrivateKeyPassphrase defines the client private key passphrase for TLS.
                 */
                "tlsPrivateKeyPassphrase"?: string;
                /**
                 * TlsPrivateKeyPath defines the client private key path for TLS.
                 */
                "tlsPrivateKeyPath"?: string;
                /**
                 * TlsVerifyMode defines the verify mode of TLS.
                 */
                "tlsVerifyMode"?: "peer" | "none";
                /**
                 * TlsVersion defines the default version of TLS transport.
                 */
                "tlsVersion"?: "TLSv1_1" | "TLSv1_2";
            };
            /**
             * inject section
             */
            "inject"?: {
                /**
                 * Hostname value
                 */
                "hostname"?: string;
                /**
                 * The field name to inject hostname
                 */
                "hostnameKey"?: string;
                /**
                 * Time section
                 */
                "inline"?: {
                    /**
                     * If true, uses local time.
                     */
                    "localtime"?: boolean;
                    /**
                     * Process value according to the specified format. This is available only when time_type is string
                     */
                    "timeFormat"?: string;
                    /**
                     * 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.
                     */
                    "timeFormatFallbacks"?: string;
                    /**
                     * parses/formats value according to this type, default is string
                     */
                    "timeType"?: "float" | "unixtime" | "string" | "mixed";
                    /**
                     * Uses the specified timezone.
                     */
                    "timezone"?: string;
                    /**
                     * If true, uses UTC.
                     */
                    "utc"?: boolean;
                };
                /**
                 * The field name to inject tag
                 */
                "tagKey"?: string;
                /**
                 * The field name to inject time
                 */
                "timeKey"?: string;
                /**
                 * The field name to inject worker_id
                 */
                "workerIdKey"?: string;
            };
            /**
             * out_kafka plugin
             */
            "kafka"?: {
                /**
                 * The list of all seed brokers, with their host and port information. Default: localhost:9092
                 */
                "brokers"?: string;
                /**
                 * The codec the producer uses to compress messages (default: nil).
                 */
                "compressionCodec"?: "gzip" | "snappy";
                /**
                 * The name of the default topic. (default: nil)
                 */
                "defaultTopic"?: string;
                /**
                 * The number of acks required per request.
                 */
                "requiredAcks"?: number;
                /**
                 * The field name for the target topic. If the field value is app, this plugin writes events to the app topic.
                 */
                "topicKey"?: string;
                /**
                 * Set fluentd event time to Kafka's CreateTime.
                 */
                "useEventTime"?: boolean;
            };
            /**
             * The @log_level parameter specifies the plugin-specific logging level
             */
            "logLevel"?: string;
            /**
             * out_loki plugin
             */
            "loki"?: {
                /**
                 * If a record only has 1 key, then just set the log line to the value and discard the key.
                 */
                "dropSingleKey"?: boolean;
                /**
                 * If set to true, it will add all Kubernetes labels to the Stream labels.
                 */
                "extractKubernetesLabels"?: boolean;
                /**
                 * Password for user defined in HTTP_User Set HTTP basic authentication password
                 */
                "httpPassword"?: {
                    /**
                     * ValueSource defines how to find a value's key.
                     */
                    "valueFrom"?: {
                        /**
                         * Selects a key of a secret in the pod's namespace
                         */
                        "secretKeyRef"?: {
                            /**
                             * The key of the secret to select from.  Must be a valid secret key.
                             */
                            "key": string;
                            /**
                             * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                             */
                            "name"?: string;
                            /**
                             * Specify whether the Secret or its key must be defined
                             */
                            "optional"?: boolean;
                        };
                    };
                };
                /**
                 * Set HTTP basic authentication user name.
                 */
                "httpUser"?: {
                    /**
                     * ValueSource defines how to find a value's key.
                     */
                    "valueFrom"?: {
                        /**
                         * Selects a key of a secret in the pod's namespace
                         */
                        "secretKeyRef"?: {
                            /**
                             * The key of the secret to select from.  Must be a valid secret key.
                             */
                            "key": string;
                            /**
                             * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                             */
                            "name"?: string;
                            /**
                             * Specify whether the Secret or its key must be defined
                             */
                            "optional"?: boolean;
                        };
                    };
                };
                /**
                 * Whether or not to include the fluentd_thread label when multiple threads are used for flushing
                 */
                "includeThreadLabel"?: boolean;
                /**
                 * Disable certificate validation
                 */
                "insecure"?: boolean;
                /**
                 * Optional list of record keys that will be placed as stream labels. This configuration property is for records key only.
                 */
                "labelKeys"?: Array<string>;
                /**
                 * Stream labels for API request. It can be multiple comma separated of strings specifying  key=value pairs. In addition to fixed parameters, it also allows to add custom record keys (similar to label_keys property).
                 */
                "labels"?: Array<string>;
                /**
                 * Format to use when flattening the record to a log line. Valid values are json or key_value. If set to json,  the log line sent to Loki will be the Fluentd record dumped as JSON. If set to key_value, the log line will be each item in the record concatenated together (separated by a single space) in the format.
                 */
                "lineFormat"?: "json" | "key_value";
                /**
                 * Optional list of record keys that will be removed from stream labels. This configuration property is for records key only.
                 */
                "removeKeys"?: Array<string>;
                /**
                 * Tenant ID used by default to push logs to Loki. If omitted or empty it assumes Loki is running in single-tenant mode and no X-Scope-OrgID header is sent.
                 */
                "tenantID"?: {
                    /**
                     * ValueSource defines how to find a value's key.
                     */
                    "valueFrom"?: {
                        /**
                         * Selects a key of a secret in the pod's namespace
                         */
                        "secretKeyRef"?: {
                            /**
                             * The key of the secret to select from.  Must be a valid secret key.
                             */
                            "key": string;
                            /**
                             * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                             */
                            "name"?: string;
                            /**
                             * Specify whether the Secret or its key must be defined
                             */
                            "optional"?: boolean;
                        };
                    };
                };
                /**
                 * TlsCaCert defines the CA certificate file for TLS.
                 */
                "tlsCaCertFile"?: string;
                /**
                 * TlsClientCert defines the client certificate file for TLS.
                 */
                "tlsClientCertFile"?: string;
                /**
                 * TlsPrivateKey defines the client private key file for TLS.
                 */
                "tlsPrivateKeyFile"?: string;
                /**
                 * Loki URL.
                 */
                "url": string;
            };
            /**
             * out_opensearch plugin
             */
            "opensearch"?: {
                /**
                 * The hostname of your Opensearch node (default: localhost).
                 */
                "host"?: string;
                /**
                 * Hosts defines a list of hosts if you want to connect to more than one Openearch nodes
                 */
                "hosts"?: string;
                /**
                 * IndexName defines the placeholder syntax of Fluentd plugin API. See https://docs.fluentd.org/configuration/buffer-section.
                 */
                "indexName"?: string;
                /**
                 * If true, Fluentd uses the conventional index name format logstash-%Y.%m.%d (default: false). This option supersedes the index_name option.
                 */
                "logstashFormat"?: boolean;
                /**
                 * LogstashPrefix defines the logstash prefix index name to write events when logstash_format is true (default: logstash).
                 */
                "logstashPrefix"?: string;
                /**
                 * Optional, The login credentials to connect to Opensearch
                 */
                "password"?: {
                    /**
                     * ValueSource defines how to find a value's key.
                     */
                    "valueFrom"?: {
                        /**
                         * Selects a key of a secret in the pod's namespace
                         */
                        "secretKeyRef"?: {
                            /**
                             * The key of the secret to select from.  Must be a valid secret key.
                             */
                            "key": string;
                            /**
                             * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                             */
                            "name"?: string;
                            /**
                             * Specify whether the Secret or its key must be defined
                             */
                            "optional"?: boolean;
                        };
                    };
                };
                /**
                 * Path defines the REST API endpoint of Opensearch to post write requests (default: nil).
                 */
                "path"?: string;
                /**
                 * The port number of your Opensearch node (default: 9200).
                 */
                "port"?: number;
                /**
                 * Specify https if your Opensearch endpoint supports SSL (default: http).
                 */
                "scheme"?: string;
                /**
                 * Optional, The login credentials to connect to Opensearch
                 */
                "user"?: {
                    /**
                     * ValueSource defines how to find a value's key.
                     */
                    "valueFrom"?: {
                        /**
                         * Selects a key of a secret in the pod's namespace
                         */
                        "secretKeyRef"?: {
                            /**
                             * The key of the secret to select from.  Must be a valid secret key.
                             */
                            "key": string;
                            /**
                             * Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
                             */
                            "name"?: string;
                            /**
                             * Specify whether the Secret or its key must be defined
                             */
                            "optional"?: boolean;
                        };
                    };
                };
            };
            /**
             * out_s3 plugin
             */
            "s3"?: {
                /**
                 * The AWS access key id.
                 */
                "awsKeyId"?: string;
                /**
                 * The AWS secret key.
                 */
                "awsSecKey"?: string;
                /**
                 * The path prefix of the files on S3.
                 */
                "path"?: string;
                /**
                 * The proxy URL.
                 */
                "proxyUri"?: string;
                /**
                 * The Amazon S3 bucket name.
                 */
                "s3Bucket"?: string;
                /**
                 * The actual S3 path. This is interpolated to the actual path.
                 */
                "s3ObjectKeyFormat"?: string;
                /**
                 * The Amazon S3 region name
                 */
                "s3Region"?: string;
                /**
                 * Verify the SSL certificate of the endpoint.
                 */
                "sslVerifyPeer"?: boolean;
                /**
                 * The compression type.
                 */
                "storeAs"?: "gzip" | "lzo" | "json" | "txt";
            };
            /**
             * out_stdout plugin
             */
            "stdout"?: {};
            /**
             * Which tag to be matched.
             */
            "tag"?: string;
        }>;
    };
    /**
     * OutputStatus defines the observed state of Output
     */
    "status"?: {};
}
/**
 * Output is the Schema for the outputs API
 */
export declare class Output extends Model<IOutput> implements IOutput {
    "apiVersion": IOutput["apiVersion"];
    "kind": IOutput["kind"];
    "metadata"?: IOutput["metadata"];
    "spec"?: IOutput["spec"];
    "status"?: IOutput["status"];
    static apiVersion: IOutput["apiVersion"];
    static kind: IOutput["kind"];
    static is: import("@kubernetes-models/base").TypeMetaGuard<IOutput>;
    constructor(data?: ModelData<IOutput>);
}
