Source code for models.backup_job_proto

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

import cohesity_management_sdk.models.alerting_policy_proto
import cohesity_management_sdk.models.backup_source_params
import cohesity_management_sdk.models.backup_job_proto_dr_to_cloud_params
import cohesity_management_sdk.models.entity_proto
import cohesity_management_sdk.models.env_backup_params
import cohesity_management_sdk.models.backup_job_proto_exclude_source
import cohesity_management_sdk.models.backup_job_proto_exclusion_time_range
import cohesity_management_sdk.models.job_policy_proto
import cohesity_management_sdk.models.indexing_policy_proto
import cohesity_management_sdk.models.universal_id_proto
import cohesity_management_sdk.models.backup_job_pre_or_post_script
import cohesity_management_sdk.models.backup_job_proto_backup_source
import cohesity_management_sdk.models.time
import cohesity_management_sdk.models.source_filters
import cohesity_management_sdk.models.stubbing_policy_proto
import cohesity_management_sdk.models.standby_resource
import cohesity_management_sdk.models.user_information
import cohesity_management_sdk.models.physical_file_backup_params_global_include_exclude

[docs]class BackupJobProto(object): """Implementation of the 'BackupJobProto' model. TODO: type model description here. Attributes: abort_in_exclusion_window (bool): This field determines whether a backup run should be aborted when it hits an exclusion window (assuming that it was started earlier when it was not in an exclusion window). alerting_policy (AlertingPolicyProto): TODO: type description here. all_archival_snapshots_expired (bool): If job deletion status is kDeleteJobAndBackups and this field is set to true, then it implies that expiration requests for all archival snapshots of this job (if any) have been acknowledged by Icebox. NOTE: This field may remain false for some period of time even if is_deleted field is set to true for the job. backup_qos_principal (int): The backup QoS principal to use for the backup job. backup_source_params (list of BackupSourceParams): This contains additional backup params that are applicable to sources that are captured as part of the backup job. NOTE: The sources could point to higher level entities (such as a "Cluster" in VMware environment), but the source params captured here will not be for the matching higher level entity, but instead be for leaf-level entities (such as VMs). continue_on_quiesce_failure (bool): Whether to continue backing up on quiesce failure. create_remote_view (bool): If set to false, a remote view will not be created. If set to true and: 1) Remote view name is not provided by the user, a remote view is created with the same name as source view name. 2) Remote view name is provided by the user, a remote view is created with the given name. NOTE: From 6.6 onwards, remote view is always created for view backups if policy has replication. Hence, this bool is only used for Remote Adapter jobs (kPuppeteer). dedup_disabled_source_id_vec (list of long|int): List of source ids for which source side dedup is disabled from the backup job. deletion_status (int): Determines if the job (and associated backups) should be deleted. Once a job has been deleted, its status cannot be changed. description (string): Job description (as entered by the user). dr_to_cloud_params (BackupJobProtoDRToCloudParams): A Proto needed in case objects backed up by this job need to DR to cloud. "Fail over" signifies the mechanism to move the workload to cloud. eh_parent_source (EntityProto): Specifies the attributes and the latest statistics about an entity. end_time_usecs (long|int): The time (in usecs) after which no backup for the job should be scheduled. env_backup_params (EnvBackupParams): Message to capture any additional environment specific backup params at the job level. exclude_sources (list of BackupJobProtoExcludeSource): The list of sources to exclude from backups. These can have non-leaf-level entities, but it's up to the creator to ensure that a child of these sources hasn't been explicitly added to 'sources'. exclude_sources_deprecated (list of EntityProto): The list of sources to exclude from backups. These can have non-leaf-level entities, but it's up to the creator to ensure that a child of these sources hasn't been explicitly added to 'sources'. exclusion_ranges (list of BackupJobProtoExclusionTimeRange): Do not run backups in these time-ranges. full_backup_job_policy (JobPolicyProto): A message that specifies the policies to use for a job. full_backup_sla_time_mins (long|int): Same as 'sla_time_mins' above, but applies to full backups. NOTE: This value is considered only for full backups that are excepted i.e either scheduled or the first full backup and not for full backups that happen as a result of incremental backup failure. global_include_exclude (PhysicalFileBackupParams_GlobalIncludeExclude): Determines global include and exclude filters which are applied to all sources in a physical job. indexing_policy (IndexingPolicyProto): Proto to encapsulate file level indexing policy for VMs in a backup job. is_active (bool): Whether the backup job is active or not. Details about what an active job is can be found here: https://goo.gl/1mLvS3. is_continuous_snapshotting_enabled (bool): Indicates if Magneto should continue taking source snapshots even if there is a pending run. is_deleted (bool): Tracks whether the backup job has actually been deleted. NOTE: If job deletion status is kDeleteJobAndBackups and this field is true, then it only implies that all local snapshots have been deleted.Status of whether all archival snapshots have been expired can be inferred through 'all_archival_snapshots_expired' field. is_direct_archive_enabled (bool): This field is set to true if this is a direct archive backup job. is_direct_archive_native_format_enabled (bool): This field is set to true if native format should be used for archiving. Applicable for only direct archive jobs. is_paused (bool): Whether the backup job is paused. New backup runs are not scheduled for the paused backup job. Active run of a backup job (if any) is not impacted. is_rpo_job (bool): Whether the backup job is an RPO policy job. These jobs are hidden from the user, and are created internally to have a backup schedule for the given source. job_creation_time_usecs (long|int): Time when this job was first created. job_id (long|int): A unique id for locally created jobs. This should only be used to identify jobs created on the local cluster. When Iris communicates with Magneto, Iris can continue to use this job_id field, which will always be assumed to refer to locally created jobs. For remotely created jobs, the 'job_uid' field should be used. The only time Iris should ever need to refer to a remote job is when restoring an object from a remote snapshot. In all such cases, Iris should use the job_uid field. job_policy (JobPolicyProto): A message that specifies the policies to use for a job. job_uid (UniversalIdProto): TODO: type description here. last_modification_time_usecs (long|int): Time when this job description was last updated. last_pause_modification_time_usecs (long|int): Time when the job was last paused or unpaused. last_pause_reason (int): Last reason for pausing the backup job. Capturing the reason will help in resuming only the jobs that were paused because of a reason once the reason for pausing is not applicable. last_updated_username (string): The user who modified the job most recently. leverage_san_transport (bool): This is set to true by the user in order to backup the objects via a dedicated storage area network (SAN), as opposed to transport via LAN or management network. NOTE: Not all adapters support this method. Currently only VMware. leverage_storage_snapshots (bool): Whether to leverage the storage array based snapshots for this backup job. To leverage storage snapshots, the storage array has to be registered as a source. If storage based snapshots can not be taken, job will fallback to the default backup method. NOTE: This will be set for Pure snapshots. leverage_storage_snapshots_for_hyperflex (bool): This is set to true by the user if hyperflex snapshots are requested NOTE: If this is set to true, then leverage_storage_snapshots above should be false. log_backup_job_policy (JobPolicyProto): A message that specifies the policies to use for a job. max_allowed_source_snapshots (int): Determines the maximum number of source snapshots allowed for a given entity in the job. This is only applicable if 'is_continuous_snapshotting_enabled' is set to true. name (string): The name of this backup job. This must be unique across all jobs. num_snapshots_to_keep_on_primary (long|int): Specifies how many recent snapshots of each backed up entity to retain on the primary environment. If not specified, then snapshots will not be be deleted from the primary environment. NOTE: This is only applicable for certain environments like kPure. parent_source (EntityProto): The registered source managing all the sources being backed up. This field is optional. perform_source_side_dedup (bool): Whether or not to perform source side dedup. policy_applied_time_msecs (long|int): Epoch time in milliseconds when the policy was last applied to this job. This field will be used to determine whether a policy has changed after it was applied to a particular job. policy_id (string): Id of the policy being applied to the backup job. It is expected to be of the form "cluster_id:cluster_instance_id:local_identifier". policy_name (string): The name of the policy referred to by policy_uid. This field can be stale and should not be relied upon for the latest name. post_backup_script (BackupJobPreOrPostScript): A message to encapsulate the pre and post scripts associated with a backup job. Pre script is executed before backup run of a job starts. Post script is executed after backup run of a job finishes. Currently, pre and post script is only supported for backup job of type 'kPuppeteer' and agent-based backup jobs. pre_script (BackupJobPreOrPostScript): A message to encapsulate the pre and post scripts associated with a backup job. Pre script is executed before backup run of a job starts. Post script is executed after backup run of a job finishes. Currently, pre and post script is only supported for backup job of type 'kPuppeteer' and agent-based backup jobs. primary_job_uid (UniversalIdProto): TODO: type description here. priority (int): The priority for the job. This is used at admission time - all admitted jobs are treated equally. This is also used to determine the Madrox replication priority. quiesce (bool): Whether to take app-consistent snapshots by quiescing apps and the filesystem before taking a backup. remote_job_uids (list of UniversalIdProto): The globally unique ids of all remote jobs that are linked to this job (because of incoming replications). This field will only be populated for locally created jobs. This field is populated only for the local(stub) job during incoming replications. In the most common case of one cluster replicating to another, this field will only have one entry (which is the id of the job on Tx side) and matches the primary_job_uid. This will have multiple entries in the following situation: A->B, A->C replication. The backup is failed over to B, and B now starts replicating to C. In this case, the stub job at C will have two entries. One is the job id from cluster A, and another is the local(stub) job uid from B. Also note that since the job originated from A, primary_job_uid for all the replicated instances of this job across multiple clusters will remain the same (which is equal to the job id from the original cluster A). remote_view_name (string): A human readable name of the remote view. A remote view is created with name overwriting the latest snapshot. NOTE: From 6.6 onwards, we support protecting multiple views within a protection group, 'remoteViewParams' is the new field which captures this information for view backups, 'remote_view_name' here is now only used for Remote Adapter jobs (kPuppeteer). required_feature_vec (list of string): The features that are strictly required to be supported by the cluster of the backup job. This is currently used in the following cases: 1. Tx cluster looks at the Rx cluster's supported features and replicates the backup job only if all the features captured here are supported. 2. When performing remote restore of a backup job from an archival, this job will be retrieved only if the cluster supports all the features listed here. skip_tenant_validations (bool): If set to true, skips tenant related validations. Default is false. sla_time_mins (long|int): If specified, this variable determines the amount of time (after backup has started) in which backup is expected to finish for this job. An SLA violation is counted against this job if the amount of time taken exceeds this amount. source_filters (SourceFilters): Determines include and exclude filters which are applied to entities in a backup source. For SQL, this will be applicable only for auto protect sources. sources (list of BackupJobProtoBackupSource): The list of sources that should be backed up. A source in this list could be a descendant of another source in the list (this will be used when specifying override backup schedules). standby_resource_vec (list of StandbyResource): User provided resource(s) for creating a standby VM for each entity present in this backup job. For example in case of VMware, the user will provide the vCenter, datastore and resource pool on which the standby VM should be created. TODO(hmehra) Can the user edit this after the job is created or the resources have been specified? start_time (Time): A message to encapusulate time of a day. Users of this proto will have to store the timezone information separately. For example, when this proto is part of a backup job, timezone of the backup job is applied to get the absolute time. stubbing_policy (StubbingPolicyProto): Stubbing jobs do not use protection policies. Instead, schedule and retention policy will be embedded in the BackupJobProto. tag_vec (list of string): Tags associated with the job. User can specify tags/keywords that can indexed by Yoda and can be later searched in UI. For example, user can create a 'kPuppeteer' job to backup Oracle DB for 'payroll' department. User can specify following tags: 'payroll', 'Oracle_DB'. timezone (string): Timezone of the backup job. All time fields (i.e., TimeOfDay) in this backup job are stored wrt to this timezone. The time zones have unique names of the form "Area/Location", e.g. "America/New_York". We are using "America/Los_Angeles" as a default value so as to be backward compatible with pre-2.7 code. truncate_logs (bool): Whether to truncate logs after a backup run. This is currently only relevant for full or incremental backups in a SQL environment. mtype (int): The type of environment this backup job corresponds to. user_info (UserInformation): A message to encapsulate information about the user who made the request. Request should be filtered by these fields if specified so that only the objects that the user is permissioned for are returned. If both sid_vec & tenant_id are specified then an intersection of respective results should be returned. view_box_id (long|int): The view box to which data will be written. """ # Create a mapping from Model property names to API property names _names = { "abort_in_exclusion_window":'abortInExclusionWindow', "alerting_policy":'alertingPolicy', "all_archival_snapshots_expired":'allArchivalSnapshotsExpired', "backup_qos_principal":'backupQosPrincipal', "backup_source_params":'backupSourceParams', "continue_on_quiesce_failure":'continueOnQuiesceFailure', "create_remote_view":'createRemoteView', "dedup_disabled_source_id_vec":'dedupDisabledSourceIdVec', "deletion_status":'deletionStatus', "description":'description', "dr_to_cloud_params":'drToCloudParams', "eh_parent_source":'ehParentSource', "end_time_usecs":'endTimeUsecs', "env_backup_params":'envBackupParams', "exclude_sources":'excludeSources', "exclude_sources_deprecated":'excludeSources_DEPRECATED', "exclusion_ranges":'exclusionRanges', "full_backup_job_policy":'fullBackupJobPolicy', "full_backup_sla_time_mins":'fullBackupSlaTimeMins', "global_include_exclude":'globalIncludeExclude', "indexing_policy":'indexingPolicy', "is_active":'isActive', "is_continuous_snapshotting_enabled":'isContinuousSnapshottingEnabled', "is_deleted":'isDeleted', "is_direct_archive_enabled":'isDirectArchiveEnabled', "is_direct_archive_native_format_enabled":'isDirectArchiveNativeFormatEnabled', "is_paused":'isPaused', "is_rpo_job":'isRpoJob', "job_creation_time_usecs":'jobCreationTimeUsecs', "job_id":'jobId', "job_policy":'jobPolicy', "job_uid":'jobUid', "last_modification_time_usecs":'lastModificationTimeUsecs', "last_pause_modification_time_usecs":'lastPauseModificationTimeUsecs', "last_pause_reason":'lastPauseReason', "last_updated_username":'lastUpdatedUsername', "leverage_san_transport":'leverageSanTransport', "leverage_storage_snapshots":'leverageStorageSnapshots', "leverage_storage_snapshots_for_hyperflex":'leverageStorageSnapshotsForHyperflex', "log_backup_job_policy":'logBackupJobPolicy', "max_allowed_source_snapshots":'maxAllowedSourceSnapshots', "name":'name', "num_snapshots_to_keep_on_primary":'numSnapshotsToKeepOnPrimary', "parent_source":'parentSource', "perform_source_side_dedup":'performSourceSideDedup', "policy_applied_time_msecs":'policyAppliedTimeMsecs', "policy_id":'policyId', "policy_name":'policyName', "post_backup_script":'postBackupScript', "pre_script":'preScript', "primary_job_uid":'primaryJobUid', "priority":'priority', "quiesce":'quiesce', "remote_job_uids":'remoteJobUids', "remote_view_name":'remoteViewName', "required_feature_vec":'requiredFeatureVec', "skip_tenant_validations":'skipTenantValidations', "sla_time_mins":'slaTimeMins', "source_filters":'sourceFilters', "sources":'sources', "standby_resource_vec":'standby_resource_vec', "start_time":'startTime', "stubbing_policy":'stubbingPolicy', "tag_vec":'tagVec', "timezone":'timezone', "truncate_logs":'truncateLogs', "mtype":'type', "user_info":'userInfo', "view_box_id":'viewBoxId' } def __init__(self, abort_in_exclusion_window=None, alerting_policy=None, all_archival_snapshots_expired=None, backup_qos_principal=None, backup_source_params=None, continue_on_quiesce_failure=None, create_remote_view=None, dedup_disabled_source_id_vec=None, deletion_status=None, description=None, dr_to_cloud_params=None, eh_parent_source=None, end_time_usecs=None, env_backup_params=None, exclude_sources=None, exclude_sources_deprecated=None, exclusion_ranges=None, full_backup_job_policy=None, full_backup_sla_time_mins=None, global_include_exclude=None, indexing_policy=None, is_active=None, is_continuous_snapshotting_enabled=None, is_deleted=None, is_direct_archive_enabled=None, is_direct_archive_native_format_enabled=None, is_paused=None, is_rpo_job=None, job_creation_time_usecs=None, job_id=None, job_policy=None, job_uid=None, last_modification_time_usecs=None, last_pause_modification_time_usecs=None, last_pause_reason=None, last_updated_username=None, leverage_san_transport=None, leverage_storage_snapshots=None, leverage_storage_snapshots_for_hyperflex=None, log_backup_job_policy=None, max_allowed_source_snapshots=None, name=None, num_snapshots_to_keep_on_primary=None, parent_source=None, perform_source_side_dedup=None, policy_applied_time_msecs=None, policy_id=None, policy_name=None, post_backup_script=None, pre_script=None, primary_job_uid=None, priority=None, quiesce=None, remote_job_uids=None, remote_view_name=None, required_feature_vec=None, skip_tenant_validations=None, sla_time_mins=None, source_filters=None, sources=None, standby_resource_vec=None, start_time=None, stubbing_policy=None, tag_vec=None, timezone=None, truncate_logs=None, mtype=None, user_info=None, view_box_id=None): """Constructor for the BackupJobProto class""" # Initialize members of the class self.abort_in_exclusion_window = abort_in_exclusion_window self.alerting_policy = alerting_policy self.all_archival_snapshots_expired = all_archival_snapshots_expired self.backup_qos_principal = backup_qos_principal self.backup_source_params = backup_source_params self.continue_on_quiesce_failure = continue_on_quiesce_failure self.create_remote_view = create_remote_view self.dedup_disabled_source_id_vec = dedup_disabled_source_id_vec self.deletion_status = deletion_status self.description = description self.dr_to_cloud_params = dr_to_cloud_params self.eh_parent_source = eh_parent_source self.end_time_usecs = end_time_usecs self.env_backup_params = env_backup_params self.exclude_sources = exclude_sources self.exclude_sources_deprecated = exclude_sources_deprecated self.exclusion_ranges = exclusion_ranges self.full_backup_job_policy = full_backup_job_policy self.full_backup_sla_time_mins = full_backup_sla_time_mins self.global_include_exclude = global_include_exclude self.indexing_policy = indexing_policy self.is_active = is_active self.is_continuous_snapshotting_enabled = is_continuous_snapshotting_enabled self.is_deleted = is_deleted self.is_direct_archive_enabled = is_direct_archive_enabled self.is_direct_archive_native_format_enabled = is_direct_archive_native_format_enabled self.is_paused = is_paused self.is_rpo_job = is_rpo_job self.job_creation_time_usecs = job_creation_time_usecs self.job_id = job_id self.job_policy = job_policy self.job_uid = job_uid self.last_modification_time_usecs = last_modification_time_usecs self.last_pause_modification_time_usecs = last_pause_modification_time_usecs self.last_pause_reason = last_pause_reason self.last_updated_username = last_updated_username self.leverage_san_transport = leverage_san_transport self.leverage_storage_snapshots = leverage_storage_snapshots self.leverage_storage_snapshots_for_hyperflex = leverage_storage_snapshots_for_hyperflex self.log_backup_job_policy = log_backup_job_policy self.max_allowed_source_snapshots = max_allowed_source_snapshots self.name = name self.num_snapshots_to_keep_on_primary = num_snapshots_to_keep_on_primary self.parent_source = parent_source self.perform_source_side_dedup = perform_source_side_dedup self.policy_applied_time_msecs = policy_applied_time_msecs self.policy_id = policy_id self.policy_name = policy_name self.post_backup_script = post_backup_script self.pre_script = pre_script self.primary_job_uid = primary_job_uid self.priority = priority self.quiesce = quiesce self.remote_job_uids = remote_job_uids self.remote_view_name = remote_view_name self.required_feature_vec = required_feature_vec self.skip_tenant_validations = skip_tenant_validations self.sla_time_mins = sla_time_mins self.source_filters = source_filters self.sources = sources self.standby_resource_vec = standby_resource_vec self.start_time = start_time self.stubbing_policy = stubbing_policy self.tag_vec = tag_vec self.timezone = timezone self.truncate_logs = truncate_logs self.mtype = mtype self.user_info = user_info self.view_box_id = view_box_id
[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 abort_in_exclusion_window = dictionary.get('abortInExclusionWindow') alerting_policy = cohesity_management_sdk.models.alerting_policy_proto.AlertingPolicyProto.from_dictionary(dictionary.get('alertingPolicy')) if dictionary.get('alertingPolicy') else None all_archival_snapshots_expired = dictionary.get('allArchivalSnapshotsExpired') backup_qos_principal = dictionary.get('backupQosPrincipal') backup_source_params = None if dictionary.get('backupSourceParams') != None: backup_source_params = list() for structure in dictionary.get('backupSourceParams'): backup_source_params.append(cohesity_management_sdk.models.backup_source_params.BackupSourceParams.from_dictionary(structure)) continue_on_quiesce_failure = dictionary.get('continueOnQuiesceFailure') create_remote_view = dictionary.get('createRemoteView') dedup_disabled_source_id_vec = dictionary.get('dedupDisabledSourceIdVec') deletion_status = dictionary.get('deletionStatus') description = dictionary.get('description') dr_to_cloud_params = cohesity_management_sdk.models.backup_job_proto_dr_to_cloud_params.BackupJobProtoDRToCloudParams.from_dictionary(dictionary.get('drToCloudParams')) if dictionary.get('drToCloudParams') else None eh_parent_source = cohesity_management_sdk.models.entity_proto.EntityProto.from_dictionary(dictionary.get('ehParentSource')) if dictionary.get('ehParentSource') else None end_time_usecs = dictionary.get('endTimeUsecs') env_backup_params = cohesity_management_sdk.models.env_backup_params.EnvBackupParams.from_dictionary(dictionary.get('envBackupParams')) if dictionary.get('envBackupParams') else None exclude_sources = None if dictionary.get('excludeSources') != None: exclude_sources = list() for structure in dictionary.get('excludeSources'): exclude_sources.append(cohesity_management_sdk.models.backup_job_proto_exclude_source.BackupJobProtoExcludeSource.from_dictionary(structure)) exclude_sources_deprecated = None if dictionary.get('excludeSources_DEPRECATED') != None: exclude_sources_deprecated = list() for structure in dictionary.get('excludeSources_DEPRECATED'): exclude_sources_deprecated.append(cohesity_management_sdk.models.entity_proto.EntityProto.from_dictionary(structure)) exclusion_ranges = None if dictionary.get('exclusionRanges') != None: exclusion_ranges = list() for structure in dictionary.get('exclusionRanges'): exclusion_ranges.append(cohesity_management_sdk.models.backup_job_proto_exclusion_time_range.BackupJobProtoExclusionTimeRange.from_dictionary(structure)) full_backup_job_policy = cohesity_management_sdk.models.job_policy_proto.JobPolicyProto.from_dictionary(dictionary.get('fullBackupJobPolicy')) if dictionary.get('fullBackupJobPolicy') else None full_backup_sla_time_mins = dictionary.get('fullBackupSlaTimeMins') global_include_exclude = cohesity_management_sdk.models.physical_file_backup_params_global_include_exclude.PhysicalFileBackupParams_GlobalIncludeExclude.from_dictionary(dictionary.get('globalIncludeExclude')) if dictionary.get('globalIncludeExclude') else None indexing_policy = cohesity_management_sdk.models.indexing_policy_proto.IndexingPolicyProto.from_dictionary(dictionary.get('indexingPolicy')) if dictionary.get('indexingPolicy') else None is_active = dictionary.get('isActive') is_continuous_snapshotting_enabled = dictionary.get('isContinuousSnapshottingEnabled') is_deleted = dictionary.get('isDeleted') is_direct_archive_enabled = dictionary.get('isDirectArchiveEnabled') is_direct_archive_native_format_enabled = dictionary.get('isDirectArchiveNativeFormatEnabled') is_paused = dictionary.get('isPaused') is_rpo_job = dictionary.get('isRpoJob') job_creation_time_usecs = dictionary.get('jobCreationTimeUsecs') job_id = dictionary.get('jobId') job_policy = cohesity_management_sdk.models.job_policy_proto.JobPolicyProto.from_dictionary(dictionary.get('jobPolicy')) if dictionary.get('jobPolicy') else None job_uid = cohesity_management_sdk.models.universal_id_proto.UniversalIdProto.from_dictionary(dictionary.get('jobUid')) if dictionary.get('jobUid') else None last_modification_time_usecs = dictionary.get('lastModificationTimeUsecs') last_pause_modification_time_usecs = dictionary.get('lastPauseModificationTimeUsecs') last_pause_reason = dictionary.get('lastPauseReason') last_updated_username = dictionary.get('lastUpdatedUsername') leverage_san_transport = dictionary.get('leverageSanTransport') leverage_storage_snapshots = dictionary.get('leverageStorageSnapshots') leverage_storage_snapshots_for_hyperflex = dictionary.get('leverageStorageSnapshotsForHyperflex') log_backup_job_policy = cohesity_management_sdk.models.job_policy_proto.JobPolicyProto.from_dictionary(dictionary.get('logBackupJobPolicy')) if dictionary.get('logBackupJobPolicy') else None max_allowed_source_snapshots = dictionary.get('maxAllowedSourceSnapshots') name = dictionary.get('name') num_snapshots_to_keep_on_primary = dictionary.get('numSnapshotsToKeepOnPrimary') parent_source = cohesity_management_sdk.models.entity_proto.EntityProto.from_dictionary(dictionary.get('parentSource')) if dictionary.get('parentSource') else None perform_source_side_dedup = dictionary.get('performSourceSideDedup') policy_applied_time_msecs = dictionary.get('policyAppliedTimeMsecs') policy_id = dictionary.get('policyId') policy_name = dictionary.get('policyName') post_backup_script = cohesity_management_sdk.models.backup_job_pre_or_post_script.BackupJobPreOrPostScript.from_dictionary(dictionary.get('postBackupScript')) if dictionary.get('postBackupScript') else None pre_script = cohesity_management_sdk.models.backup_job_pre_or_post_script.BackupJobPreOrPostScript.from_dictionary(dictionary.get('preScript')) if dictionary.get('preScript') else None primary_job_uid = cohesity_management_sdk.models.universal_id_proto.UniversalIdProto.from_dictionary(dictionary.get('primaryJobUid')) if dictionary.get('primaryJobUid') else None priority = dictionary.get('priority') quiesce = dictionary.get('quiesce') remote_job_uids = None if dictionary.get('remoteJobUids') != None: remote_job_uids = list() for structure in dictionary.get('remoteJobUids'): remote_job_uids.append(cohesity_management_sdk.models.universal_id_proto.UniversalIdProto.from_dictionary(structure)) remote_view_name = dictionary.get('remoteViewName') required_feature_vec = dictionary.get('requiredFeatureVec') skip_tenant_validations = dictionary.get('skipTenantValidations') sla_time_mins = dictionary.get('slaTimeMins') source_filters = cohesity_management_sdk.models.source_filters.SourceFilters.from_dictionary(dictionary.get('sourceFilters')) if dictionary.get('sourceFilters') else None sources = None if dictionary.get('sources') != None: sources = list() for structure in dictionary.get('sources'): sources.append(cohesity_management_sdk.models.backup_job_proto_backup_source.BackupJobProtoBackupSource.from_dictionary(structure)) standby_resource_vec = None if dictionary.get('standby_resource_vec') != None: standby_resource_vec = list() for structure in dictionary.get('standby_resource_vec'): standby_resource_vec.append(cohesity_management_sdk.models.standby_resource.StandbyResource.from_dictionary(structure)) start_time = cohesity_management_sdk.models.time.Time.from_dictionary(dictionary.get('startTime')) if dictionary.get('startTime') else None stubbing_policy = cohesity_management_sdk.models.stubbing_policy_proto.StubbingPolicyProto.from_dictionary(dictionary.get('stubbingPolicy')) if dictionary.get('stubbingPolicy') else None tag_vec = dictionary.get('tagVec') timezone = dictionary.get('timezone') truncate_logs = dictionary.get('truncateLogs') mtype = dictionary.get('type') user_info = cohesity_management_sdk.models.user_information.UserInformation.from_dictionary(dictionary.get('userInfo')) if dictionary.get('userInfo') else None view_box_id = dictionary.get('viewBoxId') # Return an object of this model return cls(abort_in_exclusion_window, alerting_policy, all_archival_snapshots_expired, backup_qos_principal, backup_source_params, continue_on_quiesce_failure, create_remote_view, dedup_disabled_source_id_vec, deletion_status, description, dr_to_cloud_params, eh_parent_source, end_time_usecs, env_backup_params, exclude_sources, exclude_sources_deprecated, exclusion_ranges, full_backup_job_policy, full_backup_sla_time_mins, global_include_exclude, indexing_policy, is_active, is_continuous_snapshotting_enabled, is_deleted, is_direct_archive_enabled, is_direct_archive_native_format_enabled, is_paused, is_rpo_job, job_creation_time_usecs, job_id, job_policy, job_uid, last_modification_time_usecs, last_pause_modification_time_usecs, last_pause_reason, last_updated_username, leverage_san_transport, leverage_storage_snapshots, leverage_storage_snapshots_for_hyperflex, log_backup_job_policy, max_allowed_source_snapshots, name, num_snapshots_to_keep_on_primary, parent_source, perform_source_side_dedup, policy_applied_time_msecs, policy_id, policy_name, post_backup_script, pre_script, primary_job_uid, priority, quiesce, remote_job_uids, remote_view_name, required_feature_vec, skip_tenant_validations, sla_time_mins, source_filters, sources, start_time, stubbing_policy, tag_vec, timezone, truncate_logs, mtype, user_info, view_box_id)