text: # 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 PresentationTimeRange(Model):
      """The presentation time range, this is asset related and not recommended for
      Account Filter.
  
      All required parameters must be populated in order to send to Azure.
  
      :param start_timestamp: Required. The absolute start time boundary.
      :type start_timestamp: long
      :param end_timestamp: Required. The absolute end time boundary.
      :type end_timestamp: long
      :param presentation_window_duration: Required. The relative to end sliding
       window.
      :type presentation_window_duration: long
      :param live_backoff_duration: Required. The relative to end right edge.
      :type live_backoff_duration: long
      :param timescale: Required. The time scale of time stamps.
      :type timescale: long
      :param force_end_timestamp: Required. The indicator of forcing exsiting of
       end time stamp.
      :type force_end_timestamp: bool
      """
  
      _validation = {
          'start_timestamp': {'required': True},
          'end_timestamp': {'required': True},
          'presentation_window_duration': {'required': True},
          'live_backoff_duration': {'required': True},
          'timescale': {'required': True},
          'force_end_timestamp': {'required': True},
      }
  
      _attribute_map = {
          'start_timestamp': {'key': 'startTimestamp', 'type': 'long'},
          'end_timestamp': {'key': 'endTimestamp', 'type': 'long'},
          'presentation_window_duration': {'key': 'presentationWindowDuration', 'type': 'long'},
          'live_backoff_duration': {'key': 'liveBackoffDuration', 'type': 'long'},
          'timescale': {'key': 'timescale', 'type': 'long'},
          'force_end_timestamp': {'key': 'forceEndTimestamp', 'type': 'bool'},
      }
  
      def __init__(self, *, start_timestamp: int, end_timestamp: int, presentation_window_duration: int, live_backoff_duration: int, timescale: int, force_end_timestamp: bool, **kwargs) -> None:
          super(PresentationTimeRange, self).__init__(**kwargs)
          self.start_timestamp = start_timestamp
          self.end_timestamp = end_timestamp
          self.presentation_window_duration = presentation_window_duration
          self.live_backoff_duration = live_backoff_duration
          self.timescale = timescale
          self.force_end_timestamp = force_end_timestamp
  