﻿<?xml version="1.0" encoding="utf-8"?>
<PowerShellMetadata xmlns="http://schemas.microsoft.com/cmdlets-over-objects/2009/11">
  <Class ClassName="root/Microsoft/Windows/NFS/MSFT_NfsServerConfig">
    <Version>1.0</Version>
    <DefaultNoun>NfsServerConfiguration</DefaultNoun>
    <InstanceCmdlets>
	<GetCmdletParameters>
	</GetCmdletParameters>
	<GetCmdlet>  
        <CmdletMetadata Verb="Get" HelpUri="http://go.microsoft.com/fwlink/?LinkID=240191" />  
    </GetCmdlet>
      <Cmdlet>
        <CmdletMetadata Verb="Set" ConfirmImpact="Medium" HelpUri="http://go.microsoft.com/fwlink/?LinkID=240218"/>
        <Method MethodName="cim:ModifyInstance">          
          <Parameters>
            <Parameter ParameterName="PortmapProtocol">
              <Type PSType="System.String[]" />
              <CmdletParameterMetadata>
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
                <ValidateSet>
                  <AllowedValue>tcp</AllowedValue>
                  <AllowedValue>udp</AllowedValue>
                </ValidateSet>
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="MountProtocol">
              <Type PSType="System.String[]" />
              <CmdletParameterMetadata>
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
                <ValidateSet>
                  <AllowedValue>tcp</AllowedValue>
                  <AllowedValue>udp</AllowedValue>
                </ValidateSet>
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="Nfsprotocol">
              <Type PSType="System.String[]" />
              <CmdletParameterMetadata>
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
                <ValidateSet>
                  <AllowedValue>tcp</AllowedValue>
                  <AllowedValue>udp</AllowedValue>
                </ValidateSet>
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="NlmProtocol">
              <Type PSType="System.String[]" />
              <CmdletParameterMetadata>
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
                <ValidateSet>
                  <AllowedValue>tcp</AllowedValue>
                  <AllowedValue>udp</AllowedValue>
                </ValidateSet>
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="NsmProtocol">
              <Type PSType="System.String[]" />
              <CmdletParameterMetadata>
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
                <ValidateSet>
                  <AllowedValue>tcp</AllowedValue>
                  <AllowedValue>udp</AllowedValue>
                </ValidateSet>
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="MapsvrProtocol">
              <Type PSType="System.String[]" />
              <CmdletParameterMetadata PSName="MapServerProtocol"  Aliases="MapsvrProtocol">
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
                <ValidateSet>
                  <AllowedValue>tcp</AllowedValue>
                  <AllowedValue>udp</AllowedValue>
                </ValidateSet>
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="NisProtocol">
              <Type PSType="System.String[]" />
              <CmdletParameterMetadata>
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
                <ValidateSet>
                  <AllowedValue>tcp</AllowedValue>
                  <AllowedValue>udp</AllowedValue>
                </ValidateSet>
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="EnableNFSV2">
              <Type PSType="System.Boolean" />
              <CmdletParameterMetadata Aliases="v2 nfsv2">
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="EnableNFSV3">
              <Type PSType="System.Boolean" />
              <CmdletParameterMetadata Aliases="v3 nfsv3">
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="EnableNFSV4">
              <Type PSType="System.Boolean" />
              <CmdletParameterMetadata Aliases="v4 nfsv4">
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
              </CmdletParameterMetadata>
            </Parameter>            
            <Parameter ParameterName="EnableAuthRenewal">
              <Type PSType="System.Boolean" />
              <CmdletParameterMetadata PSName="EnableAuthenticationRenewal" Aliases="renewauth EnableAuthRenewal">
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="AuthRenewalInterval">
              <Type PSType="System.UInt32" />
              <CmdletParameterMetadata PSName="AuthenticationRenewalIntervalSec" Aliases="interval renewauthinterval AuthRenewalInterval AuthenticationRenewalInterval">
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
                <ValidateRange Min="1" Max="2147483647" />
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="DirectoryCacheSize">
              <Type PSType="System.UInt32" />
              <CmdletParameterMetadata Aliases="dircache dcache">
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="CharacterTranslationFile">
              <Type PSType="System.String" />
              <CmdletParameterMetadata Aliases="translationfile">
                <AllowEmptyString />
                <ValidateNotNull />
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="HideFilesBeginningInDot">
              <Type PSType="System.Boolean" />
              <CmdletParameterMetadata Aliases="hidedotfiles dotfileshidden">
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="NlmGracePeriod">
              <Type PSType="System.UInt32" />
              <CmdletParameterMetadata PSName="NlmGracePeriodSec" Aliases="lockperiod nlmgrace NlmGracePeriod">
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="LogActivity">
              <Type PSType="System.String[]" />
              <CmdletParameterMetadata Aliases="audit">
                <AllowEmptyCollection />
                <ValidateNotNull />
                <ValidateSet>
                  <AllowedValue>mount</AllowedValue>
                  <AllowedValue>unmount</AllowedValue>
                  <AllowedValue>read</AllowedValue>
                  <AllowedValue>write</AllowedValue>
                  <AllowedValue>create</AllowedValue>
                  <AllowedValue>delete</AllowedValue>
                  <AllowedValue>lock</AllowedValue>
                  <AllowedValue>unlock</AllowedValue>
                  <AllowedValue>none</AllowedValue>
                  <AllowedValue>all</AllowedValue>
                </ValidateSet>
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="GracePeriod">
              <Type PSType="System.UInt32" />
              <CmdletParameterMetadata PSName="GracePeriodSec" Aliases="nfsv4graceperiod GracePeriod">
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
                <ValidateRange Min="10" Max="600" />
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="NetgroupCacheTimeout">
              <Type PSType="System.UInt32" />
              <CmdletParameterMetadata PSName="NetgroupCacheTimeoutSec" Aliases="NetgroupTimeout NetgroupCacheTimeout">
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="PreserveInheritance">
              <Type PSType="System.Boolean" />
              <CmdletParameterMetadata Aliases="Inheritance">
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="UnmappedUserAccount">
              <Type PSType="System.String" />
              <CmdletParameterMetadata Aliases="UnmappedAccount">
                <AllowEmptyString />
                <ValidateNotNull />                
              </CmdletParameterMetadata>
            </Parameter>            
           <Parameter ParameterName="WorldAccount">
              <Type PSType="System.String" />
              <CmdletParameterMetadata Aliases="World">
                <AllowEmptyString />
                <ValidateNotNull />
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="AlwaysOpenByName">
              <Type PSType="System.Boolean" />
              <CmdletParameterMetadata Aliases="OpenByName">
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
              </CmdletParameterMetadata>
            </Parameter>
            <Parameter ParameterName="LeasePeriod">
              <Type PSType="System.UInt32" />
              <CmdletParameterMetadata PSName="LeasePeriodSec" Aliases="Lease LeasePeriod">
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
                <ValidateRange Min="5" Max="300" />
              </CmdletParameterMetadata>              
            </Parameter>
            <Parameter ParameterName="ClearMappingCache">
              <Type PSType="switch" />
              <CmdletParameterMetadata Aliases="clearmapcache" />
            </Parameter>
            <Parameter ParameterName="OnlineTimeoutInSeconds">
              <Type PSType="System.UInt32" />
              <CmdletParameterMetadata PSName="OnlineTimeoutSec" Aliases="onlinetimeout OnlineTimeoutInSeconds">
                <ValidateNotNull />
                <ValidateNotNullOrEmpty />
                <ValidateRange Min="1" Max="600" />
              </CmdletParameterMetadata>
            </Parameter>
           </Parameters>
        </Method>
      </Cmdlet>
    </InstanceCmdlets>
  </Class>
  <Enums>
    <Enum EnumName="Nfs.ServerServiceState" UnderlyingType="System.UInt32">
      <Value Name="NotInstalled" Value="0" />
      <Value Name="Stopped" Value="1" />
      <Value Name="Running" Value="2" />
    </Enum>
  </Enums>
</PowerShellMetadata>
