<?xml version="1.0" encoding="utf-8"?>
<PowerShellMetadata xmlns="http://schemas.microsoft.com/cmdlets-over-objects/2009/11">
  <Class ClassName="ROOT/StandardCimv2/MSFT_NetAdapterEncapsulatedPacketTaskOffloadSettingData" ClassVersion="1.0.0">
    <Version>1.0</Version>
    <DefaultNoun>NetAdapterEncapsulatedPacketTaskOffload</DefaultNoun>
    <InstanceCmdlets>
      <GetCmdletParameters DefaultCmdletParameterSet="ByName">
        <QueryableProperties>
          <Property PropertyName="Name">
            <Type PSType ="string"/>
            <RegularQuery AllowGlobbing="true">
              <CmdletParameterMetadata PSName="Name" Position="0" Aliases="ifAlias InterfaceAlias" ValueFromPipelineByPropertyName="true" CmdletParameterSets="ByName" />
            </RegularQuery>
          </Property>
          <Property PropertyName="InterfaceDescription">
            <Type PSType ="string"/>
            <RegularQuery AllowGlobbing="true" >
              <CmdletParameterMetadata PSName="InterfaceDescription" IsMandatory="true" Aliases="ifDesc InstanceID" ValueFromPipelineByPropertyName="true" CmdletParameterSets="ByInstanceID" />
            </RegularQuery>
          </Property>
        </QueryableProperties>
        <QueryOptions>
          <Option OptionName="IncludeHidden">
            <Type PSType="System.Management.Automation.SwitchParameter" />
          </Option>
        </QueryOptions>
      </GetCmdletParameters>
      <Cmdlet>
       <CmdletMetadata Verb="Set" ConfirmImpact="Medium"/>
        <Method MethodName="cim:ModifyInstance">
          <Parameters>
            <Parameter ParameterName="NvgreEncapsulatedPacketTaskOffloadEnabled">
              <Type PSType="System.Boolean" />
              <CmdletParameterMetadata IsMandatory="false"/>                
            </Parameter>
            <Parameter ParameterName="VxlanEncapsulatedPacketTaskOffloadEnabled">
              <Type PSType="System.Boolean" />
              <CmdletParameterMetadata IsMandatory="false"/>                
            </Parameter>
            <Parameter ParameterName="VxlanUDPPortNumber">
              <Type PSType="System.UInt16" />
              <CmdletParameterMetadata>
                  <ValidateNotNull/>
                  <ValidateNotNullOrEmpty/>
                  <ValidateRange Min="1" Max="65535" />
              </CmdletParameterMetadata>
            </Parameter>            
            <Parameter ParameterName="cim:OperationOption:NoRestart">
              <Type PSType="System.Management.Automation.SwitchParameter" />
              <CmdletParameterMetadata PSName="NoRestart" />
            </Parameter>
          </Parameters>
        </Method>
        <GetCmdletParameters DefaultCmdletParameterSet="ByName">
          <QueryableProperties>
            <Property PropertyName="Name">
              <Type PSType ="string"/>
              <RegularQuery AllowGlobbing="true">
                <CmdletParameterMetadata PSName="Name" Position="0" IsMandatory="true" Aliases="ifAlias InterfaceAlias" ValueFromPipelineByPropertyName="true" CmdletParameterSets="ByName" />
              </RegularQuery>
            </Property>
            <Property PropertyName="InterfaceDescription">
              <Type PSType ="string"/>
              <RegularQuery AllowGlobbing="true" >
                <CmdletParameterMetadata PSName="InterfaceDescription" IsMandatory="true" Aliases="ifDesc InstanceID" ValueFromPipelineByPropertyName="true" CmdletParameterSets="ByInstanceID" />
              </RegularQuery>
            </Property>
          </QueryableProperties>
          <QueryOptions>
            <Option OptionName="IncludeHidden">
              <Type PSType="System.Management.Automation.SwitchParameter" />
            </Option>
          </QueryOptions>
        </GetCmdletParameters>
      </Cmdlet>
      <Cmdlet>
       <CmdletMetadata Verb="Enable" ConfirmImpact="Medium"/>
        <Method MethodName="Enable">
          <Parameters>
            <Parameter ParameterName="cim:OperationOption:NoRestart">
              <Type PSType="System.Management.Automation.SwitchParameter" />
              <CmdletParameterMetadata PSName="NoRestart" />
            </Parameter>
            <Parameter ParameterName="cim:OperationOption:PassThru">
              <Type PSType="System.Management.Automation.SwitchParameter" />
              <CmdletParameterMetadata PSName="PassThru" />
            </Parameter>
            <Parameter ParameterName="CmdletOutput">
              <Type PSType="Microsoft.Management.Infrastructure.CimInstance" />
              <CmdletOutputMetadata />
            </Parameter>
            <Parameter ParameterName="EncapsulationType">
              <Type PSType="NetAdapterEncapsulatedPacketTaskOffload.EncapsulationType" />
              <CmdletParameterMetadata IsMandatory="false" PSName="EncapsulationType"/>
            </Parameter>            
          </Parameters>
        </Method>
        <GetCmdletParameters DefaultCmdletParameterSet="ByName">
          <QueryableProperties>
            <Property PropertyName="Name">
              <Type PSType ="string"/>
              <RegularQuery AllowGlobbing="true">
                <CmdletParameterMetadata PSName="Name" Position="0" IsMandatory="true" Aliases="ifAlias InterfaceAlias" ValueFromPipelineByPropertyName="true" CmdletParameterSets="ByName" />
              </RegularQuery>
            </Property>
            <Property PropertyName="InterfaceDescription">
              <Type PSType ="string"/>
              <RegularQuery AllowGlobbing="true" >
                <CmdletParameterMetadata PSName="InterfaceDescription" IsMandatory="true" Aliases="ifDesc InstanceID" ValueFromPipelineByPropertyName="true" CmdletParameterSets="ByInstanceID" />
              </RegularQuery>
            </Property>
          </QueryableProperties>
          <QueryOptions>
            <Option OptionName="IncludeHidden">
              <Type PSType="System.Management.Automation.SwitchParameter" />
            </Option>
          </QueryOptions>
        </GetCmdletParameters>
      </Cmdlet>
      <Cmdlet>
       <CmdletMetadata Verb="Disable" ConfirmImpact="Medium"/>
        <Method MethodName="Disable">
          <Parameters>
            <Parameter ParameterName="cim:OperationOption:NoRestart">
              <Type PSType="System.Management.Automation.SwitchParameter" />
              <CmdletParameterMetadata PSName="NoRestart" />
            </Parameter>
            <Parameter ParameterName="cim:OperationOption:PassThru">
              <Type PSType="System.Management.Automation.SwitchParameter" />
              <CmdletParameterMetadata PSName="PassThru" />
            </Parameter>
            <Parameter ParameterName="CmdletOutput">
              <Type PSType="Microsoft.Management.Infrastructure.CimInstance" />
              <CmdletOutputMetadata />
            </Parameter>
            <Parameter ParameterName="EncapsulationType">
              <Type PSType="NetAdapterEncapsulatedPacketTaskOffload.EncapsulationType" />
              <CmdletParameterMetadata IsMandatory="false" PSName="EncapsulationType"/>
            </Parameter>            
          </Parameters>
        </Method>
        <GetCmdletParameters DefaultCmdletParameterSet="ByName">
          <QueryableProperties>
            <Property PropertyName="Name">
              <Type PSType ="string"/>
              <RegularQuery AllowGlobbing="true">
                <CmdletParameterMetadata PSName="Name" Position="0" IsMandatory="true" Aliases="ifAlias InterfaceAlias" ValueFromPipelineByPropertyName="true" CmdletParameterSets="ByName" />
              </RegularQuery>
            </Property>
            <Property PropertyName="InterfaceDescription">
              <Type PSType ="string"/>
              <RegularQuery AllowGlobbing="true" >
                <CmdletParameterMetadata PSName="InterfaceDescription" IsMandatory="true" Aliases="ifDesc InstanceID" ValueFromPipelineByPropertyName="true" CmdletParameterSets="ByInstanceID" />
              </RegularQuery>
            </Property>
          </QueryableProperties>
          <QueryOptions>
            <Option OptionName="IncludeHidden">
              <Type PSType="System.Management.Automation.SwitchParameter" />
            </Option>
          </QueryOptions>
        </GetCmdletParameters>
     </Cmdlet>
    </InstanceCmdlets>
  </Class>
  <Enums>
    <!-- NetAdapterEncapsulatedPacketTaskOffload.OffloadType -->
    <Enum EnumName="NetAdapterEncapsulatedPacketTaskOffload.OffloadType" UnderlyingType="uint32" BitwiseFlags="true">
      <Value Name="Unsupported" Value="0" />
      <Value Name="IPv4Inner" Value="1" />
      <Value Name="IPv4Outer" Value="2" />
      <Value Name="IPv6Inner" Value="4" />
      <Value Name="IPv6Outer" Value="8" />
    </Enum>
    <Enum EnumName="NetAdapterEncapsulatedPacketTaskOffload.EncapsulationType" UnderlyingType="uint16" BitwiseFlags="true">
      <Value Name="NVGRE" Value="1" />
      <Value Name="VXLAN" Value="2" />
    </Enum>
  </Enums>
</PowerShellMetadata>
