# 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

__all__ = [
    'FindingsFilterFindingCriteriaArgs',
    'FindingsFilterFindingCriteriaCriterionArgs',
    'S3BucketAssociationClassificationTypeArgs',
]

@pulumi.input_type
class FindingsFilterFindingCriteriaArgs:
    def __init__(__self__, *,
                 criterions: Optional[pulumi.Input[Sequence[pulumi.Input['FindingsFilterFindingCriteriaCriterionArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['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[pulumi.Input[Sequence[pulumi.Input['FindingsFilterFindingCriteriaCriterionArgs']]]]:
        """
        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")

    @criterions.setter
    def criterions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['FindingsFilterFindingCriteriaCriterionArgs']]]]):
        pulumi.set(self, "criterions", value)


@pulumi.input_type
class FindingsFilterFindingCriteriaCriterionArgs:
    def __init__(__self__, *,
                 field: pulumi.Input[str],
                 eq_exact_matches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 eqs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 gt: Optional[pulumi.Input[str]] = None,
                 gte: Optional[pulumi.Input[str]] = None,
                 lt: Optional[pulumi.Input[str]] = None,
                 lte: Optional[pulumi.Input[str]] = None,
                 neqs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        """
        :param pulumi.Input[str] field: The name of the field to be evaluated.
        :param pulumi.Input[Sequence[pulumi.Input[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 pulumi.Input[Sequence[pulumi.Input[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 pulumi.Input[str] gt: The value for the property is greater than the specified value.
        :param pulumi.Input[str] gte: The value for the property is greater than or equal to the specified value.
        :param pulumi.Input[str] lt: The value for the property is less than the specified value.
        :param pulumi.Input[str] lte: The value for the property is less than or equal to the specified value.
        :param pulumi.Input[Sequence[pulumi.Input[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) -> pulumi.Input[str]:
        """
        The name of the field to be evaluated.
        """
        return pulumi.get(self, "field")

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

    @property
    @pulumi.getter(name="eqExactMatches")
    def eq_exact_matches(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[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")

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

    @property
    @pulumi.getter
    def eqs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[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")

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

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter
    def neqs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[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")

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


@pulumi.input_type
class S3BucketAssociationClassificationTypeArgs:
    def __init__(__self__, *,
                 continuous: Optional[pulumi.Input[str]] = None,
                 one_time: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[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 pulumi.Input[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[pulumi.Input[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")

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

    @property
    @pulumi.getter(name="oneTime")
    def one_time(self) -> Optional[pulumi.Input[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")

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


