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

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

    :param system_id: Required.
    :type system_id: str
    :param custom_filter_ids:
    :type custom_filter_ids: list[str]
    :param indicator_types:
    :type indicator_types: list[str]
    :param measure_ofs:
    :type measure_ofs: list[str]
    :param group_ids:
    :type group_ids: list[str]
    :param selected_indicator_ids:
    :type selected_indicator_ids: list[str]
    :param selected_point:
    :type selected_point:
     ~smartdiagnostics_sdk.models.SessionSelectedPointChild
    :param time_range:
    :type time_range: ~smartdiagnostics_sdk.models.SessionTimeRangeChild
    """

    _validation = {
        'system_id': {'required': True},
    }

    _attribute_map = {
        'system_id': {'key': 'SystemId', 'type': 'str'},
        'custom_filter_ids': {'key': 'CustomFilterIds', 'type': '[str]'},
        'indicator_types': {'key': 'IndicatorTypes', 'type': '[str]'},
        'measure_ofs': {'key': 'MeasureOfs', 'type': '[str]'},
        'group_ids': {'key': 'GroupIds', 'type': '[str]'},
        'selected_indicator_ids': {'key': 'SelectedIndicatorIds', 'type': '[str]'},
        'selected_point': {'key': 'SelectedPoint', 'type': 'SessionSelectedPointChild'},
        'time_range': {'key': 'TimeRange', 'type': 'SessionTimeRangeChild'},
    }

    def __init__(self, *, system_id: str, custom_filter_ids=None, indicator_types=None, measure_ofs=None, group_ids=None, selected_indicator_ids=None, selected_point=None, time_range=None, **kwargs) -> None:
        super(Sd4SessionCreateRequest, self).__init__(**kwargs)
        self.system_id = system_id
        self.custom_filter_ids = custom_filter_ids
        self.indicator_types = indicator_types
        self.measure_ofs = measure_ofs
        self.group_ids = group_ids
        self.selected_indicator_ids = selected_indicator_ids
        self.selected_point = selected_point
        self.time_range = time_range
