/// <summary> /// This method adds name server delegation in the parent zone for the created child zone. /// The NS records are added in the parent zone that corresponds to the child zone /// </summary> /// <param name="zone">the created child zone</param> /// <param name="parent">the parent zone</param> private DnsRecordSet AddDnsNameserverDelegation(DnsZone zone, DnsZone parent) { DnsRecordSet recordSet = null; if (zone != null && parent != null && zone.NameServers != null && zone.NameServers.Count > 0) { List <NsRecord> nameServersList = new List <NsRecord>(); foreach (string nameserver in zone.NameServers) { NsRecord record = new NsRecord(); record.Nsdname = nameserver; nameServersList.Add(record); } DnsRecordBase[] resourceRecords = nameServersList.ToArray(); string recordName = this.Name.Replace('.' + parent.Name, ""); recordSet = this.DnsClient.CreateDnsRecordSet( parent.Name, this.ResourceGroupName, recordName, 3600, RecordType.NS, null, true, resourceRecords, null); } return(recordSet); }
public override void ExecuteCmdlet() { DnsRecordBase result = null; switch (this.ParameterSetName) { case ParameterSetA: { result = new ARecord { Ipv4Address = this.Ipv4Address }; break; } case ParameterSetAaaa: { result = new AaaaRecord { Ipv6Address = this.Ipv6Address }; break; } case ParameterSetMx: { result = new MxRecord { Preference = this.Preference, Exchange = this.Exchange }; break; } case ParameterSetNs: { result = new NsRecord { Nsdname = this.Nsdname }; break; } case ParameterSetSrv: { result = new SrvRecord { Priority = this.Priority, Port = this.Port, Target = this.Target, Weight = this.Weight }; break; } case ParameterSetTxt: { result = new TxtRecord { Value = this.Value }; break; } case ParameterSetCName: { result = new CnameRecord { Cname = this.Cname }; break; } case ParameterSetPtr: { result = new PtrRecord { Ptrdname = this.Ptrdname }; break; } case ParameterSetCaa: { result = new CaaRecord { Flags = this.CaaFlags, Tag = this.CaaTag, Value = this.CaaValue }; break; } default: { throw new PSArgumentException(string.Format(ProjectResources.Error_UnknownParameterSetName, this.ParameterSetName)); } } WriteObject(result); }