/// <summary>
 /// Initializes a new instance of the JobDetails class.
 /// </summary>
 /// <param name="contactDetails">Contact details for notification and
 /// shipping.</param>
 /// <param name="jobStages">List of stages that run in the job.</param>
 /// <param name="shippingAddress">Shipping address of the
 /// customer.</param>
 /// <param name="deliveryPackage">Delivery package shipping
 /// details.</param>
 /// <param name="returnPackage">Return package shipping
 /// details.</param>
 /// <param name="dataImportDetails">Details of the data to be imported
 /// into azure.</param>
 /// <param name="dataExportDetails">Details of the data to be exported
 /// from azure.</param>
 /// <param name="preferences">Preferences for the order.</param>
 /// <param name="copyLogDetails">List of copy log details.</param>
 /// <param name="reverseShipmentLabelSasKey">Shared access key to
 /// download the return shipment label</param>
 /// <param name="chainOfCustodySasKey">Shared access key to download
 /// the chain of custody logs</param>
 /// <param name="keyEncryptionKey">Details about which key encryption
 /// type is being used.</param>
 /// <param name="expectedDataSizeInTeraBytes">The expected size of the
 /// data, which needs to be transferred in this job, in
 /// terabytes.</param>
 /// <param name="actions">Available actions on the job.</param>
 /// <param name="lastMitigationActionOnJob">Last mitigation action
 /// performed on the job.</param>
 /// <param name="datacenterAddress">Datacenter address to ship to, for
 /// the given sku and storage location.</param>
 /// <param name="dataCenterCode">DataCenter code. Possible values
 /// include: 'Invalid', 'BY2', 'BY1', 'ORK70', 'AM2', 'AMS20', 'BY21',
 /// 'BY24', 'MWH01', 'AMS06', 'SSE90', 'SYD03', 'SYD23', 'CBR20',
 /// 'YTO20', 'CWL20', 'LON24', 'BOM01', 'BL20', 'BL7', 'SEL20',
 /// 'TYO01', 'BN1', 'SN5', 'CYS04', 'TYO22', 'YTO21', 'YQB20', 'FRA22',
 /// 'MAA01', 'CPQ02', 'CPQ20', 'SIN20', 'HKG20', 'SG2', 'MEL23',
 /// 'SEL21', 'OSA20', 'SHA03', 'BJB', 'JNB22', 'JNB21', 'MNZ21', 'SN8',
 /// 'AUH20', 'ZRH20', 'PUS20', 'AdHoc', 'CH1', 'DSM05'</param>
 public JobDetails(ContactDetails contactDetails, IList <JobStages> jobStages = default(IList <JobStages>), ShippingAddress shippingAddress = default(ShippingAddress), PackageShippingDetails deliveryPackage = default(PackageShippingDetails), PackageShippingDetails returnPackage = default(PackageShippingDetails), IList <DataImportDetails> dataImportDetails = default(IList <DataImportDetails>), IList <DataExportDetails> dataExportDetails = default(IList <DataExportDetails>), Preferences preferences = default(Preferences), IList <CopyLogDetails> copyLogDetails = default(IList <CopyLogDetails>), string reverseShipmentLabelSasKey = default(string), string chainOfCustodySasKey = default(string), KeyEncryptionKey keyEncryptionKey = default(KeyEncryptionKey), int?expectedDataSizeInTeraBytes = default(int?), IList <CustomerResolutionCode?> actions = default(IList <CustomerResolutionCode?>), LastMitigationActionOnJob lastMitigationActionOnJob = default(LastMitigationActionOnJob), DatacenterAddressResponse datacenterAddress = default(DatacenterAddressResponse), string dataCenterCode = default(string))
 {
     JobStages                   = jobStages;
     ContactDetails              = contactDetails;
     ShippingAddress             = shippingAddress;
     DeliveryPackage             = deliveryPackage;
     ReturnPackage               = returnPackage;
     DataImportDetails           = dataImportDetails;
     DataExportDetails           = dataExportDetails;
     Preferences                 = preferences;
     CopyLogDetails              = copyLogDetails;
     ReverseShipmentLabelSasKey  = reverseShipmentLabelSasKey;
     ChainOfCustodySasKey        = chainOfCustodySasKey;
     KeyEncryptionKey            = keyEncryptionKey;
     ExpectedDataSizeInTeraBytes = expectedDataSizeInTeraBytes;
     Actions = actions;
     LastMitigationActionOnJob = lastMitigationActionOnJob;
     DatacenterAddress         = datacenterAddress;
     DataCenterCode            = dataCenterCode;
     CustomInit();
 }
 /// <summary>
 /// Initializes a new instance of the DataBoxCustomerDiskJobDetails
 /// class.
 /// </summary>
 /// <param name="contactDetails">Contact details for notification and
 /// shipping.</param>
 /// <param name="returnToCustomerPackageDetails">Return package
 /// shipping details.</param>
 /// <param name="jobStages">List of stages that run in the job.</param>
 /// <param name="shippingAddress">Shipping address of the
 /// customer.</param>
 /// <param name="deliveryPackage">Delivery package shipping
 /// details.</param>
 /// <param name="returnPackage">Return package shipping
 /// details.</param>
 /// <param name="dataImportDetails">Details of the data to be imported
 /// into azure.</param>
 /// <param name="dataExportDetails">Details of the data to be exported
 /// from azure.</param>
 /// <param name="preferences">Preferences for the order.</param>
 /// <param name="copyLogDetails">List of copy log details.</param>
 /// <param name="reverseShipmentLabelSasKey">Shared access key to
 /// download the return shipment label</param>
 /// <param name="chainOfCustodySasKey">Shared access key to download
 /// the chain of custody logs</param>
 /// <param name="keyEncryptionKey">Details about which key encryption
 /// type is being used.</param>
 /// <param name="expectedDataSizeInTeraBytes">The expected size of the
 /// data, which needs to be transferred in this job, in
 /// terabytes.</param>
 /// <param name="actions">Available actions on the job.</param>
 /// <param name="lastMitigationActionOnJob">Last mitigation action
 /// performed on the job.</param>
 /// <param name="datacenterAddress">Datacenter address to ship to, for
 /// the given sku and storage location.</param>
 /// <param name="dataCenterCode">DataCenter code. Possible values
 /// include: 'Invalid', 'BY2', 'BY1', 'ORK70', 'AM2', 'AMS20', 'BY21',
 /// 'BY24', 'MWH01', 'AMS06', 'SSE90', 'SYD03', 'SYD23', 'CBR20',
 /// 'YTO20', 'CWL20', 'LON24', 'BOM01', 'BL20', 'BL7', 'SEL20',
 /// 'TYO01', 'BN1', 'SN5', 'CYS04', 'TYO22', 'YTO21', 'YQB20', 'FRA22',
 /// 'MAA01', 'CPQ02', 'CPQ20', 'SIN20', 'HKG20', 'SG2', 'MEL23',
 /// 'SEL21', 'OSA20', 'SHA03', 'BJB', 'JNB22', 'JNB21', 'MNZ21', 'SN8',
 /// 'AUH20', 'ZRH20', 'PUS20', 'AdHoc', 'CH1', 'DSM05'</param>
 /// <param name="importDiskDetailsCollection">Contains the map of disk
 /// serial number to the disk details for import jobs.</param>
 /// <param name="exportDiskDetailsCollection">Contains the map of disk
 /// serial number to the disk details for export jobs.</param>
 /// <param name="copyProgress">Copy progress per disk.</param>
 /// <param name="deliverToDcPackageDetails">Delivery package shipping
 /// details.</param>
 /// <param name="enableManifestBackup">Flag to indicate if disk
 /// manifest should be backed-up in the Storage Account.</param>
 public DataBoxCustomerDiskJobDetails(ContactDetails contactDetails, PackageCarrierDetails returnToCustomerPackageDetails, IList <JobStages> jobStages = default(IList <JobStages>), ShippingAddress shippingAddress = default(ShippingAddress), PackageShippingDetails deliveryPackage = default(PackageShippingDetails), PackageShippingDetails returnPackage = default(PackageShippingDetails), IList <DataImportDetails> dataImportDetails = default(IList <DataImportDetails>), IList <DataExportDetails> dataExportDetails = default(IList <DataExportDetails>), Preferences preferences = default(Preferences), IList <CopyLogDetails> copyLogDetails = default(IList <CopyLogDetails>), string reverseShipmentLabelSasKey = default(string), string chainOfCustodySasKey = default(string), KeyEncryptionKey keyEncryptionKey = default(KeyEncryptionKey), int?expectedDataSizeInTeraBytes = default(int?), IList <CustomerResolutionCode?> actions = default(IList <CustomerResolutionCode?>), LastMitigationActionOnJob lastMitigationActionOnJob = default(LastMitigationActionOnJob), DatacenterAddressResponse datacenterAddress = default(DatacenterAddressResponse), string dataCenterCode = default(string), IDictionary <string, ImportDiskDetails> importDiskDetailsCollection = default(IDictionary <string, ImportDiskDetails>), IDictionary <string, ExportDiskDetails> exportDiskDetailsCollection = default(IDictionary <string, ExportDiskDetails>), IList <DataBoxCustomerDiskCopyProgress> copyProgress = default(IList <DataBoxCustomerDiskCopyProgress>), PackageCarrierInfo deliverToDcPackageDetails = default(PackageCarrierInfo), bool?enableManifestBackup = default(bool?))
     : base(contactDetails, jobStages, shippingAddress, deliveryPackage, returnPackage, dataImportDetails, dataExportDetails, preferences, copyLogDetails, reverseShipmentLabelSasKey, chainOfCustodySasKey, keyEncryptionKey, expectedDataSizeInTeraBytes, actions, lastMitigationActionOnJob, datacenterAddress, dataCenterCode)
 {
     ImportDiskDetailsCollection = importDiskDetailsCollection;
     ExportDiskDetailsCollection = exportDiskDetailsCollection;
     CopyProgress = copyProgress;
     DeliverToDcPackageDetails      = deliverToDcPackageDetails;
     ReturnToCustomerPackageDetails = returnToCustomerPackageDetails;
     EnableManifestBackup           = enableManifestBackup;
     CustomInit();
 }
 /// <summary>
 /// Initializes a new instance of the DataBoxHeavyJobDetails class.
 /// </summary>
 /// <param name="contactDetails">Contact details for notification and
 /// shipping.</param>
 /// <param name="jobStages">List of stages that run in the job.</param>
 /// <param name="shippingAddress">Shipping address of the
 /// customer.</param>
 /// <param name="deliveryPackage">Delivery package shipping
 /// details.</param>
 /// <param name="returnPackage">Return package shipping
 /// details.</param>
 /// <param name="dataImportDetails">Details of the data to be imported
 /// into azure.</param>
 /// <param name="dataExportDetails">Details of the data to be exported
 /// from azure.</param>
 /// <param name="preferences">Preferences for the order.</param>
 /// <param name="copyLogDetails">List of copy log details.</param>
 /// <param name="reverseShipmentLabelSasKey">Shared access key to
 /// download the return shipment label</param>
 /// <param name="chainOfCustodySasKey">Shared access key to download
 /// the chain of custody logs</param>
 /// <param name="keyEncryptionKey">Details about which key encryption
 /// type is being used.</param>
 /// <param name="expectedDataSizeInTeraBytes">The expected size of the
 /// data, which needs to be transferred in this job, in
 /// terabytes.</param>
 /// <param name="actions">Available actions on the job.</param>
 /// <param name="lastMitigationActionOnJob">Last mitigation action
 /// performed on the job.</param>
 /// <param name="datacenterAddress">Datacenter address to ship to, for
 /// the given sku and storage location.</param>
 /// <param name="dataCenterCode">DataCenter code. Possible values
 /// include: 'Invalid', 'BY2', 'BY1', 'ORK70', 'AM2', 'AMS20', 'BY21',
 /// 'BY24', 'MWH01', 'AMS06', 'SSE90', 'SYD03', 'SYD23', 'CBR20',
 /// 'YTO20', 'CWL20', 'LON24', 'BOM01', 'BL20', 'BL7', 'SEL20',
 /// 'TYO01', 'BN1', 'SN5', 'CYS04', 'TYO22', 'YTO21', 'YQB20', 'FRA22',
 /// 'MAA01', 'CPQ02', 'CPQ20', 'SIN20', 'HKG20', 'SG2', 'MEL23',
 /// 'SEL21', 'OSA20', 'SHA03', 'BJB', 'JNB22', 'JNB21', 'MNZ21', 'SN8',
 /// 'AUH20', 'ZRH20', 'PUS20', 'AdHoc', 'CH1', 'DSM05'</param>
 /// <param name="copyProgress">Copy progress per account.</param>
 /// <param name="devicePassword">Set Device password for unlocking
 /// Databox Heavy. Should not be passed for
 /// TransferType:ExportFromAzure jobs. If this is not passed, the
 /// service will generate password itself. This will not be returned in
 /// Get Call. Password Requirements :  Password must be minimum of 12
 /// and maximum of 64 characters. Password must have at least one
 /// uppercase alphabet, one number and one special character. Password
 /// cannot have the following characters : IilLoO0 Password can have
 /// only alphabets, numbers and these characters :
 /// @#\-$%^!+=;:_()]+</param>
 public DataBoxHeavyJobDetails(ContactDetails contactDetails, IList <JobStages> jobStages = default(IList <JobStages>), ShippingAddress shippingAddress = default(ShippingAddress), PackageShippingDetails deliveryPackage = default(PackageShippingDetails), PackageShippingDetails returnPackage = default(PackageShippingDetails), IList <DataImportDetails> dataImportDetails = default(IList <DataImportDetails>), IList <DataExportDetails> dataExportDetails = default(IList <DataExportDetails>), Preferences preferences = default(Preferences), IList <CopyLogDetails> copyLogDetails = default(IList <CopyLogDetails>), string reverseShipmentLabelSasKey = default(string), string chainOfCustodySasKey = default(string), KeyEncryptionKey keyEncryptionKey = default(KeyEncryptionKey), int?expectedDataSizeInTeraBytes = default(int?), IList <CustomerResolutionCode?> actions = default(IList <CustomerResolutionCode?>), LastMitigationActionOnJob lastMitigationActionOnJob = default(LastMitigationActionOnJob), DatacenterAddressResponse datacenterAddress = default(DatacenterAddressResponse), string dataCenterCode = default(string), IList <CopyProgress> copyProgress = default(IList <CopyProgress>), string devicePassword = default(string))
     : base(contactDetails, jobStages, shippingAddress, deliveryPackage, returnPackage, dataImportDetails, dataExportDetails, preferences, copyLogDetails, reverseShipmentLabelSasKey, chainOfCustodySasKey, keyEncryptionKey, expectedDataSizeInTeraBytes, actions, lastMitigationActionOnJob, datacenterAddress, dataCenterCode)
 {
     CopyProgress   = copyProgress;
     DevicePassword = devicePassword;
     CustomInit();
 }