# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import builtins
import copy
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from .. import _utilities

__all__ = [
    'LogsInputConfigurationArgs',
    'LogsInputConfigurationArgsDict',
    'LogsInputConfigurationFlowggerArgs',
    'LogsInputConfigurationFlowggerArgsDict',
    'LogsInputConfigurationLogstashArgs',
    'LogsInputConfigurationLogstashArgsDict',
]

MYPY = False

if not MYPY:
    class LogsInputConfigurationArgsDict(TypedDict):
        flowgger: NotRequired[pulumi.Input['LogsInputConfigurationFlowggerArgsDict']]
        """
        Flowgger configuration
        """
        logstash: NotRequired[pulumi.Input['LogsInputConfigurationLogstashArgsDict']]
        """
        Logstash configuration
        """
elif False:
    LogsInputConfigurationArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class LogsInputConfigurationArgs:
    def __init__(__self__, *,
                 flowgger: Optional[pulumi.Input['LogsInputConfigurationFlowggerArgs']] = None,
                 logstash: Optional[pulumi.Input['LogsInputConfigurationLogstashArgs']] = None):
        """
        :param pulumi.Input['LogsInputConfigurationFlowggerArgs'] flowgger: Flowgger configuration
        :param pulumi.Input['LogsInputConfigurationLogstashArgs'] logstash: Logstash configuration
        """
        if flowgger is not None:
            pulumi.set(__self__, "flowgger", flowgger)
        if logstash is not None:
            pulumi.set(__self__, "logstash", logstash)

    @property
    @pulumi.getter
    def flowgger(self) -> Optional[pulumi.Input['LogsInputConfigurationFlowggerArgs']]:
        """
        Flowgger configuration
        """
        return pulumi.get(self, "flowgger")

    @flowgger.setter
    def flowgger(self, value: Optional[pulumi.Input['LogsInputConfigurationFlowggerArgs']]):
        pulumi.set(self, "flowgger", value)

    @property
    @pulumi.getter
    def logstash(self) -> Optional[pulumi.Input['LogsInputConfigurationLogstashArgs']]:
        """
        Logstash configuration
        """
        return pulumi.get(self, "logstash")

    @logstash.setter
    def logstash(self, value: Optional[pulumi.Input['LogsInputConfigurationLogstashArgs']]):
        pulumi.set(self, "logstash", value)


if not MYPY:
    class LogsInputConfigurationFlowggerArgsDict(TypedDict):
        log_format: pulumi.Input[builtins.str]
        """
        Type of format to decode. One of "RFC5424", "LTSV", "GELF", "CAPNP"
        """
        log_framing: pulumi.Input[builtins.str]
        """
        Indicates how messages are delimited. One of "LINE", "NUL", "SYSLEN", "CAPNP"
        """
elif False:
    LogsInputConfigurationFlowggerArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class LogsInputConfigurationFlowggerArgs:
    def __init__(__self__, *,
                 log_format: pulumi.Input[builtins.str],
                 log_framing: pulumi.Input[builtins.str]):
        """
        :param pulumi.Input[builtins.str] log_format: Type of format to decode. One of "RFC5424", "LTSV", "GELF", "CAPNP"
        :param pulumi.Input[builtins.str] log_framing: Indicates how messages are delimited. One of "LINE", "NUL", "SYSLEN", "CAPNP"
        """
        pulumi.set(__self__, "log_format", log_format)
        pulumi.set(__self__, "log_framing", log_framing)

    @property
    @pulumi.getter(name="logFormat")
    def log_format(self) -> pulumi.Input[builtins.str]:
        """
        Type of format to decode. One of "RFC5424", "LTSV", "GELF", "CAPNP"
        """
        return pulumi.get(self, "log_format")

    @log_format.setter
    def log_format(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "log_format", value)

    @property
    @pulumi.getter(name="logFraming")
    def log_framing(self) -> pulumi.Input[builtins.str]:
        """
        Indicates how messages are delimited. One of "LINE", "NUL", "SYSLEN", "CAPNP"
        """
        return pulumi.get(self, "log_framing")

    @log_framing.setter
    def log_framing(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "log_framing", value)


if not MYPY:
    class LogsInputConfigurationLogstashArgsDict(TypedDict):
        input_section: pulumi.Input[builtins.str]
        """
        The filter section of logstash.conf
        """
        filter_section: NotRequired[pulumi.Input[builtins.str]]
        """
        The filter section of logstash.conf
        """
        pattern_section: NotRequired[pulumi.Input[builtins.str]]
        """
        The list of customs Grok patterns
        """
elif False:
    LogsInputConfigurationLogstashArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class LogsInputConfigurationLogstashArgs:
    def __init__(__self__, *,
                 input_section: pulumi.Input[builtins.str],
                 filter_section: Optional[pulumi.Input[builtins.str]] = None,
                 pattern_section: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] input_section: The filter section of logstash.conf
        :param pulumi.Input[builtins.str] filter_section: The filter section of logstash.conf
        :param pulumi.Input[builtins.str] pattern_section: The list of customs Grok patterns
        """
        pulumi.set(__self__, "input_section", input_section)
        if filter_section is not None:
            pulumi.set(__self__, "filter_section", filter_section)
        if pattern_section is not None:
            pulumi.set(__self__, "pattern_section", pattern_section)

    @property
    @pulumi.getter(name="inputSection")
    def input_section(self) -> pulumi.Input[builtins.str]:
        """
        The filter section of logstash.conf
        """
        return pulumi.get(self, "input_section")

    @input_section.setter
    def input_section(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "input_section", value)

    @property
    @pulumi.getter(name="filterSection")
    def filter_section(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        The filter section of logstash.conf
        """
        return pulumi.get(self, "filter_section")

    @filter_section.setter
    def filter_section(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "filter_section", value)

    @property
    @pulumi.getter(name="patternSection")
    def pattern_section(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        The list of customs Grok patterns
        """
        return pulumi.get(self, "pattern_section")

    @pattern_section.setter
    def pattern_section(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "pattern_section", value)


