/// <summary>
 /// Initializes a new instance of the
 /// AzureFilesIdentityBasedAuthentication class.
 /// </summary>
 /// <param name="directoryServiceOptions">Indicates the directory
 /// service used. Possible values include: 'None', 'AADDS',
 /// 'AD'</param>
 /// <param name="activeDirectoryProperties">Required if choose
 /// AD.</param>
 /// <param name="defaultSharePermission">Default share permission for
 /// users using Kerberos authentication if RBAC role is not assigned.
 /// Possible values include: 'None', 'StorageFileDataSmbShareReader',
 /// 'StorageFileDataSmbShareContributor',
 /// 'StorageFileDataSmbShareElevatedContributor'</param>
 public AzureFilesIdentityBasedAuthentication(string directoryServiceOptions, ActiveDirectoryProperties activeDirectoryProperties = default(ActiveDirectoryProperties), string defaultSharePermission = default(string))
 {
     DirectoryServiceOptions   = directoryServiceOptions;
     ActiveDirectoryProperties = activeDirectoryProperties;
     DefaultSharePermission    = defaultSharePermission;
     CustomInit();
 }
 /// <summary>
 /// Validate the object.
 /// </summary>
 /// <exception cref="ValidationException">
 /// Thrown if validation fails
 /// </exception>
 public virtual void Validate()
 {
     if (DirectoryServiceOptions == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "DirectoryServiceOptions");
     }
     if (ActiveDirectoryProperties != null)
     {
         ActiveDirectoryProperties.Validate();
     }
 }