# -*- coding: utf-8 -*-
import cohesity_management_sdk.models_v2.netapp_recover_file_and_folder_info
import cohesity_management_sdk.models_v2.netapp_target_params_1
import cohesity_management_sdk.models_v2.elastifile_target_params_1
import cohesity_management_sdk.models_v2.flashblade_target_params_1
import cohesity_management_sdk.models_v2.generic_nas_target_params_1
import cohesity_management_sdk.models_v2.gpfs_target_params_1
import cohesity_management_sdk.models_v2.isilon_target_params_1
[docs]class RecoverFileAndFolderParams4(object):
"""Implementation of the 'RecoverFileAndFolderParams4' model.
Specifies the parameters to recover files.
Attributes:
files_and_folders (list of NetappRecoverFileAndFolderInfo): Specifies
the list of info about the netapp files and folders to be
recovered.
is_from_source_initiated_protection (bool): Specifies if the snapshot
trying to recover is from a source initiated protection.
target_environment (TargetEnvironment1Enum): Specifies the environment
of the recovery target. The corresponding params below must be
filled out.
netapp_target_params (NetappTargetParams1): Specifies the params for a
Netapp recovery target.
elastifile_target_params (ElastifileTargetParams1): Specifies the
params for an Elastifile recovery target.
flashblade_target_params (FlashbladeTargetParams1): Specifies the
params for a Flashblade recovery target.
generic_nas_target_params (GenericNasTargetParams1): Specifies the
params for a generic NAS recovery target.
gpfs_target_params (GpfsTargetParams1): Specifies the params for a
GPFS recovery target.
isilon_target_params (IsilonTargetParams1): Specifies the params for
an Isilon recovery target.
"""
# Create a mapping from Model property names to API property names
_names = {
"files_and_folders":'filesAndFolders',
"target_environment":'targetEnvironment',
"is_from_source_initiated_protection":'isFromSourceInitiatedProtection',
"netapp_target_params":'netappTargetParams',
"elastifile_target_params":'elastifileTargetParams',
"flashblade_target_params":'flashbladeTargetParams',
"generic_nas_target_params":'genericNasTargetParams',
"gpfs_target_params":'gpfsTargetParams',
"isilon_target_params":'isilonTargetParams'
}
def __init__(self,
files_and_folders=None,
target_environment=None,
is_from_source_initiated_protection=None,
netapp_target_params=None,
elastifile_target_params=None,
flashblade_target_params=None,
generic_nas_target_params=None,
gpfs_target_params=None,
isilon_target_params=None):
"""Constructor for the RecoverFileAndFolderParams4 class"""
# Initialize members of the class
self.files_and_folders = files_and_folders
self.is_from_source_initiated_protection = is_from_source_initiated_protection
self.target_environment = target_environment
self.netapp_target_params = netapp_target_params
self.elastifile_target_params = elastifile_target_params
self.flashblade_target_params = flashblade_target_params
self.generic_nas_target_params = generic_nas_target_params
self.gpfs_target_params = gpfs_target_params
self.isilon_target_params = isilon_target_params
[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
files_and_folders = None
if dictionary.get('filesAndFolders') != None:
files_and_folders = list()
for structure in dictionary.get('filesAndFolders'):
files_and_folders.append(cohesity_management_sdk.models_v2.netapp_recover_file_and_folder_info.NetappRecoverFileAndFolderInfo.from_dictionary(structure))
target_environment = dictionary.get('targetEnvironment')
is_from_source_initiated_protection = dictionary.get('isFromSourceInitiatedProtection')
netapp_target_params = cohesity_management_sdk.models_v2.netapp_target_params_1.NetappTargetParams1.from_dictionary(dictionary.get('netappTargetParams')) if dictionary.get('netappTargetParams') else None
elastifile_target_params = cohesity_management_sdk.models_v2.elastifile_target_params_1.ElastifileTargetParams1.from_dictionary(dictionary.get('elastifileTargetParams')) if dictionary.get('elastifileTargetParams') else None
flashblade_target_params = cohesity_management_sdk.models_v2.flashblade_target_params_1.FlashbladeTargetParams1.from_dictionary(dictionary.get('flashbladeTargetParams')) if dictionary.get('flashbladeTargetParams') else None
generic_nas_target_params = cohesity_management_sdk.models_v2.generic_nas_target_params_1.GenericNasTargetParams1.from_dictionary(dictionary.get('genericNasTargetParams')) if dictionary.get('genericNasTargetParams') else None
gpfs_target_params = cohesity_management_sdk.models_v2.gpfs_target_params_1.GpfsTargetParams1.from_dictionary(dictionary.get('gpfsTargetParams')) if dictionary.get('gpfsTargetParams') else None
isilon_target_params = cohesity_management_sdk.models_v2.isilon_target_params_1.IsilonTargetParams1.from_dictionary(dictionary.get('isilonTargetParams')) if dictionary.get('isilonTargetParams') else None
# Return an object of this model
return cls(files_and_folders,
target_environment,
is_from_source_initiated_protection,
netapp_target_params,
elastifile_target_params,
flashblade_target_params,
generic_nas_target_params,
gpfs_target_params,
isilon_target_params)