# 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 UserResponse(Model):
    """UserResponse.

    :param user_id: User Identifier
    :type user_id: int
    :param user_code: User Code
    :type user_code: str
    :param full_name: Full name of the user
    :type full_name: str
    :param user_role: User role assigned to this user
    :type user_role: ~energycap.sdk.models.SystemUserRoleChild
    :param cost_center: Topmost cost center allowed for the user
    :type cost_center: ~energycap.sdk.models.CostCenterChild
    :param place: Topmost place allowed for user
    :type place: ~energycap.sdk.models.PlaceChild
    :param active_directory: Is this a active directory user?
    :type active_directory: bool
    :param active: User is active or inactive
    :type active: bool
    :param email: Email ID of the user
    :type email: str
    :param password_expiration_interval: Days until password expires
    :type password_expiration_interval: int
    :param strong_password: Does user need a strong password - at least 8
     character long, one upper case, one number, one special char
    :type strong_password: bool
    :param force_password_change: Should the user be forced to change password
     on next login
    :type force_password_change: bool
    :param max_approval_amount: Max Total cost of bill this user is allowed to
     approve
    :type max_approval_amount: int
    :param last_login: last time the user logged in
    :type last_login: datetime
    :param report_group: The report group this user belongs to
    :type report_group: ~energycap.sdk.models.ReportGroupChildResponse
    """

    _attribute_map = {
        'user_id': {'key': 'userId', 'type': 'int'},
        'user_code': {'key': 'userCode', 'type': 'str'},
        'full_name': {'key': 'fullName', 'type': 'str'},
        'user_role': {'key': 'userRole', 'type': 'SystemUserRoleChild'},
        'cost_center': {'key': 'costCenter', 'type': 'CostCenterChild'},
        'place': {'key': 'place', 'type': 'PlaceChild'},
        'active_directory': {'key': 'activeDirectory', 'type': 'bool'},
        'active': {'key': 'active', 'type': 'bool'},
        'email': {'key': 'email', 'type': 'str'},
        'password_expiration_interval': {'key': 'passwordExpirationInterval', 'type': 'int'},
        'strong_password': {'key': 'strongPassword', 'type': 'bool'},
        'force_password_change': {'key': 'forcePasswordChange', 'type': 'bool'},
        'max_approval_amount': {'key': 'maxApprovalAmount', 'type': 'int'},
        'last_login': {'key': 'lastLogin', 'type': 'iso-8601'},
        'report_group': {'key': 'reportGroup', 'type': 'ReportGroupChildResponse'},
    }

    def __init__(self, user_id=None, user_code=None, full_name=None, user_role=None, cost_center=None, place=None, active_directory=None, active=None, email=None, password_expiration_interval=None, strong_password=None, force_password_change=None, max_approval_amount=None, last_login=None, report_group=None):
        super(UserResponse, self).__init__()
        self.user_id = user_id
        self.user_code = user_code
        self.full_name = full_name
        self.user_role = user_role
        self.cost_center = cost_center
        self.place = place
        self.active_directory = active_directory
        self.active = active
        self.email = email
        self.password_expiration_interval = password_expiration_interval
        self.strong_password = strong_password
        self.force_password_change = force_password_change
        self.max_approval_amount = max_approval_amount
        self.last_login = last_login
        self.report_group = report_group
