"""Raw representations of every data type in the AWS Inspector service.

See Also:
    `AWS developer guide for Inspector
    <https://docs.aws.amazon.com/inspector/latest/userguide/index.html>`_

This file is automatically generated, and should not be directly edited.
"""

from attr import attrib
from attr import attrs

from ..core import ATTRSCONFIG
from ..core import Resource
from ..core import ResourceProperties
from ..core import create_object_converter

__all__ = [
    "AssessmentTarget",
    "AssessmentTargetProperties",
    "AssessmentTemplate",
    "AssessmentTemplateProperties",
    "ResourceGroup",
    "ResourceGroupProperties",
]


@attrs(**ATTRSCONFIG)
class AssessmentTargetProperties(ResourceProperties):
    AssessmentTargetName = attrib(default=None)
    ResourceGroupArn = attrib(default=None)


@attrs(**ATTRSCONFIG)
class AssessmentTarget(Resource):
    """A Assessment Target for Inspector.

    See Also:
        `AWS Cloud Formation documentation for AssessmentTarget
        <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html>`_
    """

    RESOURCE_TYPE = "AWS::Inspector::AssessmentTarget"

    Properties: AssessmentTargetProperties = attrib(
        factory=AssessmentTargetProperties,
        converter=create_object_converter(AssessmentTargetProperties),
    )


@attrs(**ATTRSCONFIG)
class AssessmentTemplateProperties(ResourceProperties):
    AssessmentTargetArn = attrib(default=None)
    AssessmentTemplateName = attrib(default=None)
    DurationInSeconds = attrib(default=None)
    RulesPackageArns = attrib(default=None)
    UserAttributesForFindings = attrib(default=None)


@attrs(**ATTRSCONFIG)
class AssessmentTemplate(Resource):
    """A Assessment Template for Inspector.

    See Also:
        `AWS Cloud Formation documentation for AssessmentTemplate
        <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html>`_
    """

    RESOURCE_TYPE = "AWS::Inspector::AssessmentTemplate"

    Properties: AssessmentTemplateProperties = attrib(
        factory=AssessmentTemplateProperties,
        converter=create_object_converter(AssessmentTemplateProperties),
    )


@attrs(**ATTRSCONFIG)
class ResourceGroupProperties(ResourceProperties):
    ResourceGroupTags = attrib(default=None)


@attrs(**ATTRSCONFIG)
class ResourceGroup(Resource):
    """A Resource Group for Inspector.

    See Also:
        `AWS Cloud Formation documentation for ResourceGroup
        <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-resourcegroup.html>`_
    """

    RESOURCE_TYPE = "AWS::Inspector::ResourceGroup"

    Properties: ResourceGroupProperties = attrib(
        factory=ResourceGroupProperties,
        converter=create_object_converter(ResourceGroupProperties),
    )
