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

See Also:
    `AWS developer guide for RoboMaker
    <https://docs.aws.amazon.com/robomaker/latest/dg/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__ = [
    "Fleet",
    "FleetProperties",
    "Robot",
    "RobotProperties",
    "RobotApplication",
    "RobotApplicationProperties",
    "RobotApplicationVersion",
    "RobotApplicationVersionProperties",
    "SimulationApplication",
    "SimulationApplicationProperties",
    "SimulationApplicationVersion",
    "SimulationApplicationVersionProperties",
]


@attrs(**ATTRSCONFIG)
class FleetProperties(ResourceProperties):
    Name = attrib(default=None)
    Tags = attrib(default=None)


@attrs(**ATTRSCONFIG)
class Fleet(Resource):
    """A Fleet for RoboMaker.

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

    RESOURCE_TYPE = "AWS::RoboMaker::Fleet"

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


@attrs(**ATTRSCONFIG)
class RobotProperties(ResourceProperties):
    Architecture = attrib(default=None)
    Fleet = attrib(default=None)
    GreengrassGroupId = attrib(default=None)
    Name = attrib(default=None)
    Tags = attrib(default=None)


@attrs(**ATTRSCONFIG)
class Robot(Resource):
    """A Robot for RoboMaker.

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

    RESOURCE_TYPE = "AWS::RoboMaker::Robot"

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


@attrs(**ATTRSCONFIG)
class RobotApplicationProperties(ResourceProperties):
    CurrentRevisionId = attrib(default=None)
    Name = attrib(default=None)
    RobotSoftwareSuite = attrib(default=None)
    Sources = attrib(default=None)
    Tags = attrib(default=None)


@attrs(**ATTRSCONFIG)
class RobotApplication(Resource):
    """A Robot Application for RoboMaker.

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

    RESOURCE_TYPE = "AWS::RoboMaker::RobotApplication"

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


@attrs(**ATTRSCONFIG)
class RobotApplicationVersionProperties(ResourceProperties):
    Application = attrib(default=None)
    CurrentRevisionId = attrib(default=None)


@attrs(**ATTRSCONFIG)
class RobotApplicationVersion(Resource):
    """A Robot Application Version for RoboMaker.

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

    RESOURCE_TYPE = "AWS::RoboMaker::RobotApplicationVersion"

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


@attrs(**ATTRSCONFIG)
class SimulationApplicationProperties(ResourceProperties):
    CurrentRevisionId = attrib(default=None)
    Name = attrib(default=None)
    RenderingEngine = attrib(default=None)
    RobotSoftwareSuite = attrib(default=None)
    SimulationSoftwareSuite = attrib(default=None)
    Sources = attrib(default=None)
    Tags = attrib(default=None)


@attrs(**ATTRSCONFIG)
class SimulationApplication(Resource):
    """A Simulation Application for RoboMaker.

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

    RESOURCE_TYPE = "AWS::RoboMaker::SimulationApplication"

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


@attrs(**ATTRSCONFIG)
class SimulationApplicationVersionProperties(ResourceProperties):
    Application = attrib(default=None)
    CurrentRevisionId = attrib(default=None)


@attrs(**ATTRSCONFIG)
class SimulationApplicationVersion(Resource):
    """A Simulation Application Version for RoboMaker.

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

    RESOURCE_TYPE = "AWS::RoboMaker::SimulationApplicationVersion"

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