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

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

    :param name: Required.
    :type name: str
    :param abbreviation:
    :type abbreviation: str
    :param location_id: Required.
    :type location_id: str
    :param is_collector_dependent_system: Required.
    :type is_collector_dependent_system: bool
    :param description:
    :type description: str
    :param is_visible: Required.
    :type is_visible: 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},
        'location_id': {'required': True},
        'is_collector_dependent_system': {'required': True},
        'description': {'max_length': 1000},
        'is_visible': {'required': True},
    }

    _attribute_map = {
        'name': {'key': 'Name', 'type': 'str'},
        'abbreviation': {'key': 'Abbreviation', 'type': 'str'},
        'location_id': {'key': 'LocationId', 'type': 'str'},
        'is_collector_dependent_system': {'key': 'IsCollectorDependentSystem', 'type': 'bool'},
        'description': {'key': 'Description', 'type': 'str'},
        'is_visible': {'key': 'IsVisible', 'type': 'bool'},
        'cds_master_system_ids': {'key': 'CdsMasterSystemIds', 'type': '[str]'},
        'cds_base_station_ids': {'key': 'CdsBaseStationIds', 'type': '[long]'},
    }

    def __init__(self, **kwargs):
        super(SystemCreateRequest, self).__init__(**kwargs)
        self.name = kwargs.get('name', None)
        self.abbreviation = kwargs.get('abbreviation', None)
        self.location_id = kwargs.get('location_id', None)
        self.is_collector_dependent_system = kwargs.get('is_collector_dependent_system', None)
        self.description = kwargs.get('description', None)
        self.is_visible = kwargs.get('is_visible', None)
        self.cds_master_system_ids = kwargs.get('cds_master_system_ids', None)
        self.cds_base_station_ids = kwargs.get('cds_base_station_ids', None)
