# Source code for azure.applicationinsights.models.events_result_data_py3

    # coding=utf-8
    # --------------------------------------------------------------------------
    # Copyright (c) Microsoft Corporation. All rights reserved.
    # Licensed under the MIT License. See License.txt in the project root for
    # license information.
    #
    # 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 EventsResultData(Model):
        """Events query result data.

        You probably want to use the sub-classes and not this class directly. Known
        sub-classes are: EventsTraceResult, EventsCustomEventResult,
        EventsPageViewResult, EventsBrowserTimingResult, EventsRequestResult,
        EventsDependencyResult, EventsExceptionResult,
        EventsAvailabilityResultResult, EventsPerformanceCounterResult,
        EventsCustomMetricResult

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

        :param id: The unique ID for this event.
        :type id: str
        :param count: Count of the event
        :type count: long
        :param timestamp: Timestamp of the event
        :type timestamp: datetime
        :param custom_dimensions: Custom dimensions of the event
        :type custom_dimensions:
         ~azure.applicationinsights.models.EventsResultDataCustomDimensions
        :param custom_measurements: Custom measurements of the event
        :type custom_measurements:
         ~azure.applicationinsights.models.EventsResultDataCustomMeasurements
        :param operation: Operation info of the event
        :type operation: ~azure.applicationinsights.models.EventsOperationInfo
        :param session: Session info of the event
        :type session: ~azure.applicationinsights.models.EventsSessionInfo
        :param user: User info of the event
        :type user: ~azure.applicationinsights.models.EventsUserInfo
        :param cloud: Cloud info of the event
        :type cloud: ~azure.applicationinsights.models.EventsCloudInfo
        :param ai: AI info of the event
        :type ai: ~azure.applicationinsights.models.EventsAiInfo
        :param application: Application info of the event
        :type application: ~azure.applicationinsights.models.EventsApplicationInfo
        :param client: Client info of the event
        :type client: ~azure.applicationinsights.models.EventsClientInfo
        :param type: Required. Constant filled by server.
        :type type: str
        """

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

        _attribute_map = {
            'id': {'key': 'id', 'type': 'str'},
            'count': {'key': 'count', 'type': 'long'},
            'timestamp': {'key': 'timestamp', 'type': 'iso-8601'},
            'custom_dimensions': {'key': 'customDimensions', 'type': 'EventsResultDataCustomDimensions'},
            'custom_measurements': {'key': 'customMeasurements', 'type': 'EventsResultDataCustomMeasurements'},
            'operation': {'key': 'operation', 'type': 'EventsOperationInfo'},
            'session': {'key': 'session', 'type': 'EventsSessionInfo'},
            'user': {'key': 'user', 'type': 'EventsUserInfo'},
            'cloud': {'key': 'cloud', 'type': 'EventsCloudInfo'},
            'ai': {'key': 'ai', 'type': 'EventsAiInfo'},
            'application': {'key': 'application', 'type': 'EventsApplicationInfo'},
            'client': {'key': 'client', 'type': 'EventsClientInfo'},
            'type': {'key': 'type', 'type': 'str'},
        }

        _subtype_map = {
            'type': {'trace': 'EventsTraceResult', 'customEvent': 'EventsCustomEventResult', 'pageView': 'EventsPageViewResult', 'browserTiming': 'EventsBrowserTimingResult', 'request': 'EventsRequestResult', 'dependency': 'EventsDependencyResult', 'exception': 'EventsExceptionResult', 'availabilityResult': 'EventsAvailabilityResultResult', 'performanceCounter': 'EventsPerformanceCounterResult', 'customMetric': 'EventsCustomMetricResult'}
        }

        def __init__(self, *, id: str=None, count: int=None, timestamp=None, custom_dimensions=None, custom_measurements=None, operation=None, session=None, user=None, cloud=None, ai=None, application=None, client=None, **kwargs) -> None:
            super(EventsResultData, self).__init__(**kwargs)
            self.id = id
            self.count = count
            self.timestamp = timestamp
            self.custom_dimensions = custom_dimensions
            self.custom_measurements = custom_measurements
            self.operation = operation
            self.session = session
            self.user = user
            self.cloud = cloud
            self.ai = ai
            self.application = application
            self.client = client
            self.type = None