# 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
from . import outputs

__all__ = [
    'LogsInputConfiguration',
    'LogsInputConfigurationFlowgger',
    'LogsInputConfigurationLogstash',
]

@pulumi.output_type
class LogsInputConfiguration(dict):
    def __init__(__self__, *,
                 flowgger: Optional['outputs.LogsInputConfigurationFlowgger'] = None,
                 logstash: Optional['outputs.LogsInputConfigurationLogstash'] = None):
        """
        :param 'LogsInputConfigurationFlowggerArgs' flowgger: Flowgger configuration
        :param '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['outputs.LogsInputConfigurationFlowgger']:
        """
        Flowgger configuration
        """
        return pulumi.get(self, "flowgger")

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


@pulumi.output_type
class LogsInputConfigurationFlowgger(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "logFormat":
            suggest = "log_format"
        elif key == "logFraming":
            suggest = "log_framing"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in LogsInputConfigurationFlowgger. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        LogsInputConfigurationFlowgger.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        LogsInputConfigurationFlowgger.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 log_format: builtins.str,
                 log_framing: builtins.str):
        """
        :param builtins.str log_format: Type of format to decode. One of "RFC5424", "LTSV", "GELF", "CAPNP"
        :param 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) -> builtins.str:
        """
        Type of format to decode. One of "RFC5424", "LTSV", "GELF", "CAPNP"
        """
        return pulumi.get(self, "log_format")

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


@pulumi.output_type
class LogsInputConfigurationLogstash(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "inputSection":
            suggest = "input_section"
        elif key == "filterSection":
            suggest = "filter_section"
        elif key == "patternSection":
            suggest = "pattern_section"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in LogsInputConfigurationLogstash. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        LogsInputConfigurationLogstash.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        LogsInputConfigurationLogstash.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 input_section: builtins.str,
                 filter_section: Optional[builtins.str] = None,
                 pattern_section: Optional[builtins.str] = None):
        """
        :param builtins.str input_section: The filter section of logstash.conf
        :param builtins.str filter_section: The filter section of logstash.conf
        :param 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) -> builtins.str:
        """
        The filter section of logstash.conf
        """
        return pulumi.get(self, "input_section")

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

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


