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

    All required parameters must be populated in order to send to Azure.

    :param name: Required.
    :type name: str
    :param abbreviation:
    :type abbreviation: str
    :param is_paused: Required.
    :type is_paused: bool
    :param description:
    :type description: str
    :param is_visible: Required.
    :type is_visible: bool
    :param active: Required.
    :type active: bool
    :param cds_master_system_ids:
    :type cds_master_system_ids: list[str]
    :param cds_base_station_ids:
    :type cds_base_station_ids: list[long]
    """

    _validation = {
        'name': {'required': True, 'max_length': 100},
        'abbreviation': {'max_length': 5},
        'is_paused': {'required': True},
        'description': {'max_length': 1000},
        'is_visible': {'required': True},
        'active': {'required': True},
    }

    _attribute_map = {
        'name': {'key': 'Name', 'type': 'str'},
        'abbreviation': {'key': 'Abbreviation', 'type': 'str'},
        'is_paused': {'key': 'IsPaused', 'type': 'bool'},
        'description': {'key': 'Description', 'type': 'str'},
        'is_visible': {'key': 'IsVisible', 'type': 'bool'},
        'active': {'key': 'Active', 'type': 'bool'},
        'cds_master_system_ids': {'key': 'CdsMasterSystemIds', 'type': '[str]'},
        'cds_base_station_ids': {'key': 'CdsBaseStationIds', 'type': '[long]'},
    }

    def __init__(self, *, name: str, is_paused: bool, is_visible: bool, active: bool, abbreviation: str=None, description: str=None, cds_master_system_ids=None, cds_base_station_ids=None, **kwargs) -> None:
        super(SystemUpdateRequest, self).__init__(**kwargs)
        self.name = name
        self.abbreviation = abbreviation
        self.is_paused = is_paused
        self.description = description
        self.is_visible = is_visible
        self.active = active
        self.cds_master_system_ids = cds_master_system_ids
        self.cds_base_station_ids = cds_base_station_ids
