/// <summary>
 /// Initializes a new instance of the <see cref="CreateViewRequest" /> class.
 /// </summary>
 /// <param name="accessSids">Array of Security Identifiers (SIDs)  Specifies the list of security identifiers (SIDs) for the restricted Principals who have access to this View..</param>
 /// <param name="antivirusScanConfig">antivirusScanConfig.</param>
 /// <param name="caseInsensitiveNamesEnabled">Specifies whether to support case insensitive file/folder names. This parameter can only be set during create and cannot be changed..</param>
 /// <param name="description">Specifies an optional text description about the View..</param>
 /// <param name="enableFilerAuditLogging">Specifies if Filer Audit Logging is enabled for this view..</param>
 /// <param name="enableMixedModePermissions">If set, mixed mode (NFS and SMB) access is enabled for this view. This field is deprecated. Use the field SecurityMode. deprecated: true.</param>
 /// <param name="enableNfsViewDiscovery">If set, it enables discovery of view for NFS..</param>
 /// <param name="enableOfflineCaching">Specifies whether to enable offline file caching of the view..</param>
 /// <param name="enableSmbAccessBasedEnumeration">Specifies if access-based enumeration should be enabled. If &#39;true&#39;, only files and folders that the user has permissions to access are visible on the SMB share for that user..</param>
 /// <param name="enableSmbEncryption">Specifies the SMB encryption for the View. If set, it enables the SMB encryption for the View. Encryption is supported only by SMB 3.x dialects. Dialects that do not support would still access data in unencrypted format..</param>
 /// <param name="enableSmbViewDiscovery">If set, it enables discovery of view for SMB..</param>
 /// <param name="enforceSmbEncryption">Specifies the SMB encryption for all the sessions for the View. If set, encryption is enforced for all the sessions for the View. When enabled all future and existing unencrypted sessions are disallowed..</param>
 /// <param name="fileExtensionFilter">fileExtensionFilter.</param>
 /// <param name="fileLockConfig">fileLockConfig.</param>
 /// <param name="logicalQuota">Specifies an optional logical quota limit (in bytes) for the usage allowed on this View. (Logical data is when the data is fully hydrated and expanded.) This limit overrides the limit inherited from the Storage Domain (View Box) (if set). If logicalQuota is nil, the limit is inherited from the Storage Domain (View Box) (if set). A new write is not allowed if the Storage Domain (View Box) will exceed the specified quota. However, it takes time for the Cohesity Cluster to calculate the usage across Nodes, so the limit may be exceeded by a small amount. In addition, if the limit is increased or data is removed, there may be a delay before the Cohesity Cluster allows more data to be written to the View, as the Cluster is calculating the usage across Nodes..</param>
 /// <param name="name">Specifies the name of the new View to create. (required).</param>
 /// <param name="nfsAllSquash">nfsAllSquash.</param>
 /// <param name="nfsRootPermissions">nfsRootPermissions.</param>
 /// <param name="nfsRootSquash">nfsRootSquash.</param>
 /// <param name="overrideGlobalWhitelist">Specifies whether view level client subnet whitelist overrides cluster and global setting..</param>
 /// <param name="protocolAccess">Specifies the supported Protocols for the View. &#39;kAll&#39; enables protocol access to all three views: NFS, SMB and S3. &#39;kNFSOnly&#39; enables protocol access to NFS only. &#39;kSMBOnly&#39; enables protocol access to SMB only. &#39;kS3Only&#39; enables protocol access to S3 only..</param>
 /// <param name="qos">qos.</param>
 /// <param name="s3KeyMappingConfig">Specifies key mapping config of S3 storage. Configuration of S3 key mapping.  Specifies the type of S3 key mapping config..</param>
 /// <param name="securityMode">Specifies the security mode used for this view. Currently we support the following modes: Native, Unified and NTFS style. &#39;kNativeMode&#39; indicates a native security mode. &#39;kUnifiedMode&#39; indicates a unified security mode. &#39;kNtfsMode&#39; indicates a NTFS style security mode..</param>
 /// <param name="sharePermissions">Specifies a list of share level permissions..</param>
 /// <param name="smbPermissionsInfo">smbPermissionsInfo.</param>
 /// <param name="storagePolicyOverride">storagePolicyOverride.</param>
 /// <param name="subnetWhitelist">Array of Subnets.  Specifies a list of Subnets with IP addresses that have permissions to access the View. (Overrides the Subnets specified at the global Cohesity Cluster level.).</param>
 /// <param name="tenantId">Optional tenant id who has access to this View..</param>
 /// <param name="viewBoxId">Specifies the id of the Storage Domain (View Box) where the View will be created. (required).</param>
 public CreateViewRequest(List <string> accessSids = default(List <string>), AntivirusScanConfig antivirusScanConfig = default(AntivirusScanConfig), bool?caseInsensitiveNamesEnabled = default(bool?), string description = default(string), bool?enableFilerAuditLogging = default(bool?), bool?enableMixedModePermissions = default(bool?), bool?enableNfsViewDiscovery = default(bool?), bool?enableOfflineCaching = default(bool?), bool?enableSmbAccessBasedEnumeration = default(bool?), bool?enableSmbEncryption = default(bool?), bool?enableSmbViewDiscovery = default(bool?), bool?enforceSmbEncryption = default(bool?), FileExtensionFilter fileExtensionFilter = default(FileExtensionFilter), FileLevelDataLockConfig fileLockConfig = default(FileLevelDataLockConfig), QuotaPolicy logicalQuota = default(QuotaPolicy), string name = default(string), NfsSquash nfsAllSquash = default(NfsSquash), NfsRootPermissions nfsRootPermissions = default(NfsRootPermissions), NfsSquash nfsRootSquash = default(NfsSquash), bool?overrideGlobalWhitelist = default(bool?), ProtocolAccessEnum?protocolAccess = default(ProtocolAccessEnum?), QoS qos = default(QoS), S3KeyMappingConfigEnum?s3KeyMappingConfig = default(S3KeyMappingConfigEnum?), SecurityModeEnum?securityMode = default(SecurityModeEnum?), List <SmbPermission> sharePermissions = default(List <SmbPermission>), SmbPermissionsInfo smbPermissionsInfo = default(SmbPermissionsInfo), StoragePolicyOverride storagePolicyOverride = default(StoragePolicyOverride), List <Subnet> subnetWhitelist = default(List <Subnet>), string tenantId = default(string), long?viewBoxId = default(long?))
 {
     this.AccessSids = accessSids;
     this.CaseInsensitiveNamesEnabled = caseInsensitiveNamesEnabled;
     this.Description                     = description;
     this.EnableFilerAuditLogging         = enableFilerAuditLogging;
     this.EnableMixedModePermissions      = enableMixedModePermissions;
     this.EnableNfsViewDiscovery          = enableNfsViewDiscovery;
     this.EnableOfflineCaching            = enableOfflineCaching;
     this.EnableSmbAccessBasedEnumeration = enableSmbAccessBasedEnumeration;
     this.EnableSmbEncryption             = enableSmbEncryption;
     this.EnableSmbViewDiscovery          = enableSmbViewDiscovery;
     this.EnforceSmbEncryption            = enforceSmbEncryption;
     this.LogicalQuota                    = logicalQuota;
     this.Name = name;
     this.OverrideGlobalWhitelist = overrideGlobalWhitelist;
     this.ProtocolAccess          = protocolAccess;
     this.S3KeyMappingConfig      = s3KeyMappingConfig;
     this.SecurityMode            = securityMode;
     this.SharePermissions        = sharePermissions;
     this.SubnetWhitelist         = subnetWhitelist;
     this.TenantId                        = tenantId;
     this.ViewBoxId                       = viewBoxId;
     this.AccessSids                      = accessSids;
     this.AntivirusScanConfig             = antivirusScanConfig;
     this.CaseInsensitiveNamesEnabled     = caseInsensitiveNamesEnabled;
     this.Description                     = description;
     this.EnableFilerAuditLogging         = enableFilerAuditLogging;
     this.EnableMixedModePermissions      = enableMixedModePermissions;
     this.EnableNfsViewDiscovery          = enableNfsViewDiscovery;
     this.EnableOfflineCaching            = enableOfflineCaching;
     this.EnableSmbAccessBasedEnumeration = enableSmbAccessBasedEnumeration;
     this.EnableSmbEncryption             = enableSmbEncryption;
     this.EnableSmbViewDiscovery          = enableSmbViewDiscovery;
     this.EnforceSmbEncryption            = enforceSmbEncryption;
     this.FileExtensionFilter             = fileExtensionFilter;
     this.FileLockConfig                  = fileLockConfig;
     this.LogicalQuota                    = logicalQuota;
     this.NfsAllSquash                    = nfsAllSquash;
     this.NfsRootPermissions              = nfsRootPermissions;
     this.NfsRootSquash                   = nfsRootSquash;
     this.OverrideGlobalWhitelist         = overrideGlobalWhitelist;
     this.ProtocolAccess                  = protocolAccess;
     this.Qos = qos;
     this.S3KeyMappingConfig    = s3KeyMappingConfig;
     this.SecurityMode          = securityMode;
     this.SharePermissions      = sharePermissions;
     this.SmbPermissionsInfo    = smbPermissionsInfo;
     this.StoragePolicyOverride = storagePolicyOverride;
     this.SubnetWhitelist       = subnetWhitelist;
     this.TenantId = tenantId;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="CloneViewRequest" /> class.
 /// </summary>
 /// <param name="accessSids">Array of Security Identifiers (SIDs)  Specifies the list of security identifiers (SIDs) for the restricted Principals who have access to this View..</param>
 /// <param name="antivirusScanConfig">antivirusScanConfig.</param>
 /// <param name="cloneViewName">Specifies the name of the new View that is cloned from the source View..</param>
 /// <param name="dataLockExpiryUsecs">DataLock (Write Once Read Many) lock expiry epoch time in microseconds. If specified, a view will be marked as a DataLock view. If a view is marked as a DataLock view, only a Data Security Officer (a user having Data Security Privilege) can delete the view until the lock expiry time..</param>
 /// <param name="description">Specifies an optional text description about the View..</param>
 /// <param name="enableFastDurableHandle">Specifies whether fast durable handle is enabled. If enabled, view open handle will be kept in memory, which results in a higher performance. But the handles cannot be recovered if node or service crashes..</param>
 /// <param name="enableFilerAuditLogging">Specifies if Filer Audit Logging is enabled for this view..</param>
 /// <param name="enableLiveIndexing">Specifies whether to enable live indexing for the view..</param>
 /// <param name="enableMixedModePermissions">If set, mixed mode (NFS and SMB) access is enabled for this view. This field is deprecated. Use the field SecurityMode. deprecated: true.</param>
 /// <param name="enableNfsViewDiscovery">If set, it enables discovery of view for NFS..</param>
 /// <param name="enableOfflineCaching">Specifies whether to enable offline file caching of the view..</param>
 /// <param name="enableSmbAccessBasedEnumeration">Specifies if access-based enumeration should be enabled. If &#39;true&#39;, only files and folders that the user has permissions to access are visible on the SMB share for that user..</param>
 /// <param name="enableSmbEncryption">Specifies the SMB encryption for the View. If set, it enables the SMB encryption for the View. Encryption is supported only by SMB 3.x dialects. Dialects that do not support would still access data in unencrypted format..</param>
 /// <param name="enableSmbOplock">Specifies whether SMB opportunistic lock is enabled..</param>
 /// <param name="enableSmbViewDiscovery">If set, it enables discovery of view for SMB..</param>
 /// <param name="enforceSmbEncryption">Specifies the SMB encryption for all the sessions for the View. If set, encryption is enforced for all the sessions for the View. When enabled all future and existing unencrypted sessions are disallowed..</param>
 /// <param name="fileExtensionFilter">fileExtensionFilter.</param>
 /// <param name="fileLockConfig">fileLockConfig.</param>
 /// <param name="logicalQuota">Specifies an optional logical quota limit (in bytes) for the usage allowed on this View. (Logical data is when the data is fully hydrated and expanded.) This limit overrides the limit inherited from the Storage Domain (View Box) (if set). If logicalQuota is nil, the limit is inherited from the Storage Domain (View Box) (if set). A new write is not allowed if the Storage Domain (View Box) will exceed the specified quota. However, it takes time for the Cohesity Cluster to calculate the usage across Nodes, so the limit may be exceeded by a small amount. In addition, if the limit is increased or data is removed, there may be a delay before the Cohesity Cluster allows more data to be written to the View, as the Cluster is calculating the usage across Nodes..</param>
 /// <param name="nfsAllSquash">nfsAllSquash.</param>
 /// <param name="nfsRootPermissions">nfsRootPermissions.</param>
 /// <param name="nfsRootSquash">nfsRootSquash.</param>
 /// <param name="overrideGlobalWhitelist">Specifies whether view level client subnet whitelist overrides cluster and global setting..</param>
 /// <param name="protocolAccess">Specifies the supported Protocols for the View. &#39;kAll&#39; enables protocol access to following three views: NFS, SMB and S3. &#39;kNFSOnly&#39; enables protocol access to NFS only. &#39;kSMBOnly&#39; enables protocol access to SMB only. &#39;kS3Only&#39; enables protocol access to S3 only. &#39;kSwiftOnly&#39; enables protocol access to Swift only..</param>
 /// <param name="qos">qos.</param>
 /// <param name="securityMode">Specifies the security mode used for this view. Currently we support the following modes: Native, Unified and NTFS style. &#39;kNativeMode&#39; indicates a native security mode. &#39;kUnifiedMode&#39; indicates a unified security mode. &#39;kNtfsMode&#39; indicates a NTFS style security mode..</param>
 /// <param name="sharePermissions">Specifies a list of share level permissions..</param>
 /// <param name="smbPermissionsInfo">smbPermissionsInfo.</param>
 /// <param name="sourceViewName">Specifies the name of the source View that will be cloned..</param>
 /// <param name="storagePolicyOverride">storagePolicyOverride.</param>
 /// <param name="subnetWhitelist">Array of Subnets.  Specifies a list of Subnets with IP addresses that have permissions to access the View. (Overrides the Subnets specified at the global Cohesity Cluster level.).</param>
 /// <param name="swiftProjectDomain">Specifies the Keystone project domain..</param>
 /// <param name="swiftProjectName">Specifies the Keystone project name..</param>
 /// <param name="tenantId">Optional tenant id who has access to this View..</param>
 public CloneViewRequest(List <string> accessSids = default(List <string>), AntivirusScanConfig antivirusScanConfig = default(AntivirusScanConfig), string cloneViewName = default(string), long?dataLockExpiryUsecs = default(long?), string description = default(string), bool?enableFastDurableHandle = default(bool?), bool?enableFilerAuditLogging = default(bool?), bool?enableLiveIndexing = default(bool?), bool?enableMixedModePermissions = default(bool?), bool?enableNfsViewDiscovery = default(bool?), bool?enableOfflineCaching = default(bool?), bool?enableSmbAccessBasedEnumeration = default(bool?), bool?enableSmbEncryption = default(bool?), bool?enableSmbOplock = default(bool?), bool?enableSmbViewDiscovery = default(bool?), bool?enforceSmbEncryption = default(bool?), FileExtensionFilter fileExtensionFilter = default(FileExtensionFilter), FileLevelDataLockConfig fileLockConfig = default(FileLevelDataLockConfig), QuotaPolicy logicalQuota = default(QuotaPolicy), NfsSquash nfsAllSquash = default(NfsSquash), NfsRootPermissions nfsRootPermissions = default(NfsRootPermissions), NfsSquash nfsRootSquash = default(NfsSquash), bool?overrideGlobalWhitelist = default(bool?), ProtocolAccessEnum?protocolAccess = default(ProtocolAccessEnum?), QoS qos = default(QoS), SecurityModeEnum?securityMode = default(SecurityModeEnum?), List <SmbPermission> sharePermissions = default(List <SmbPermission>), SmbPermissionsInfo smbPermissionsInfo = default(SmbPermissionsInfo), string sourceViewName = default(string), StoragePolicyOverride storagePolicyOverride = default(StoragePolicyOverride), List <Subnet> subnetWhitelist = default(List <Subnet>), string swiftProjectDomain = default(string), string swiftProjectName = default(string), string tenantId = default(string))
 {
     this.AccessSids                      = accessSids;
     this.CloneViewName                   = cloneViewName;
     this.DataLockExpiryUsecs             = dataLockExpiryUsecs;
     this.Description                     = description;
     this.EnableFastDurableHandle         = enableFastDurableHandle;
     this.EnableFilerAuditLogging         = enableFilerAuditLogging;
     this.EnableLiveIndexing              = enableLiveIndexing;
     this.EnableMixedModePermissions      = enableMixedModePermissions;
     this.EnableNfsViewDiscovery          = enableNfsViewDiscovery;
     this.EnableOfflineCaching            = enableOfflineCaching;
     this.EnableSmbAccessBasedEnumeration = enableSmbAccessBasedEnumeration;
     this.EnableSmbEncryption             = enableSmbEncryption;
     this.EnableSmbOplock                 = enableSmbOplock;
     this.EnableSmbViewDiscovery          = enableSmbViewDiscovery;
     this.EnforceSmbEncryption            = enforceSmbEncryption;
     this.LogicalQuota                    = logicalQuota;
     this.OverrideGlobalWhitelist         = overrideGlobalWhitelist;
     this.ProtocolAccess                  = protocolAccess;
     this.SecurityMode                    = securityMode;
     this.SharePermissions                = sharePermissions;
     this.SourceViewName                  = sourceViewName;
     this.SubnetWhitelist                 = subnetWhitelist;
     this.SwiftProjectDomain              = swiftProjectDomain;
     this.SwiftProjectName                = swiftProjectName;
     this.TenantId                        = tenantId;
     this.AccessSids                      = accessSids;
     this.AntivirusScanConfig             = antivirusScanConfig;
     this.CloneViewName                   = cloneViewName;
     this.DataLockExpiryUsecs             = dataLockExpiryUsecs;
     this.Description                     = description;
     this.EnableFastDurableHandle         = enableFastDurableHandle;
     this.EnableFilerAuditLogging         = enableFilerAuditLogging;
     this.EnableLiveIndexing              = enableLiveIndexing;
     this.EnableMixedModePermissions      = enableMixedModePermissions;
     this.EnableNfsViewDiscovery          = enableNfsViewDiscovery;
     this.EnableOfflineCaching            = enableOfflineCaching;
     this.EnableSmbAccessBasedEnumeration = enableSmbAccessBasedEnumeration;
     this.EnableSmbEncryption             = enableSmbEncryption;
     this.EnableSmbOplock                 = enableSmbOplock;
     this.EnableSmbViewDiscovery          = enableSmbViewDiscovery;
     this.EnforceSmbEncryption            = enforceSmbEncryption;
     this.FileExtensionFilter             = fileExtensionFilter;
     this.FileLockConfig                  = fileLockConfig;
     this.LogicalQuota                    = logicalQuota;
     this.NfsAllSquash                    = nfsAllSquash;
     this.NfsRootPermissions              = nfsRootPermissions;
     this.NfsRootSquash                   = nfsRootSquash;
     this.OverrideGlobalWhitelist         = overrideGlobalWhitelist;
     this.ProtocolAccess                  = protocolAccess;
     this.Qos                   = qos;
     this.SecurityMode          = securityMode;
     this.SharePermissions      = sharePermissions;
     this.SmbPermissionsInfo    = smbPermissionsInfo;
     this.SourceViewName        = sourceViewName;
     this.StoragePolicyOverride = storagePolicyOverride;
     this.SubnetWhitelist       = subnetWhitelist;
     this.SwiftProjectDomain    = swiftProjectDomain;
     this.SwiftProjectName      = swiftProjectName;
     this.TenantId              = tenantId;
 }