3.1.4.25 ValidateBaseDnsServerZone

The ValidateBaseDnsServerZone event captures the common validation rules for the BaseDnsServerZone instance. The rest of the section assumes the BaseDnsServerZone instance to be validated is passed as a parameter with the name Param_baseDnsServerZone.

The following validations MUST pass for the BaseDnsServerZone instance to be valid:

  1. Param_baseDnsServerZone.ZoneType is not ZoneHostingDnsServerType.None.

  2. Param_baseDnsServerZone.ZoneConfiguration is not ZoneConfiguration.None.

  3. If Param_baseDnsServerZone.ZoneConfiguration is ZoneConfiguration.ADIntegrated, then check that Param_baseDnsServerZone.ReplicationScope is not NULL or a whitespace.

  4. If Param_baseDnsServerZone.ZoneConfiguration is ZoneConfiguration.FileBacked, then check that Param_baseDnsServerZone.ZoneFileName is not NULL or a whitespace.

  5. If Param_baseDnsServerZone.ZoneType is ZoneHostingDnsServerType.Primary, then check the following:

    1. Param_baseDnsServerZone.MasterServers.Count is equal to 0.

    2. If Param_baseDnsServerZone.ZoneConfiguration is ZoneConfiguration.ADIntegrated, then check that Param_baseDnsServerZone.ZoneFileName is NULL or a whitespace.

    3. If Param_baseDnsServerZone.ZoneConfiguration is ZoneConfiguration.FileBacked, then check that Param_baseDnsServerZone.ReplicationScope is NULL or a whitespace.

  6. If Param_baseDnsServerZone.ZoneType is ZoneHostingDnsServerType.Secondary, then check the following:

    1. Param_baseDnsServerZone.ZoneFileName is not NULL or a whitespace.

    2. Param_baseDnsServerZone.ZoneConfiguration is not ZoneConfiguration.ADIntegrated.

    3. Param_baseDnsServerZone.DirectoryPartitionName is either NULL or a whitespace.

    4. Param_baseDnsServerZone.ReplicationScope is either NULL or a whitespace.

  7. If Param_baseDnsServerZone.ZoneType is ZoneHostingDnsServerType.Secondary or ZoneHostingDnsServerType.Stub, then check the following:

    1. Param_baseDnsServerZone.MasterServers.Count is greater than 0.

    2. Param_baseDnsServerZone.NotifySecondaries is DnsNotifySecondariesSetting.None.

    3. Param_baseDnsServerZone.NotifyServers.Count is equal to 0.

    4. Param_baseDnsServerZone.SecureSecondaries is DnsSecureSecondariesSetting.None.

    5. Param_baseDnsServerZone.SecondaryServers.Count is equal to 0.