# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------

from msrest.serialization import Model


class FlagResponse(Model):
    """FlagResponse.

    :param flag_id: The flag identifier
    :type flag_id: int
    :param flag_type: Type of the flag
    :type flag_type: ~energycap.sdk.models.FlagTypeChild
    :param flag_status: Current status of the flag
    :type flag_status: ~energycap.sdk.models.FlagStatusChild
    :param created_by: User that created the flag
    :type created_by: ~energycap.sdk.models.UserChild
    :param created_date: Date the flag was created
    :type created_date: datetime
    :param modified_by: Last user that modified the flag
    :type modified_by: ~energycap.sdk.models.UserChild
    :param modified_date: Latest date the flag was modified
    :type modified_date: datetime
    :param cost_recovery: Cost recovery associated with the issue this flag
     represents
    :type cost_recovery: float
    :param flag_events: All events and actions that have occured with this
     flag
    :type flag_events: list[~energycap.sdk.models.FlagEventChild]
    :param assignees: All users currently assigned to this flag
    :type assignees: list[~energycap.sdk.models.UserChild]
    """

    _attribute_map = {
        'flag_id': {'key': 'flagId', 'type': 'int'},
        'flag_type': {'key': 'flagType', 'type': 'FlagTypeChild'},
        'flag_status': {'key': 'flagStatus', 'type': 'FlagStatusChild'},
        'created_by': {'key': 'createdBy', 'type': 'UserChild'},
        'created_date': {'key': 'createdDate', 'type': 'iso-8601'},
        'modified_by': {'key': 'modifiedBy', 'type': 'UserChild'},
        'modified_date': {'key': 'modifiedDate', 'type': 'iso-8601'},
        'cost_recovery': {'key': 'costRecovery', 'type': 'float'},
        'flag_events': {'key': 'flagEvents', 'type': '[FlagEventChild]'},
        'assignees': {'key': 'assignees', 'type': '[UserChild]'},
    }

    def __init__(self, flag_id=None, flag_type=None, flag_status=None, created_by=None, created_date=None, modified_by=None, modified_date=None, cost_recovery=None, flag_events=None, assignees=None):
        super(FlagResponse, self).__init__()
        self.flag_id = flag_id
        self.flag_type = flag_type
        self.flag_status = flag_status
        self.created_by = created_by
        self.created_date = created_date
        self.modified_by = modified_by
        self.modified_date = modified_date
        self.cost_recovery = cost_recovery
        self.flag_events = flag_events
        self.assignees = assignees
