/// <summary>
 /// Initializes a new instance of the <see cref="ThrottlingPolicyOverride" /> class.
 /// </summary>
 /// <param name="datastoreId">Specifies the Protection Source id of the Datastore..</param>
 /// <param name="datastoreName">Specifies the display name of the Datastore..</param>
 /// <param name="throttlingPolicy">Specifies the throttling policy that should be applied to this Source..</param>
 public ThrottlingPolicyOverride(long?datastoreId = default(long?), string datastoreName = default(string), ThrottlingPolicy throttlingPolicy = default(ThrottlingPolicy))
 {
     this.DatastoreId      = datastoreId;
     this.DatastoreName    = datastoreName;
     this.ThrottlingPolicy = throttlingPolicy;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="RegisteredSourceInfo" /> class.
 /// </summary>
 /// <param name="accessInfo">Specifies the parameters required to establish a connection with a particular environment..</param>
 /// <param name="authenticationErrorMessage">Specifies an authentication error message. This indicates the given credentials are rejected and the registration of the source is not successful..</param>
 /// <param name="authenticationStatus">Specifies the status of the authenticating to the Protection Source when registering it with Cohesity Cluster. If the status is &#39;kFinished&#39; and there is no error, registration is successful. Specifies the status of the authentication during the registration of a Protection Source. &#39;kPending&#39; indicates the authentication is in progress. &#39;kScheduled&#39; indicates the authentication is scheduled. &#39;kFinished&#39; indicates the authentication is completed..</param>
 /// <param name="environments">Specifies a list of applications environment that are registered with this Protection Source such as &#39;kSQL&#39;. Supported environment types include &#39;kView&#39;, &#39;kSQL&#39;, &#39;kVMware&#39;, &#39;kPuppeteer&#39;, &#39;kPhysical&#39;, &#39;kPure&#39;, &#39;kNetapp, &#39;kGenericNas, &#39;kHyperV&#39;, &#39;kAcropolis&#39;, &#39;kAzure&#39;. NOTE: &#39;kPuppeteer&#39; refers to Cohesity&#39;s Remote Adapter..</param>
 /// <param name="minimumFreeSpaceGB">Specifies the minimum free space in GiB of the space expected to be available on the datastore where the virtual disks of the VM being backed up. If the amount of free space(in GiB) is lower than the value given by this field, backup will be aborted. Note that this field is applicable only to &#39;kVMware&#39; type of environments..</param>
 /// <param name="nasMountCredentials">nasMountCredentials.</param>
 /// <param name="password">Specifies password of the username to access the target source..</param>
 /// <param name="refreshErrorMessage">Specifies a message if there was any error encountered during the last rebuild of the Protection Source tree. If there was no error during the last rebuild, this field is reset..</param>
 /// <param name="refreshTimeUsecs">Specifies the Unix epoch time (in microseconds) when the Protection Source tree was most recently fetched and built..</param>
 /// <param name="registrationTimeUsecs">Specifies the Unix epoch time (in microseconds) when the Protection Source was registered..</param>
 /// <param name="throttlingPolicy">Specifies the throttling policy that should be applied to all datastores under this registered Protection Source..</param>
 /// <param name="throttlingPolicyOverrides">Specifies a list of Throttling Policy for datastores that override the common throttling policy specified for the registered Protection Source. For datastores not in this list, common policy will still apply..</param>
 /// <param name="username">Specifies username to access the target source..</param>
 /// <param name="warningMessages">Though the registration may succeed, warning messages imply the host environment requires some cleanup or fixing..</param>
 public RegisteredSourceInfo(ConnectorParams accessInfo = default(ConnectorParams), string authenticationErrorMessage = default(string), AuthenticationStatusEnum?authenticationStatus = default(AuthenticationStatusEnum?), List <EnvironmentsEnum> environments = default(List <EnvironmentsEnum>), long?minimumFreeSpaceGB = default(long?), NASServerCredentials_ nasMountCredentials = default(NASServerCredentials_), string password = default(string), string refreshErrorMessage = default(string), long?refreshTimeUsecs = default(long?), long?registrationTimeUsecs = default(long?), ThrottlingPolicy throttlingPolicy = default(ThrottlingPolicy), List <ThrottlingPolicyOverride> throttlingPolicyOverrides = default(List <ThrottlingPolicyOverride>), string username = default(string), List <string> warningMessages = default(List <string>))
 {
     this.AccessInfo = accessInfo;
     this.AuthenticationErrorMessage = authenticationErrorMessage;
     this.AuthenticationStatus       = authenticationStatus;
     this.Environments              = environments;
     this.MinimumFreeSpaceGB        = minimumFreeSpaceGB;
     this.NasMountCredentials       = nasMountCredentials;
     this.Password                  = password;
     this.RefreshErrorMessage       = refreshErrorMessage;
     this.RefreshTimeUsecs          = refreshTimeUsecs;
     this.RegistrationTimeUsecs     = registrationTimeUsecs;
     this.ThrottlingPolicy          = throttlingPolicy;
     this.ThrottlingPolicyOverrides = throttlingPolicyOverrides;
     this.Username                  = username;
     this.WarningMessages           = warningMessages;
 }