#pragma autorecover
#pragma namespace("\\\\.\\root\\Microsoft\\Windows\\Dns")
instance of __namespace{ name="MS_809";};
#pragma namespace("\\\\.\\root\\Microsoft\\Windows\\Dns\\MS_809")

[Description("DNS Client Name Resolution Policy Table Global Settings") : Amended ToSubclass,AMENDMENT, LOCALE("MS_809")] 
class DnsClientNrptGlobal
{
  [Values{"Disable", "EnableOnNetworkId", "EnableDA", "DisableDA"} : Amended ToSubclass,Description("Property for controlling DirectAccess rules state.") : Amended ToSubclass] string EnableDAForAllNetworks;
  [Values{"Disable", "FallbackSecure", "FallbackUnsecure", "FallbackPrivate"} : Amended ToSubclass,Description("Property for controlling DNS client name resolution fallback policy.") : Amended ToSubclass] string SecureNameQueryFallback;
  [Values{"Disable", "QueryIPv6Only", "QueryBoth"} : Amended ToSubclass,Description("Property for controlling DNS client query policy.") : Amended ToSubclass] string QueryPolicy;
};

[Description("DNS Client Name Resolution Policy Table Entry") : Amended ToSubclass,AMENDMENT, LOCALE("MS_809")] 
class DnsClientNrptRule
{
  [Description("The version for Name Resolution Policy Table entry.") : Amended ToSubclass] uint32 Version;
  [Description("DNS namespace which can be a Suffix/Prefix/FQDN/Subnet/Any.In order to specify Any, the value must be .(dot)") : Amended ToSubclass] string Namespace[];
  [Description("Name which uniquely identifies a rule.") : Amended ToSubclass] string Name;
  [Description("An optional friendly name for the NRPT rule.") : Amended ToSubclass] string DisplayName;
  [Description("Property which identifies if DNSSEC is enabled on the rule.") : Amended ToSubclass] boolean DnsSecEnabled;
  [Description("Property to enable AD bit check on DNS responses.") : Amended ToSubclass] boolean DnsSecValidationRequired;
  [Description("Property to tunnel DNSSEC queries over IPsec channel.") : Amended ToSubclass] boolean DnsSecQueryIPsecRequired;
  [Description("Property to control IPsec tunnel encryption settings.") : Amended ToSubclass,Values{"None", "Low", "Medium", "High"} : Amended ToSubclass] string DnsSecQueryIPsecEncryption;
  [Description("Property which identifies if DirectAccess is enabled on the rule.") : Amended ToSubclass] boolean DirectAccessEnabled;
  [Description("Certification authority to validate the IPsec channel.") : Amended ToSubclass] string IPsecCARestriction;
  [Description("The DNS servers which will be queried when DA is enabled.") : Amended ToSubclass] string DirectAccessDnsServers[];
  [Description("Property to tunnel DNS queries over IPsec channel.") : Amended ToSubclass] boolean DirectAccessQueryIPsecRequired;
  [Description("Property to control IPsec tunnel encryption settings.") : Amended ToSubclass,Values{"None", "Low", "Medium", "High"} : Amended ToSubclass] string DirectAccessQueryIPsecEncryption;
  [Description("The proxy server type to be used when connecting to the Internet.") : Amended ToSubclass,Values{"NoProxy", "UseDefault", "UseProxyName"} : Amended ToSubclass] string DirectAccessProxyType;
  [Description("The proxy server to be used when connecting to the Internet.") : Amended ToSubclass] string DirectAccessProxyName;
  [Description("The DNS servers the DNS query is sent to when DA is disabled.") : Amended ToSubclass] string NameServers[];
  [Description("Encoding format for host names in the DNS query.") : Amended ToSubclass,Values{"Disable", "Utf8WithMapping", "Utf8WithoutMapping", "Punycode"} : Amended ToSubclass] string NameEncoding;
  [Description("A user friendly description of the current rule.") : Amended ToSubclass] string Comment;
};

[Description("DNS Client Policy Configuration") : Amended ToSubclass,AMENDMENT, LOCALE("MS_809")] 
class DnsClientPolicyConfiguration
{
  [Description("DNS namespace which can be a Suffix/Prefix/FQDN/Subnet.") : Amended ToSubclass] string Namespace;
  [Description("Property which identifies if DirectAccess is enabled.") : Amended ToSubclass] boolean DirectAccessEnabled;
  [Values{"Disable", "QueryIPv6Only", "QueryBoth"} : Amended ToSubclass,Description("Property for controlling DNS client query policy.") : Amended ToSubclass] string QueryPolicy;
  [Values{"Disable", "FallbackSecure", "FallbackUnsecure", "FallbackPrivate"} : Amended ToSubclass,Description("Property for controlling DNS client name resolution fallback policy.") : Amended ToSubclass] string SecureNameQueryFallback;
  [Description("Certification authority to validate the IPsec channel for DNSSEC.") : Amended ToSubclass] string DnsSecIPsecCARestriction;
  [Description("Whether DNSSEC validation is required or not.") : Amended ToSubclass] boolean DnsSecValidationRequired;
  [Description("Whether IPsec is required for DNSSEC queries.") : Amended ToSubclass] boolean DnsSecQueryIPsecRequired;
  [Description("IPsec encryption level for DNSSEC.") : Amended ToSubclass,Values{"None", "Low", "Medium", "High"} : Amended ToSubclass] string DnsSecQueryIPsecEncryption;
  [Description("Certificattion authority to validate the IPsec channel for DirectAccess.") : Amended ToSubclass] string DirectAccessIPsecCARestriction;
  [Description("Whether IPsec is required for DirectAccess.") : Amended ToSubclass] boolean DirectAccessQueryIPsecRequired;
  [Description("IPsec encryption level for DirectAccess.") : Amended ToSubclass,Values{"None", "Low", "Medium", "High"} : Amended ToSubclass] string DirectAccessQueryIPsecEncryption;
  [Description("The DNS servers which will be queried when DirectAccess is enabled.") : Amended ToSubclass] string DirectAccessDnsServers[];
  [Description("The proxy server type to be used when connecting to the Internet.") : Amended ToSubclass,Values{"Direct", "UseDefault", "UseProxyName", "NoProxy"} : Amended ToSubclass] string DirectAccessProxyType;
  [Description("The proxy server to be used when connecting to the Internet.") : Amended ToSubclass] string DirectAccessProxyName;
  [Description("Generic DNS Servers") : Amended ToSubclass] string NameServers[];
  [Description("Encoding format for host names in the DNS query.") : Amended ToSubclass,Values{"Disable", "Utf8WithMapping", "Utf8WithoutMapping", "Punycode"} : Amended ToSubclass] string NameEncoding;
};

[Description("DNS Client NRPT") : Amended ToSubclass,AMENDMENT, LOCALE("MS_809")] 
class PS_DnsClientNrptGlobal
{
  [Description("Modifies  Global NRPT  settings") : Amended ToSubclass] uint32 Set([In,Description("Property that controls Direct Access") : Amended ToSubclass] string EnableDAForAllNetworks,[In,Description("Name of GPO, if not specified the default GPO on the domain
\n") : Amended ToSubclass] string GpoName,[In,Description("Property for controlling DNS client name resolution fallback policy.") : Amended ToSubclass] string SecureNameQueryFallback,[In,Description("Property for controlling DNS client query policy.") : Amended ToSubclass] string QueryPolicy,[In,Description("Server hosting the GPO") : Amended ToSubclass] string Server,[In,Description("Specifies if result  of the cmdlet should be displayed") : Amended ToSubclass] boolean PassThru,[Out,Description("Microsoft.Management.Infrastructure.CimInstance#DnsClientNrptGlobal object contains all the  properties of  DNS client NRPT  Global settings.") : Amended ToSubclass] DnsClientNrptGlobal cmdletOutput);
  [Description("Retrieves Name Resolution  Policy  Table global settings") : Amended ToSubclass] uint32 Get([In,Description("Server hosting the GPO") : Amended ToSubclass] string Server,[In,Description("Name of GPO, if not specified the default GPO on the domain
\n") : Amended ToSubclass] string GpoName,[Out,Description("Microsoft.Management.Infrastructure.CimInstance#DnsClientNrptGlobal object contains all the  properties of  DNS client NRPT  Global settings.") : Amended ToSubclass] DnsClientNrptGlobal cmdletOutput);
};

[Description("CIM class for Nrpt policy configured on machine") : Amended ToSubclass,AMENDMENT, LOCALE("MS_809")] 
class PS_DnsClientNrptPolicy
{
  [Description("Retrieves Name Resolution  Policy  Table configured on the machine") : Amended ToSubclass] uint32 Get([In,Description("If this parameter is specified then EffectiveNrptPolicy is returned") : Amended ToSubclass] boolean Effective,[In,Description("DNS namespace which can be a suffix/prefix/FQDN/subnet/any. In order to specify any, the value must be .(dot)") : Amended ToSubclass] string Namespace,[Out,Description("Microsoft.Management.Infrastructure.CimInstance#DnsClientPolicyConfiguration object contains all the  properties of  DNS client NRPT policy. If \"Effective\" is specified, only the contents of  Effective policy are retrieved.") : Amended ToSubclass] DnsClientPolicyConfiguration cmdletOutput[]);
};

[Description("DNS Client NRPT Rule") : Amended ToSubclass,AMENDMENT, LOCALE("MS_809")] 
class PS_DnsClientNrptRule
{
  [Description("Adds a rule to Name Resolution Policy Table") : Amended ToSubclass] uint32 Add([In,Description("Name of GPO, if not specified the default GPO on the domain
\n") : Amended ToSubclass] string GpoName,[In,Description("The DNS servers which will be queried when Direct Access is enabled
\n") : Amended ToSubclass] string DANameServers[],[In,Description("Property for controlling whether IPsec is required or not for DA
\n") : Amended ToSubclass] boolean DAIPsecRequired,[In,Values{"None", "Low", "Medium", "High"} : Amended ToSubclass,Description("Property for controlling IPsec encryption type for DA") : Amended ToSubclass] string DAIPsecEncryptionType,[In,Description("The proxy server to be used when connecting to the Internet
\n") : Amended ToSubclass] string DAProxyServerName,[In,Description("Property which identifies if DNSSEC is enabled on the rule.") : Amended ToSubclass] boolean DnsSecEnable,[In,Description("Specifies if result  of the cmdlet should be displayed") : Amended ToSubclass] boolean PassThru,[In,Values{"NoProxy", "UseDefault", "UseProxyName"} : Amended ToSubclass,Description("The proxy server type to be used when connecting to Internet.
\n") : Amended ToSubclass] string DAProxyType,[In,Description("Property for controlling whether Dnssec validation is required or not
\n") : Amended ToSubclass] boolean DnsSecValidationRequired,[In,Description("Property for controlling DirectAccess rules state. ") : Amended ToSubclass] boolean DAEnable,[In,Description("Certification authority to validate the IPsec channel
\n") : Amended ToSubclass] string IPsecTrustAuthority,[In,Description("Stores admin notes ") : Amended ToSubclass] string Comment,[In,Description("An optional friendly name for the Name Resolution Policy Table  rule
\n") : Amended ToSubclass] string DisplayName,[In,Description("Property to tunnel DNS queries over IPsec channel") : Amended ToSubclass] boolean DnsSecIPsecRequired,[In,Values{"None", "Low", "Medium", "High"} : Amended ToSubclass,Description("Property to control Ipsec tunnel encryption settings
\n") : Amended ToSubclass] string DnsSecIPsecEncryptionType,[In,Description("The DNS servers the DNS query is sent to when DA is disabled
\n") : Amended ToSubclass] string NameServers[],[In,Description("Encoding format for host names in the DNS query
\n") : Amended ToSubclass] string NameEncoding,[In,Description("DNS namespace which can be a suffix/prefix/FQDN/subnet/any. In order to specify any, the value must be .(dot)
\n") : Amended ToSubclass] string Namespace[],[In,Description("Server hosting the GPO") : Amended ToSubclass] string Server,[Out,Description("Microsoft.Management.Infrastructure.CimInstance#DnsClientNrptRule Object contains all the  properties of  DNS client NRPT rule") : Amended ToSubclass] DnsClientNrptRule cmdletOutput);
  [Description("Removes DNS client NRPT rule") : Amended ToSubclass] uint32 Remove([In,Description("Name of the GPO on which to operate") : Amended ToSubclass] string GpoName,[In,Description("Name which uniquely identifies a rule
\n") : Amended ToSubclass] string Name,[In,Description("Specifies if result  of the cmdlet should be displayed") : Amended ToSubclass] boolean PassThru,[In,Description("Name of the server containing the GPO") : Amended ToSubclass] string Server,[In,Description("Specifies not to issue a prompt") : Amended ToSubclass] boolean Force,[Out,Description("Microsoft.Management.Infrastructure.CimInstance#DnsClientNrptRule Object contains all the  properties of  DNS client NRPT rule") : Amended ToSubclass] DnsClientNrptRule cmdletOutput);
  [Description("Retrieves DNS client Name Resolution Policy Table rules") : Amended ToSubclass] uint32 Get([In,Description("Name of GPO, if not specified the default GPO on the domain
\n") : Amended ToSubclass] string GpoName,[In,Description("Name which uniquely identifies a rule") : Amended ToSubclass] string Name[],[In,Description("Server hosting the gpo") : Amended ToSubclass] string Server,[Out,Description("Microsoft.Management.Infrastructure.CimInstance#DnsClientNrptRule Object contains all the  properties of  DNS client NRPT rule") : Amended ToSubclass] DnsClientNrptRule cmdletOutput[]);
  [Description("Modifies DNS client NRPT rule for given namespace.") : Amended ToSubclass] uint32 Set([In,Description("Property for controlling DirectAccess rules state.") : Amended ToSubclass] boolean DAEnable,[In,Values{"None", "Low", "Medium", "High"} : Amended ToSubclass,Description("Property for controlling IPsec encryption type for DA.  ") : Amended ToSubclass] string DAIPsecEncryptionType,[In,Description("Property to control IPsec tunnel encryption settings.") : Amended ToSubclass] boolean DAIPsecRequired,[In,Description("The DNS servers which will be queried when Direct Access is enabled") : Amended ToSubclass] string DANameServers[],[In,Description("The proxy server to be used when connecting to the Internet.") : Amended ToSubclass] string DAProxyServerName,[In,Values{"NoProxy", "UseDefault", "UseProxyName"} : Amended ToSubclass,Description("The proxy server type to be used when connecting to Internet.") : Amended ToSubclass] string DAProxyType,[In,Description("An optional friendly name for the Name Resolution Policy Table  rule.") : Amended ToSubclass] string DisplayName,[In,Description("Specifies if result  of the cmdlet should be displayed") : Amended ToSubclass] boolean PassThru,[In,Description("Certification authority to validate the Ipsec channel for DirectAccess") : Amended ToSubclass] string IPsecTrustAuthority,[In,Description("Name which uniquely identifies a rule") : Amended ToSubclass] string Name,[In,Description("Encoding format for host names in the DNS query.") : Amended ToSubclass] string NameEncoding,[In,Description("The DNS servers the DNS query is sent to when DA is disabled") : Amended ToSubclass] string NameServers[],[In,Description("DNS namespace which can be a suffix/prefix/FQDN/subnet/any. In order to specify any, the value must be .(dot)") : Amended ToSubclass] string Namespace[],[In,Description("Server hosting the GPO") : Amended ToSubclass] string Server,[In,Description("Property to store  admin comments.") : Amended ToSubclass] string Comment,[In,Description("Property which identifies if DNSSEC is enabled on the rule.") : Amended ToSubclass] boolean DnsSecEnable,[In,Values{"None", "Low", "Medium", "High"} : Amended ToSubclass,Description("Property to control Ipsec tunnel encryption settings.") : Amended ToSubclass] string DnsSecIPsecEncryptionType,[In,Description("Property to tunnel DNSSEC queries over IPsec channel.") : Amended ToSubclass] boolean DnsSecIPsecRequired,[In,Description("Property for controlling whether  Dnssec  validation is required or not.") : Amended ToSubclass] boolean DnsSecValidationRequired,[In,Description("Name of GPO, if not specified the default GPO on the domain.") : Amended ToSubclass] string GpoName,[Out,Description("Microsoft.Management.Infrastructure.CimInstance#DnsClientNrptRule Object contains all the  properties of  DNS client NRPT rule") : Amended ToSubclass] DnsClientNrptRule cmdletOutput);
};
