# -*- coding: utf-8 -*-
# Copyright 2021 Cohesity Inc.
[docs]class CopyRunStats(object):
"""Implementation of the 'CopyRunStats' model.
Stats for one copy task or aggregated stats of a Copy Run in a
Protection Job Run.
Attributes:
end_time_usecs (long|int): Specifies the time when this replication
ended. If not set, then the replication has not ended yet.
is_incremental (bool): Specifies whether this archival is incremental
for archival targets.
logical_bytes_transferred (long|int): Specifies the number of logical
bytes transferred for this replication so far. This value can
never exceed the total logical size of the replicated view.
logical_size_bytes (long|int): Specifies the total amount of logical
data to be transferred for this replication.
logical_transfer_rate_bps (long|int): Specifies average logical bytes
transfer rate in bytes per second for archchival targets.
physical_bytes_transferred (long|int): Specifies the number of
physical bytes sent over the wire for replication targets.
start_time_usecs (long|int): Specifies the time when this replication
was started. If not set, then replication has not been started
yet.
"""
# Create a mapping from Model property names to API property names
_names = {
"end_time_usecs":'endTimeUsecs',
"is_incremental":'isIncremental',
"logical_bytes_transferred":'logicalBytesTransferred',
"logical_size_bytes":'logicalSizeBytes',
"logical_transfer_rate_bps":'logicalTransferRateBps',
"physical_bytes_transferred":'physicalBytesTransferred',
"start_time_usecs":'startTimeUsecs'
}
def __init__(self,
end_time_usecs=None,
is_incremental=None,
logical_bytes_transferred=None,
logical_size_bytes=None,
logical_transfer_rate_bps=None,
physical_bytes_transferred=None,
start_time_usecs=None):
"""Constructor for the CopyRunStats class"""
# Initialize members of the class
self.end_time_usecs = end_time_usecs
self.is_incremental = is_incremental
self.logical_bytes_transferred = logical_bytes_transferred
self.logical_size_bytes = logical_size_bytes
self.logical_transfer_rate_bps = logical_transfer_rate_bps
self.physical_bytes_transferred = physical_bytes_transferred
self.start_time_usecs = start_time_usecs
[docs] @classmethod
def from_dictionary(cls,
dictionary):
"""Creates an instance of this model from a dictionary
Args:
dictionary (dictionary): A dictionary representation of the object as
obtained from the deserialization of the server's response. The keys
MUST match property names in the API description.
Returns:
object: An instance of this structure class.
"""
if dictionary is None:
return None
# Extract variables from the dictionary
end_time_usecs = dictionary.get('endTimeUsecs')
is_incremental = dictionary.get('isIncremental')
logical_bytes_transferred = dictionary.get('logicalBytesTransferred')
logical_size_bytes = dictionary.get('logicalSizeBytes')
logical_transfer_rate_bps = dictionary.get('logicalTransferRateBps')
physical_bytes_transferred = dictionary.get('physicalBytesTransferred')
start_time_usecs = dictionary.get('startTimeUsecs')
# Return an object of this model
return cls(end_time_usecs,
is_incremental,
logical_bytes_transferred,
logical_size_bytes,
logical_transfer_rate_bps,
physical_bytes_transferred,
start_time_usecs)