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

    :param ids: Ids of bills to be moved <span
     class='property-internal'>Cannot be Empty</span> <span
     class='property-internal'>Required (defined)</span>
    :type ids: list[int]
    :param account_id: Destination Account Id <span
     class='property-internal'>Required (defined)</span>
    :type account_id: int
    :param account_meter_ids: Destination AccountMeter Ids <span
     class='property-internal'>Required (defined)</span>
    :type account_meter_ids: list[int]
    :param update_account_gls: Use Account General Ledger from destination
     account? <span class='property-internal'>Required (defined)</span>
    :type update_account_gls: bool
    :param update_meter_gls: Use Meter General Ledger from destination meter?
     <span class='property-internal'>Required (defined)</span>
    :type update_meter_gls: bool
    :param update_record_scope_and_factor: If both the source and destination
     meter is linked to an emissions source and there are records generated
     from the bills being moved,
     update the scope category and GHG factor on those records to the
     destination meter defaults?
     Defaults to true for GHG Lite users, otherwise false. <span
     class='property-internal'>Required (defined)</span>
    :type update_record_scope_and_factor: bool
    """

    _attribute_map = {
        'ids': {'key': 'ids', 'type': '[int]'},
        'account_id': {'key': 'accountId', 'type': 'int'},
        'account_meter_ids': {'key': 'accountMeterIds', 'type': '[int]'},
        'update_account_gls': {'key': 'updateAccountGLs', 'type': 'bool'},
        'update_meter_gls': {'key': 'updateMeterGLs', 'type': 'bool'},
        'update_record_scope_and_factor': {'key': 'updateRecordScopeAndFactor', 'type': 'bool'},
    }

    def __init__(self, **kwargs):
        super(BillActionMove, self).__init__(**kwargs)
        self.ids = kwargs.get('ids', None)
        self.account_id = kwargs.get('account_id', None)
        self.account_meter_ids = kwargs.get('account_meter_ids', None)
        self.update_account_gls = kwargs.get('update_account_gls', None)
        self.update_meter_gls = kwargs.get('update_meter_gls', None)
        self.update_record_scope_and_factor = kwargs.get('update_record_scope_and_factor', None)
