Source code for models.copy_run

# -*- coding: utf-8 -*-
# Copyright 2021 Cohesity Inc.

import cohesity_management_sdk.models.copy_snapshot_task_status
import cohesity_management_sdk.models.legal_holdings
import cohesity_management_sdk.models.copy_run_stats
import cohesity_management_sdk.models.snapshot_target_settings
import cohesity_management_sdk.models.universal_id
import cohesity_management_sdk.models.data_lock_constraints

[docs]class CopyRun(object): """Implementation of the 'CopyRun' model. Specifies details about the Copy Run for a backup run of a Job Run. A Copy task copies snapshots resulted from a backup run to a snapshot target which could be 'kLocal', 'kArchival', or 'kRemote'. Attributes: copy_snapshot_tasks (list of CopySnapshotTaskStatus): Specifies the status information of each task that copies the snapshot taken for a Protection Source. data_lock_constraints (DataLockConstraints): Specifies the datalock constraints for a copy run task. error (string): Specifies if an error occurred (if any) while running this task. This field is populated when the status is equal to 'kFailure'. expiry_time_usecs (long|int): Specifies expiry time of the copies of the snapshots in this Protection Run. hold_for_legal_purpose (bool): Specifies whether legal hold is enabled on this run. It is true if the run is put on legal hold. Independent of this flag, some of the entities may be on legal hold. legal_holdings (list of LegalHoldings): Specifies the list of Protection Source Ids and the legal hold status. run_start_time_usecs (long|int): Specifies start time of the copy run. stats (CopyRunStats): Stats for one copy task or aggregated stats of a Copy Run in a Protection Job Run. status (StatusCopyRunEnum): Specifies the aggregated status of copy tasks such as 'kRunning', 'kSuccess', 'kFailure' etc. 'kAccepted' indicates the task is queued to run but not yet running. 'kRunning' indicates the task is running. 'kCanceling' indicates a request to cancel the task has occurred but the task is not yet canceled. 'kCanceled' indicates the task has been canceled. 'kSuccess' indicates the task was successful. 'kFailure' indicates the task failed. 'kWarning' indicates the task has finished with warning. 'kOnHold' indicates the task is kept onHold. 'kMissed' indicates the task is missed. target (SnapshotTargetSettings): Specifies settings about a target where a copied Snapshot is stored. A target can be a Remote Cluster or an Archival External Target such as AWS or Tape. task_uid (UniversalId): Specifies a globally unique id of the copy task. user_action_message (string): Specifies a message to the user if any manual intervention is needed to make forward progress for the archival task. This message is mainly relevant for tape based archival tasks where a backup admin might be asked to load a new media when the tape library does not have any more media to use. """ # Create a mapping from Model property names to API property names _names = { "copy_snapshot_tasks":'copySnapshotTasks', "data_lock_constraints":'dataLockConstraints', "error":'error', "expiry_time_usecs":'expiryTimeUsecs', "hold_for_legal_purpose":'holdForLegalPurpose', "legal_holdings":'legalHoldings', "run_start_time_usecs":'runStartTimeUsecs', "stats":'stats', "status":'status', "target":'target', "task_uid":'taskUid', "user_action_message":'userActionMessage' } def __init__(self, copy_snapshot_tasks=None, data_lock_constraints=None, error=None, expiry_time_usecs=None, hold_for_legal_purpose=None, legal_holdings=None, run_start_time_usecs=None, stats=None, status=None, target=None, task_uid=None, user_action_message=None): """Constructor for the CopyRun class""" # Initialize members of the class self.copy_snapshot_tasks = copy_snapshot_tasks self.data_lock_constraints = data_lock_constraints self.error = error self.expiry_time_usecs = expiry_time_usecs self.hold_for_legal_purpose = hold_for_legal_purpose self.legal_holdings = legal_holdings self.run_start_time_usecs = run_start_time_usecs self.stats = stats self.status = status self.target = target self.task_uid = task_uid self.user_action_message = user_action_message
[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 copy_snapshot_tasks = None if dictionary.get('copySnapshotTasks') != None: copy_snapshot_tasks = list() for structure in dictionary.get('copySnapshotTasks'): copy_snapshot_tasks.append(cohesity_management_sdk.models.copy_snapshot_task_status.CopySnapshotTaskStatus.from_dictionary(structure)) data_lock_constraints = cohesity_management_sdk.models.data_lock_constraints.DataLockConstraints.from_dictionary(dictionary.get('dataLockConstraints')) if dictionary.get('dataLockConstraints') else None error = dictionary.get('error') expiry_time_usecs = dictionary.get('expiryTimeUsecs') hold_for_legal_purpose = dictionary.get('holdForLegalPurpose') legal_holdings = None if dictionary.get('legalHoldings') != None: legal_holdings = list() for structure in dictionary.get('legalHoldings'): legal_holdings.append(cohesity_management_sdk.models.legal_holdings.LegalHoldings.from_dictionary(structure)) run_start_time_usecs = dictionary.get('runStartTimeUsecs') stats = cohesity_management_sdk.models.copy_run_stats.CopyRunStats.from_dictionary(dictionary.get('stats')) if dictionary.get('stats') else None status = dictionary.get('status') target = cohesity_management_sdk.models.snapshot_target_settings.SnapshotTargetSettings.from_dictionary(dictionary.get('target')) if dictionary.get('target') else None task_uid = cohesity_management_sdk.models.universal_id.UniversalId.from_dictionary(dictionary.get('taskUid')) if dictionary.get('taskUid') else None user_action_message = dictionary.get('userActionMessage') # Return an object of this model return cls(copy_snapshot_tasks, data_lock_constraints, error, expiry_time_usecs, hold_for_legal_purpose, legal_holdings, run_start_time_usecs, stats, status, target, task_uid, user_action_message)