# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities
from . import outputs

__all__ = [
    'FindingsFilterFindingCriteria',
    'FindingsFilterFindingCriteriaCriterion',
    'S3BucketAssociationClassificationType',
]

@pulumi.output_type
class FindingsFilterFindingCriteria(dict):
    def __init__(__self__, *,
                 criterions: Optional[Sequence['outputs.FindingsFilterFindingCriteriaCriterion']] = None):
        """
        :param Sequence['FindingsFilterFindingCriteriaCriterionArgs'] criterions: A condition that specifies the property, operator, and one or more values to use to filter the results.  (documented below)
        """
        if criterions is not None:
            pulumi.set(__self__, "criterions", criterions)

    @property
    @pulumi.getter
    def criterions(self) -> Optional[Sequence['outputs.FindingsFilterFindingCriteriaCriterion']]:
        """
        A condition that specifies the property, operator, and one or more values to use to filter the results.  (documented below)
        """
        return pulumi.get(self, "criterions")


@pulumi.output_type
class FindingsFilterFindingCriteriaCriterion(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "eqExactMatches":
            suggest = "eq_exact_matches"

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

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

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

    def __init__(__self__, *,
                 field: str,
                 eq_exact_matches: Optional[Sequence[str]] = None,
                 eqs: Optional[Sequence[str]] = None,
                 gt: Optional[str] = None,
                 gte: Optional[str] = None,
                 lt: Optional[str] = None,
                 lte: Optional[str] = None,
                 neqs: Optional[Sequence[str]] = None):
        """
        :param str field: The name of the field to be evaluated.
        :param Sequence[str] eq_exact_matches: The value for the property exclusively matches (equals an exact match for) all the specified values. If you specify multiple values, Amazon Macie uses AND logic to join the values.
        :param Sequence[str] eqs: The value for the property matches (equals) the specified value. If you specify multiple values, Amazon Macie uses OR logic to join the values.
        :param str gt: The value for the property is greater than the specified value.
        :param str gte: The value for the property is greater than or equal to the specified value.
        :param str lt: The value for the property is less than the specified value.
        :param str lte: The value for the property is less than or equal to the specified value.
        :param Sequence[str] neqs: The value for the property doesn't match (doesn't equal) the specified value. If you specify multiple values, Amazon Macie uses OR logic to join the values.
        """
        pulumi.set(__self__, "field", field)
        if eq_exact_matches is not None:
            pulumi.set(__self__, "eq_exact_matches", eq_exact_matches)
        if eqs is not None:
            pulumi.set(__self__, "eqs", eqs)
        if gt is not None:
            pulumi.set(__self__, "gt", gt)
        if gte is not None:
            pulumi.set(__self__, "gte", gte)
        if lt is not None:
            pulumi.set(__self__, "lt", lt)
        if lte is not None:
            pulumi.set(__self__, "lte", lte)
        if neqs is not None:
            pulumi.set(__self__, "neqs", neqs)

    @property
    @pulumi.getter
    def field(self) -> str:
        """
        The name of the field to be evaluated.
        """
        return pulumi.get(self, "field")

    @property
    @pulumi.getter(name="eqExactMatches")
    def eq_exact_matches(self) -> Optional[Sequence[str]]:
        """
        The value for the property exclusively matches (equals an exact match for) all the specified values. If you specify multiple values, Amazon Macie uses AND logic to join the values.
        """
        return pulumi.get(self, "eq_exact_matches")

    @property
    @pulumi.getter
    def eqs(self) -> Optional[Sequence[str]]:
        """
        The value for the property matches (equals) the specified value. If you specify multiple values, Amazon Macie uses OR logic to join the values.
        """
        return pulumi.get(self, "eqs")

    @property
    @pulumi.getter
    def gt(self) -> Optional[str]:
        """
        The value for the property is greater than the specified value.
        """
        return pulumi.get(self, "gt")

    @property
    @pulumi.getter
    def gte(self) -> Optional[str]:
        """
        The value for the property is greater than or equal to the specified value.
        """
        return pulumi.get(self, "gte")

    @property
    @pulumi.getter
    def lt(self) -> Optional[str]:
        """
        The value for the property is less than the specified value.
        """
        return pulumi.get(self, "lt")

    @property
    @pulumi.getter
    def lte(self) -> Optional[str]:
        """
        The value for the property is less than or equal to the specified value.
        """
        return pulumi.get(self, "lte")

    @property
    @pulumi.getter
    def neqs(self) -> Optional[Sequence[str]]:
        """
        The value for the property doesn't match (doesn't equal) the specified value. If you specify multiple values, Amazon Macie uses OR logic to join the values.
        """
        return pulumi.get(self, "neqs")


@pulumi.output_type
class S3BucketAssociationClassificationType(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "oneTime":
            suggest = "one_time"

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

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

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

    def __init__(__self__, *,
                 continuous: Optional[str] = None,
                 one_time: Optional[str] = None):
        """
        :param str continuous: A string value indicating that Macie perform a one-time classification of all of the existing objects in the bucket.
               The only valid value is the default value, `FULL`.
        :param str one_time: A string value indicating whether or not Macie performs a one-time classification of all of the existing objects in the bucket.
               Valid values are `NONE` and `FULL`. Defaults to `NONE` indicating that Macie only classifies objects that are added after the association was created.
        """
        if continuous is not None:
            pulumi.set(__self__, "continuous", continuous)
        if one_time is not None:
            pulumi.set(__self__, "one_time", one_time)

    @property
    @pulumi.getter
    def continuous(self) -> Optional[str]:
        """
        A string value indicating that Macie perform a one-time classification of all of the existing objects in the bucket.
        The only valid value is the default value, `FULL`.
        """
        return pulumi.get(self, "continuous")

    @property
    @pulumi.getter(name="oneTime")
    def one_time(self) -> Optional[str]:
        """
        A string value indicating whether or not Macie performs a one-time classification of all of the existing objects in the bucket.
        Valid values are `NONE` and `FULL`. Defaults to `NONE` indicating that Macie only classifies objects that are added after the association was created.
        """
        return pulumi.get(self, "one_time")


