Hi, I changed the DNS zone data model to use this pattern - it looks good and works great:
- module: https://gitlab.labs.nic.cz/llhotka/zone-data-yang/blob/master/dns-zones.yang - tree: https://gitlab.labs.nic.cz/llhotka/zone-data-yang/raw/master/model.tree Lada Martin Bjorklund <[email protected]> writes: > Hi, > > I think this could work (thanks Robert; maybe this is what you > meant!): > > container zones { > list zone { > ... > list rrset { > ... > leaf type { > type identityref { ... } > } > list rdata { > key id; > ... > choice type-specific-params { > mandatory true; > // to be augmented with type-specific nodes > } > } > } > } > } > > And then in another module: > > augment "/dnsz:zones/dnsz:zone/dnsz:rrset/dnsz:rdata" > + "/type-specific-parameters" { > when "derived-from-or-self(../dnsz:type,'iana-dns-parameters'," > + "'TLSA')"; > > leaf certificate-usage { > mandatory true; > ... > } > } > > The empty mandatory choice formally tells the client that additional > cases are expected. > > (If the empty choice looks fishy, it is probably often possible to > define at least one case inline...) > > This pattern is nice to the client, since there is no way an > additional augmenting module can break a working client. > > > /martin > -- Ladislav Lhotka, CZ.NIC Labs PGP Key ID: E74E8C0C _______________________________________________ netmod mailing list [email protected] https://www.ietf.org/mailman/listinfo/netmod
