summaryrefslogtreecommitdiffstats
path: root/API.txt
diff options
context:
space:
mode:
authorMartin Kosek <mkosek@redhat.com>2012-01-06 15:12:41 +0100
committerMartin Kosek <mkosek@redhat.com>2012-01-12 09:43:05 +0100
commit52ea3a6b2958875da6370433d14509bdbd4c4943 (patch)
treec523383fdba7b9c0bfa72376ece4bdca2b962e0b /API.txt
parent91c10419f8a32d070ac4b8fa0378ea48bb82388e (diff)
downloadfreeipa-52ea3a6b2958875da6370433d14509bdbd4c4943.tar.gz
freeipa-52ea3a6b2958875da6370433d14509bdbd4c4943.tar.xz
freeipa-52ea3a6b2958875da6370433d14509bdbd4c4943.zip
Refactor dnsrecord processing
Current DNS record processing architecture has many flaws, including custom execute() methods which does not take advantage of base LDAP commands or nonstandard and confusing DNS record option processing. This patch refactors DNS record processing with the following improvements: * Every DNS record has now own Parameter type. Each DNS record consists from one or more "parts" which are also Parameters. This architecture will enable much easier implementation of future per-DNS-type API. * Validation is now not written as a separate function for every parameter but is delegated to DNS record parts. * Normalization is also delegated to DNS record parts. * Since standard LDAP base commands execute method is now used, dnsrecord-add and dnsrecord-mod correctly supports --setattr and --addattr options. * In order to prevent confusion unsupported DNS record types are now hidden. They are still present in the plugin so that old clients receive proper validation error. The patch also contains several fixes: * Fix domain-name validation and normalization- allow domain names that are not fully qualified. For example --cname-rec=bar is a valid domain-name for bind which will translate it then as bar.<owning-domain>. This change implies, that fully qualified domain names must end with '.'. * Do not let user accidentally remove entire zone with command "ipa dnsrecord-del @ --del-all". * Fix --ttl and --class option processing in dnsrecord-add and dnsrecord-mod. All API changes are compatible with clients without this patch. https://fedorahosted.org/freeipa/ticket/2082
Diffstat (limited to 'API.txt')
-rw-r--r--API.txt328
1 files changed, 146 insertions, 182 deletions
diff --git a/API.txt b/API.txt
index 493d5a3ff..895225a1c 100644
--- a/API.txt
+++ b/API.txt
@@ -613,135 +613,93 @@ arg: Str('dnszoneidnsname', cli_name='dnszone', query=True, required=True)
arg: Str('idnsname', attribute=True, cli_name='name', multivalue=False, primary_key=True, required=True)
option: Int('dnsttl', attribute=True, cli_name='ttl', multivalue=False, required=False)
option: StrEnum('dnsclass', attribute=True, cli_name='class', multivalue=False, required=False, values=(u'IN', u'CS', u'CH', u'HS'))
+option: ARecord('arecord', attribute=True, cli_name='a_rec', csv=True, multivalue=True, required=False)
+option: AAAARecord('aaaarecord', attribute=True, cli_name='aaaa_rec', csv=True, multivalue=True, required=False)
+option: A6Record('a6record', attribute=True, cli_name='a6_rec', csv=True, multivalue=True, required=False)
+option: AFSDBRecord('afsdbrecord', attribute=True, cli_name='afsdb_rec', csv=True, multivalue=True, required=False)
+option: APLRecord('aplrecord', attribute=True, cli_name='apl_rec', csv=True, multivalue=True, required=False)
+option: CERTRecord('certrecord', attribute=True, cli_name='cert_rec', csv=True, multivalue=True, required=False)
+option: CNAMERecord('cnamerecord', attribute=True, cli_name='cname_rec', csv=True, multivalue=True, required=False)
+option: DHCIDRecord('dhcidrecord', attribute=True, cli_name='dhcid_rec', csv=True, multivalue=True, required=False)
+option: DLVRecord('dlvrecord', attribute=True, cli_name='dlv_rec', csv=True, multivalue=True, required=False)
+option: DNAMERecord('dnamerecord', attribute=True, cli_name='dname_rec', csv=True, multivalue=True, required=False)
+option: DNSKEYRecord('dnskeyrecord', attribute=True, cli_name='dnskey_rec', csv=True, multivalue=True, required=False)
+option: DSRecord('dsrecord', attribute=True, cli_name='ds_rec', csv=True, multivalue=True, required=False)
+option: HIPRecord('hiprecord', attribute=True, cli_name='hip_rec', csv=True, multivalue=True, required=False)
+option: IPSECKEYRecord('ipseckeyrecord', attribute=True, cli_name='ipseckey_rec', csv=True, multivalue=True, required=False)
+option: KEYRecord('keyrecord', attribute=True, cli_name='key_rec', csv=True, multivalue=True, required=False)
+option: KXRecord('kxrecord', attribute=True, cli_name='kx_rec', csv=True, multivalue=True, required=False)
+option: LOCRecord('locrecord', attribute=True, cli_name='loc_rec', csv=True, multivalue=True, required=False)
+option: MXRecord('mxrecord', attribute=True, cli_name='mx_rec', csv=True, multivalue=True, required=False)
+option: NAPTRRecord('naptrrecord', attribute=True, cli_name='naptr_rec', csv=True, multivalue=True, required=False)
+option: NSRecord('nsrecord', attribute=True, cli_name='ns_rec', csv=True, multivalue=True, required=False)
+option: NSECRecord('nsecrecord', attribute=True, cli_name='nsec_rec', csv=True, multivalue=True, required=False)
+option: NSEC3Record('nsec3record', attribute=True, cli_name='nsec3_rec', csv=True, multivalue=True, required=False)
+option: NSEC3PARAMRecord('nsec3paramrecord', attribute=True, cli_name='nsec3param_rec', csv=True, multivalue=True, required=False)
+option: PTRRecord('ptrrecord', attribute=True, cli_name='ptr_rec', csv=True, multivalue=True, required=False)
+option: RRSIGRecord('rrsigrecord', attribute=True, cli_name='rrsig_rec', csv=True, multivalue=True, required=False)
+option: RPRecord('rprecord', attribute=True, cli_name='rp_rec', csv=True, multivalue=True, required=False)
+option: SIGRecord('sigrecord', attribute=True, cli_name='sig_rec', csv=True, multivalue=True, required=False)
+option: SPFRecord('spfrecord', attribute=True, cli_name='spf_rec', csv=True, multivalue=True, required=False)
+option: SRVRecord('srvrecord', attribute=True, cli_name='srv_rec', csv=True, multivalue=True, required=False)
+option: SSHFPRecord('sshfprecord', attribute=True, cli_name='sshfp_rec', csv=True, multivalue=True, required=False)
+option: TARecord('tarecord', attribute=True, cli_name='ta_rec', csv=True, multivalue=True, required=False)
+option: TKEYRecord('tkeyrecord', attribute=True, cli_name='tkey_rec', csv=True, multivalue=True, required=False)
+option: TSIGRecord('tsigrecord', attribute=True, cli_name='tsig_rec', csv=True, multivalue=True, required=False)
+option: TXTRecord('txtrecord', attribute=True, cli_name='txt_rec', csv=True, multivalue=True, required=False)
option: Str('setattr*', cli_name='setattr', exclude='webui')
option: Str('addattr*', cli_name='addattr', exclude='webui')
option: Flag('force', autofill=True, default=False)
option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui')
option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui')
option: Str('version?', exclude='webui')
-option: Str('arecord*', attribute=True, cli_name='a_rec', csv=True)
-option: Str('aaaarecord*', attribute=True, cli_name='aaaa_rec', csv=True)
-option: Str('a6record*', attribute=True, cli_name='a6_rec', csv=True)
-option: Str('afsdbrecord*', attribute=True, cli_name='afsdb_rec', csv=True)
-option: Str('aplrecord*', attribute=True, cli_name='apl_rec', csv=True)
-option: Str('certrecord*', attribute=True, cli_name='cert_rec', csv=True)
-option: Str('cnamerecord*', attribute=True, cli_name='cname_rec', csv=True)
-option: Str('dhcidrecord*', attribute=True, cli_name='dhcid_rec', csv=True)
-option: Str('dlvrecord*', attribute=True, cli_name='dlv_rec', csv=True)
-option: Str('dnamerecord*', attribute=True, cli_name='dname_rec', csv=True)
-option: Str('dnskeyrecord*', attribute=True, cli_name='dnskey_rec', csv=True)
-option: Str('dsrecord*', attribute=True, cli_name='ds_rec', csv=True)
-option: Str('hiprecord*', attribute=True, cli_name='hip_rec', csv=True)
-option: Str('ipseckeyrecord*', attribute=True, cli_name='ipseckey_rec', csv=True)
-option: Str('keyrecord*', attribute=True, cli_name='key_rec', csv=True)
-option: Str('kxrecord*', attribute=True, cli_name='kx_rec', csv=True)
-option: Str('locrecord*', attribute=True, cli_name='loc_rec', csv=True)
-option: Str('mxrecord*', attribute=True, cli_name='mx_rec', csv=True)
-option: Str('naptrrecord*', attribute=True, cli_name='naptr_rec', csv=True)
-option: Str('nsrecord*', attribute=True, cli_name='ns_rec', csv=True)
-option: Str('nsecrecord*', attribute=True, cli_name='nsec_rec', csv=True)
-option: Str('nsec3record*', attribute=True, cli_name='nsec3_rec', csv=True)
-option: Str('nsec3paramrecord*', attribute=True, cli_name='nsec3param_rec', csv=True)
-option: Str('ptrrecord*', attribute=True, cli_name='ptr_rec', csv=True)
-option: Str('rrsigrecord*', attribute=True, cli_name='rrsig_rec', csv=True)
-option: Str('rprecord*', attribute=True, cli_name='rp_rec', csv=True)
-option: Str('sigrecord*', attribute=True, cli_name='sig_rec', csv=True)
-option: Str('spfrecord*', attribute=True, cli_name='spf_rec', csv=True)
-option: Str('srvrecord*', attribute=True, cli_name='srv_rec', csv=True)
-option: Str('sshfprecord*', attribute=True, cli_name='sshfp_rec', csv=True)
-option: Str('tarecord*', attribute=True, cli_name='ta_rec', csv=True)
-option: Str('tkeyrecord*', attribute=True, cli_name='tkey_rec', csv=True)
-option: Str('tsigrecord*', attribute=True, cli_name='tsig_rec', csv=True)
-option: Str('txtrecord*', attribute=True, cli_name='txt_rec', csv=True)
-output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), None)
-output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
-output: Output('value', <type 'unicode'>, None)
-command: dnsrecord_add_record
-args: 2,37,3
-arg: Str('dnszoneidnsname', cli_name='dnszone', query=True, required=True)
-arg: Str('idnsname', attribute=True, cli_name='name', multivalue=False, primary_key=True, query=True, required=True)
-option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui')
-option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui')
-option: Str('version?', exclude='webui')
-option: Str('arecord*', attribute=True, cli_name='a_rec', csv=True)
-option: Str('aaaarecord*', attribute=True, cli_name='aaaa_rec', csv=True)
-option: Str('a6record*', attribute=True, cli_name='a6_rec', csv=True)
-option: Str('afsdbrecord*', attribute=True, cli_name='afsdb_rec', csv=True)
-option: Str('aplrecord*', attribute=True, cli_name='apl_rec', csv=True)
-option: Str('certrecord*', attribute=True, cli_name='cert_rec', csv=True)
-option: Str('cnamerecord*', attribute=True, cli_name='cname_rec', csv=True)
-option: Str('dhcidrecord*', attribute=True, cli_name='dhcid_rec', csv=True)
-option: Str('dlvrecord*', attribute=True, cli_name='dlv_rec', csv=True)
-option: Str('dnamerecord*', attribute=True, cli_name='dname_rec', csv=True)
-option: Str('dnskeyrecord*', attribute=True, cli_name='dnskey_rec', csv=True)
-option: Str('dsrecord*', attribute=True, cli_name='ds_rec', csv=True)
-option: Str('hiprecord*', attribute=True, cli_name='hip_rec', csv=True)
-option: Str('ipseckeyrecord*', attribute=True, cli_name='ipseckey_rec', csv=True)
-option: Str('keyrecord*', attribute=True, cli_name='key_rec', csv=True)
-option: Str('kxrecord*', attribute=True, cli_name='kx_rec', csv=True)
-option: Str('locrecord*', attribute=True, cli_name='loc_rec', csv=True)
-option: Str('mxrecord*', attribute=True, cli_name='mx_rec', csv=True)
-option: Str('naptrrecord*', attribute=True, cli_name='naptr_rec', csv=True)
-option: Str('nsrecord*', attribute=True, cli_name='ns_rec', csv=True)
-option: Str('nsecrecord*', attribute=True, cli_name='nsec_rec', csv=True)
-option: Str('nsec3record*', attribute=True, cli_name='nsec3_rec', csv=True)
-option: Str('nsec3paramrecord*', attribute=True, cli_name='nsec3param_rec', csv=True)
-option: Str('ptrrecord*', attribute=True, cli_name='ptr_rec', csv=True)
-option: Str('rrsigrecord*', attribute=True, cli_name='rrsig_rec', csv=True)
-option: Str('rprecord*', attribute=True, cli_name='rp_rec', csv=True)
-option: Str('sigrecord*', attribute=True, cli_name='sig_rec', csv=True)
-option: Str('spfrecord*', attribute=True, cli_name='spf_rec', csv=True)
-option: Str('srvrecord*', attribute=True, cli_name='srv_rec', csv=True)
-option: Str('sshfprecord*', attribute=True, cli_name='sshfp_rec', csv=True)
-option: Str('tarecord*', attribute=True, cli_name='ta_rec', csv=True)
-option: Str('tkeyrecord*', attribute=True, cli_name='tkey_rec', csv=True)
-option: Str('tsigrecord*', attribute=True, cli_name='tsig_rec', csv=True)
-option: Str('txtrecord*', attribute=True, cli_name='txt_rec', csv=True)
output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), None)
output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
output: Output('value', <type 'unicode'>, None)
command: dnsrecord_del
-args: 2,38,3
+args: 2,40,3
arg: Str('dnszoneidnsname', cli_name='dnszone', query=True, required=True)
arg: Str('idnsname', attribute=True, cli_name='name', multivalue=False, primary_key=True, query=True, required=True)
+option: Int('dnsttl', attribute=True, autofill=False, cli_name='ttl', multivalue=False, required=False)
+option: StrEnum('dnsclass', attribute=True, autofill=False, cli_name='class', multivalue=False, required=False, values=(u'IN', u'CS', u'CH', u'HS'))
+option: ARecord('arecord', attribute=True, autofill=False, cli_name='a_rec', csv=True, multivalue=True, required=False)
+option: AAAARecord('aaaarecord', attribute=True, autofill=False, cli_name='aaaa_rec', csv=True, multivalue=True, required=False)
+option: A6Record('a6record', attribute=True, autofill=False, cli_name='a6_rec', csv=True, multivalue=True, required=False)
+option: AFSDBRecord('afsdbrecord', attribute=True, autofill=False, cli_name='afsdb_rec', csv=True, multivalue=True, required=False)
+option: APLRecord('aplrecord', attribute=True, autofill=False, cli_name='apl_rec', csv=True, multivalue=True, required=False)
+option: CERTRecord('certrecord', attribute=True, autofill=False, cli_name='cert_rec', csv=True, multivalue=True, required=False)
+option: CNAMERecord('cnamerecord', attribute=True, autofill=False, cli_name='cname_rec', csv=True, multivalue=True, required=False)
+option: DHCIDRecord('dhcidrecord', attribute=True, autofill=False, cli_name='dhcid_rec', csv=True, multivalue=True, required=False)
+option: DLVRecord('dlvrecord', attribute=True, autofill=False, cli_name='dlv_rec', csv=True, multivalue=True, required=False)
+option: DNAMERecord('dnamerecord', attribute=True, autofill=False, cli_name='dname_rec', csv=True, multivalue=True, required=False)
+option: DNSKEYRecord('dnskeyrecord', attribute=True, autofill=False, cli_name='dnskey_rec', csv=True, multivalue=True, required=False)
+option: DSRecord('dsrecord', attribute=True, autofill=False, cli_name='ds_rec', csv=True, multivalue=True, required=False)
+option: HIPRecord('hiprecord', attribute=True, autofill=False, cli_name='hip_rec', csv=True, multivalue=True, required=False)
+option: IPSECKEYRecord('ipseckeyrecord', attribute=True, autofill=False, cli_name='ipseckey_rec', csv=True, multivalue=True, required=False)
+option: KEYRecord('keyrecord', attribute=True, autofill=False, cli_name='key_rec', csv=True, multivalue=True, required=False)
+option: KXRecord('kxrecord', attribute=True, autofill=False, cli_name='kx_rec', csv=True, multivalue=True, required=False)
+option: LOCRecord('locrecord', attribute=True, autofill=False, cli_name='loc_rec', csv=True, multivalue=True, required=False)
+option: MXRecord('mxrecord', attribute=True, autofill=False, cli_name='mx_rec', csv=True, multivalue=True, required=False)
+option: NAPTRRecord('naptrrecord', attribute=True, autofill=False, cli_name='naptr_rec', csv=True, multivalue=True, required=False)
+option: NSRecord('nsrecord', attribute=True, autofill=False, cli_name='ns_rec', csv=True, multivalue=True, required=False)
+option: NSECRecord('nsecrecord', attribute=True, autofill=False, cli_name='nsec_rec', csv=True, multivalue=True, required=False)
+option: NSEC3Record('nsec3record', attribute=True, autofill=False, cli_name='nsec3_rec', csv=True, multivalue=True, required=False)
+option: NSEC3PARAMRecord('nsec3paramrecord', attribute=True, autofill=False, cli_name='nsec3param_rec', csv=True, multivalue=True, required=False)
+option: PTRRecord('ptrrecord', attribute=True, autofill=False, cli_name='ptr_rec', csv=True, multivalue=True, required=False)
+option: RRSIGRecord('rrsigrecord', attribute=True, autofill=False, cli_name='rrsig_rec', csv=True, multivalue=True, required=False)
+option: RPRecord('rprecord', attribute=True, autofill=False, cli_name='rp_rec', csv=True, multivalue=True, required=False)
+option: SIGRecord('sigrecord', attribute=True, autofill=False, cli_name='sig_rec', csv=True, multivalue=True, required=False)
+option: SPFRecord('spfrecord', attribute=True, autofill=False, cli_name='spf_rec', csv=True, multivalue=True, required=False)
+option: SRVRecord('srvrecord', attribute=True, autofill=False, cli_name='srv_rec', csv=True, multivalue=True, required=False)
+option: SSHFPRecord('sshfprecord', attribute=True, autofill=False, cli_name='sshfp_rec', csv=True, multivalue=True, required=False)
+option: TARecord('tarecord', attribute=True, autofill=False, cli_name='ta_rec', csv=True, multivalue=True, required=False)
+option: TKEYRecord('tkeyrecord', attribute=True, autofill=False, cli_name='tkey_rec', csv=True, multivalue=True, required=False)
+option: TSIGRecord('tsigrecord', attribute=True, autofill=False, cli_name='tsig_rec', csv=True, multivalue=True, required=False)
+option: TXTRecord('txtrecord', attribute=True, autofill=False, cli_name='txt_rec', csv=True, multivalue=True, required=False)
option: Flag('del_all', autofill=True, default=False)
option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui')
option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui')
option: Str('version?', exclude='webui')
-option: Str('arecord*', attribute=True, cli_name='a_rec', csv=True)
-option: Str('aaaarecord*', attribute=True, cli_name='aaaa_rec', csv=True)
-option: Str('a6record*', attribute=True, cli_name='a6_rec', csv=True)
-option: Str('afsdbrecord*', attribute=True, cli_name='afsdb_rec', csv=True)
-option: Str('aplrecord*', attribute=True, cli_name='apl_rec', csv=True)
-option: Str('certrecord*', attribute=True, cli_name='cert_rec', csv=True)
-option: Str('cnamerecord*', attribute=True, cli_name='cname_rec', csv=True)
-option: Str('dhcidrecord*', attribute=True, cli_name='dhcid_rec', csv=True)
-option: Str('dlvrecord*', attribute=True, cli_name='dlv_rec', csv=True)
-option: Str('dnamerecord*', attribute=True, cli_name='dname_rec', csv=True)
-option: Str('dnskeyrecord*', attribute=True, cli_name='dnskey_rec', csv=True)
-option: Str('dsrecord*', attribute=True, cli_name='ds_rec', csv=True)
-option: Str('hiprecord*', attribute=True, cli_name='hip_rec', csv=True)
-option: Str('ipseckeyrecord*', attribute=True, cli_name='ipseckey_rec', csv=True)
-option: Str('keyrecord*', attribute=True, cli_name='key_rec', csv=True)
-option: Str('kxrecord*', attribute=True, cli_name='kx_rec', csv=True)
-option: Str('locrecord*', attribute=True, cli_name='loc_rec', csv=True)
-option: Str('mxrecord*', attribute=True, cli_name='mx_rec', csv=True)
-option: Str('naptrrecord*', attribute=True, cli_name='naptr_rec', csv=True)
-option: Str('nsrecord*', attribute=True, cli_name='ns_rec', csv=True)
-option: Str('nsecrecord*', attribute=True, cli_name='nsec_rec', csv=True)
-option: Str('nsec3record*', attribute=True, cli_name='nsec3_rec', csv=True)
-option: Str('nsec3paramrecord*', attribute=True, cli_name='nsec3param_rec', csv=True)
-option: Str('ptrrecord*', attribute=True, cli_name='ptr_rec', csv=True)
-option: Str('rrsigrecord*', attribute=True, cli_name='rrsig_rec', csv=True)
-option: Str('rprecord*', attribute=True, cli_name='rp_rec', csv=True)
-option: Str('sigrecord*', attribute=True, cli_name='sig_rec', csv=True)
-option: Str('spfrecord*', attribute=True, cli_name='spf_rec', csv=True)
-option: Str('srvrecord*', attribute=True, cli_name='srv_rec', csv=True)
-option: Str('sshfprecord*', attribute=True, cli_name='sshfp_rec', csv=True)
-option: Str('tarecord*', attribute=True, cli_name='ta_rec', csv=True)
-option: Str('tkeyrecord*', attribute=True, cli_name='tkey_rec', csv=True)
-option: Str('tsigrecord*', attribute=True, cli_name='tsig_rec', csv=True)
-option: Str('txtrecord*', attribute=True, cli_name='txt_rec', csv=True)
output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), None)
output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
output: Output('value', <type 'unicode'>, None)
@@ -760,91 +718,97 @@ arg: Str('criteria?', noextrawhitespace=False)
option: Str('idnsname', attribute=True, autofill=False, cli_name='name', multivalue=False, primary_key=True, query=True, required=False)
option: Int('dnsttl', attribute=True, autofill=False, cli_name='ttl', multivalue=False, query=True, required=False)
option: StrEnum('dnsclass', attribute=True, autofill=False, cli_name='class', multivalue=False, query=True, required=False, values=(u'IN', u'CS', u'CH', u'HS'))
+option: ARecord('arecord', attribute=True, autofill=False, cli_name='a_rec', csv=True, multivalue=True, query=True, required=False)
+option: AAAARecord('aaaarecord', attribute=True, autofill=False, cli_name='aaaa_rec', csv=True, multivalue=True, query=True, required=False)
+option: A6Record('a6record', attribute=True, autofill=False, cli_name='a6_rec', csv=True, multivalue=True, query=True, required=False)
+option: AFSDBRecord('afsdbrecord', attribute=True, autofill=False, cli_name='afsdb_rec', csv=True, multivalue=True, query=True, required=False)
+option: APLRecord('aplrecord', attribute=True, autofill=False, cli_name='apl_rec', csv=True, multivalue=True, query=True, required=False)
+option: CERTRecord('certrecord', attribute=True, autofill=False, cli_name='cert_rec', csv=True, multivalue=True, query=True, required=False)
+option: CNAMERecord('cnamerecord', attribute=True, autofill=False, cli_name='cname_rec', csv=True, multivalue=True, query=True, required=False)
+option: DHCIDRecord('dhcidrecord', attribute=True, autofill=False, cli_name='dhcid_rec', csv=True, multivalue=True, query=True, required=False)
+option: DLVRecord('dlvrecord', attribute=True, autofill=False, cli_name='dlv_rec', csv=True, multivalue=True, query=True, required=False)
+option: DNAMERecord('dnamerecord', attribute=True, autofill=False, cli_name='dname_rec', csv=True, multivalue=True, query=True, required=False)
+option: DNSKEYRecord('dnskeyrecord', attribute=True, autofill=False, cli_name='dnskey_rec', csv=True, multivalue=True, query=True, required=False)
+option: DSRecord('dsrecord', attribute=True, autofill=False, cli_name='ds_rec', csv=True, multivalue=True, query=True, required=False)
+option: HIPRecord('hiprecord', attribute=True, autofill=False, cli_name='hip_rec', csv=True, multivalue=True, query=True, required=False)
+option: IPSECKEYRecord('ipseckeyrecord', attribute=True, autofill=False, cli_name='ipseckey_rec', csv=True, multivalue=True, query=True, required=False)
+option: KEYRecord('keyrecord', attribute=True, autofill=False, cli_name='key_rec', csv=True, multivalue=True, query=True, required=False)
+option: KXRecord('kxrecord', attribute=True, autofill=False, cli_name='kx_rec', csv=True, multivalue=True, query=True, required=False)
+option: LOCRecord('locrecord', attribute=True, autofill=False, cli_name='loc_rec', csv=True, multivalue=True, query=True, required=False)
+option: MXRecord('mxrecord', attribute=True, autofill=False, cli_name='mx_rec', csv=True, multivalue=True, query=True, required=False)
+option: NAPTRRecord('naptrrecord', attribute=True, autofill=False, cli_name='naptr_rec', csv=True, multivalue=True, query=True, required=False)
+option: NSRecord('nsrecord', attribute=True, autofill=False, cli_name='ns_rec', csv=True, multivalue=True, query=True, required=False)
+option: NSECRecord('nsecrecord', attribute=True, autofill=False, cli_name='nsec_rec', csv=True, multivalue=True, query=True, required=False)
+option: NSEC3Record('nsec3record', attribute=True, autofill=False, cli_name='nsec3_rec', csv=True, multivalue=True, query=True, required=False)
+option: NSEC3PARAMRecord('nsec3paramrecord', attribute=True, autofill=False, cli_name='nsec3param_rec', csv=True, multivalue=True, query=True, required=False)
+option: PTRRecord('ptrrecord', attribute=True, autofill=False, cli_name='ptr_rec', csv=True, multivalue=True, query=True, required=False)
+option: RRSIGRecord('rrsigrecord', attribute=True, autofill=False, cli_name='rrsig_rec', csv=True, multivalue=True, query=True, required=False)
+option: RPRecord('rprecord', attribute=True, autofill=False, cli_name='rp_rec', csv=True, multivalue=True, query=True, required=False)
+option: SIGRecord('sigrecord', attribute=True, autofill=False, cli_name='sig_rec', csv=True, multivalue=True, query=True, required=False)
+option: SPFRecord('spfrecord', attribute=True, autofill=False, cli_name='spf_rec', csv=True, multivalue=True, query=True, required=False)
+option: SRVRecord('srvrecord', attribute=True, autofill=False, cli_name='srv_rec', csv=True, multivalue=True, query=True, required=False)
+option: SSHFPRecord('sshfprecord', attribute=True, autofill=False, cli_name='sshfp_rec', csv=True, multivalue=True, query=True, required=False)
+option: TARecord('tarecord', attribute=True, autofill=False, cli_name='ta_rec', csv=True, multivalue=True, query=True, required=False)
+option: TKEYRecord('tkeyrecord', attribute=True, autofill=False, cli_name='tkey_rec', csv=True, multivalue=True, query=True, required=False)
+option: TSIGRecord('tsigrecord', attribute=True, autofill=False, cli_name='tsig_rec', csv=True, multivalue=True, query=True, required=False)
+option: TXTRecord('txtrecord', attribute=True, autofill=False, cli_name='txt_rec', csv=True, multivalue=True, query=True, required=False)
option: Int('timelimit?', autofill=False, minvalue=0)
option: Int('sizelimit?', autofill=False, minvalue=0)
option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui')
option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui')
option: Str('version?', exclude='webui')
option: Flag('pkey_only?', autofill=True, default=False)
-option: Str('arecord', attribute=True, cli_name='a_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('aaaarecord', attribute=True, cli_name='aaaa_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('a6record', attribute=True, cli_name='a6_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('afsdbrecord', attribute=True, cli_name='afsdb_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('aplrecord', attribute=True, cli_name='apl_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('certrecord', attribute=True, cli_name='cert_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('cnamerecord', attribute=True, cli_name='cname_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('dhcidrecord', attribute=True, cli_name='dhcid_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('dlvrecord', attribute=True, cli_name='dlv_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('dnamerecord', attribute=True, cli_name='dname_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('dnskeyrecord', attribute=True, cli_name='dnskey_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('dsrecord', attribute=True, cli_name='ds_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('hiprecord', attribute=True, cli_name='hip_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('ipseckeyrecord', attribute=True, cli_name='ipseckey_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('keyrecord', attribute=True, cli_name='key_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('kxrecord', attribute=True, cli_name='kx_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('locrecord', attribute=True, cli_name='loc_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('mxrecord', attribute=True, cli_name='mx_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('naptrrecord', attribute=True, cli_name='naptr_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('nsrecord', attribute=True, cli_name='ns_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('nsecrecord', attribute=True, cli_name='nsec_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('nsec3record', attribute=True, cli_name='nsec3_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('nsec3paramrecord', attribute=True, cli_name='nsec3param_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('ptrrecord', attribute=True, cli_name='ptr_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('rrsigrecord', attribute=True, cli_name='rrsig_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('rprecord', attribute=True, cli_name='rp_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('sigrecord', attribute=True, cli_name='sig_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('spfrecord', attribute=True, cli_name='spf_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('srvrecord', attribute=True, cli_name='srv_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('sshfprecord', attribute=True, cli_name='sshfp_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('tarecord', attribute=True, cli_name='ta_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('tkeyrecord', attribute=True, cli_name='tkey_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('tsigrecord', attribute=True, cli_name='tsig_rec', csv=True, multivalue=True, query=True, required=False)
-option: Str('txtrecord', attribute=True, cli_name='txt_rec', csv=True, multivalue=True, query=True, required=False)
output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), None)
output: ListOfEntries('result', (<type 'list'>, <type 'tuple'>), Gettext('A list of LDAP entries', domain='ipa', localedir=None))
output: Output('count', <type 'int'>, None)
output: Output('truncated', <type 'bool'>, None)
command: dnsrecord_mod
-args: 2,37,3
+args: 2,43,3
arg: Str('dnszoneidnsname', cli_name='dnszone', query=True, required=True)
arg: Str('idnsname', attribute=True, cli_name='name', multivalue=False, primary_key=True, query=True, required=True)
+option: Int('dnsttl', attribute=True, autofill=False, cli_name='ttl', multivalue=False, required=False)
+option: StrEnum('dnsclass', attribute=True, autofill=False, cli_name='class', multivalue=False, required=False, values=(u'IN', u'CS', u'CH', u'HS'))
+option: ARecord('arecord', attribute=True, autofill=False, cli_name='a_rec', csv=True, multivalue=True, required=False)
+option: AAAARecord('aaaarecord', attribute=True, autofill=False, cli_name='aaaa_rec', csv=True, multivalue=True, required=False)
+option: A6Record('a6record', attribute=True, autofill=False, cli_name='a6_rec', csv=True, multivalue=True, required=False)
+option: AFSDBRecord('afsdbrecord', attribute=True, autofill=False, cli_name='afsdb_rec', csv=True, multivalue=True, required=False)
+option: APLRecord('aplrecord', attribute=True, autofill=False, cli_name='apl_rec', csv=True, multivalue=True, required=False)
+option: CERTRecord('certrecord', attribute=True, autofill=False, cli_name='cert_rec', csv=True, multivalue=True, required=False)
+option: CNAMERecord('cnamerecord', attribute=True, autofill=False, cli_name='cname_rec', csv=True, multivalue=True, required=False)
+option: DHCIDRecord('dhcidrecord', attribute=True, autofill=False, cli_name='dhcid_rec', csv=True, multivalue=True, required=False)
+option: DLVRecord('dlvrecord', attribute=True, autofill=False, cli_name='dlv_rec', csv=True, multivalue=True, required=False)
+option: DNAMERecord('dnamerecord', attribute=True, autofill=False, cli_name='dname_rec', csv=True, multivalue=True, required=False)
+option: DNSKEYRecord('dnskeyrecord', attribute=True, autofill=False, cli_name='dnskey_rec', csv=True, multivalue=True, required=False)
+option: DSRecord('dsrecord', attribute=True, autofill=False, cli_name='ds_rec', csv=True, multivalue=True, required=False)
+option: HIPRecord('hiprecord', attribute=True, autofill=False, cli_name='hip_rec', csv=True, multivalue=True, required=False)
+option: IPSECKEYRecord('ipseckeyrecord', attribute=True, autofill=False, cli_name='ipseckey_rec', csv=True, multivalue=True, required=False)
+option: KEYRecord('keyrecord', attribute=True, autofill=False, cli_name='key_rec', csv=True, multivalue=True, required=False)
+option: KXRecord('kxrecord', attribute=True, autofill=False, cli_name='kx_rec', csv=True, multivalue=True, required=False)
+option: LOCRecord('locrecord', attribute=True, autofill=False, cli_name='loc_rec', csv=True, multivalue=True, required=False)
+option: MXRecord('mxrecord', attribute=True, autofill=False, cli_name='mx_rec', csv=True, multivalue=True, required=False)
+option: NAPTRRecord('naptrrecord', attribute=True, autofill=False, cli_name='naptr_rec', csv=True, multivalue=True, required=False)
+option: NSRecord('nsrecord', attribute=True, autofill=False, cli_name='ns_rec', csv=True, multivalue=True, required=False)
+option: NSECRecord('nsecrecord', attribute=True, autofill=False, cli_name='nsec_rec', csv=True, multivalue=True, required=False)
+option: NSEC3Record('nsec3record', attribute=True, autofill=False, cli_name='nsec3_rec', csv=True, multivalue=True, required=False)
+option: NSEC3PARAMRecord('nsec3paramrecord', attribute=True, autofill=False, cli_name='nsec3param_rec', csv=True, multivalue=True, required=False)
+option: PTRRecord('ptrrecord', attribute=True, autofill=False, cli_name='ptr_rec', csv=True, multivalue=True, required=False)
+option: RRSIGRecord('rrsigrecord', attribute=True, autofill=False, cli_name='rrsig_rec', csv=True, multivalue=True, required=False)
+option: RPRecord('rprecord', attribute=True, autofill=False, cli_name='rp_rec', csv=True, multivalue=True, required=False)
+option: SIGRecord('sigrecord', attribute=True, autofill=False, cli_name='sig_rec', csv=True, multivalue=True, required=False)
+option: SPFRecord('spfrecord', attribute=True, autofill=False, cli_name='spf_rec', csv=True, multivalue=True, required=False)
+option: SRVRecord('srvrecord', attribute=True, autofill=False, cli_name='srv_rec', csv=True, multivalue=True, required=False)
+option: SSHFPRecord('sshfprecord', attribute=True, autofill=False, cli_name='sshfp_rec', csv=True, multivalue=True, required=False)
+option: TARecord('tarecord', attribute=True, autofill=False, cli_name='ta_rec', csv=True, multivalue=True, required=False)
+option: TKEYRecord('tkeyrecord', attribute=True, autofill=False, cli_name='tkey_rec', csv=True, multivalue=True, required=False)
+option: TSIGRecord('tsigrecord', attribute=True, autofill=False, cli_name='tsig_rec', csv=True, multivalue=True, required=False)
+option: TXTRecord('txtrecord', attribute=True, autofill=False, cli_name='txt_rec', csv=True, multivalue=True, required=False)
+option: Str('setattr*', cli_name='setattr', exclude='webui')
+option: Str('addattr*', cli_name='addattr', exclude='webui')
+option: Str('delattr*', cli_name='delattr', exclude='webui')
+option: Flag('rights', autofill=True, default=False)
option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui')
option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui')
option: Str('version?', exclude='webui')
-option: Str('arecord*', attribute=True, cli_name='a_rec', csv=True)
-option: Str('aaaarecord*', attribute=True, cli_name='aaaa_rec', csv=True)
-option: Str('a6record*', attribute=True, cli_name='a6_rec', csv=True)
-option: Str('afsdbrecord*', attribute=True, cli_name='afsdb_rec', csv=True)
-option: Str('aplrecord*', attribute=True, cli_name='apl_rec', csv=True)
-option: Str('certrecord*', attribute=True, cli_name='cert_rec', csv=True)
-option: Str('cnamerecord*', attribute=True, cli_name='cname_rec', csv=True)
-option: Str('dhcidrecord*', attribute=True, cli_name='dhcid_rec', csv=True)
-option: Str('dlvrecord*', attribute=True, cli_name='dlv_rec', csv=True)
-option: Str('dnamerecord*', attribute=True, cli_name='dname_rec', csv=True)
-option: Str('dnskeyrecord*', attribute=True, cli_name='dnskey_rec', csv=True)
-option: Str('dsrecord*', attribute=True, cli_name='ds_rec', csv=True)
-option: Str('hiprecord*', attribute=True, cli_name='hip_rec', csv=True)
-option: Str('ipseckeyrecord*', attribute=True, cli_name='ipseckey_rec', csv=True)
-option: Str('keyrecord*', attribute=True, cli_name='key_rec', csv=True)
-option: Str('kxrecord*', attribute=True, cli_name='kx_rec', csv=True)
-option: Str('locrecord*', attribute=True, cli_name='loc_rec', csv=True)
-option: Str('mxrecord*', attribute=True, cli_name='mx_rec', csv=True)
-option: Str('naptrrecord*', attribute=True, cli_name='naptr_rec', csv=True)
-option: Str('nsrecord*', attribute=True, cli_name='ns_rec', csv=True)
-option: Str('nsecrecord*', attribute=True, cli_name='nsec_rec', csv=True)
-option: Str('nsec3record*', attribute=True, cli_name='nsec3_rec', csv=True)
-option: Str('nsec3paramrecord*', attribute=True, cli_name='nsec3param_rec', csv=True)
-option: Str('ptrrecord*', attribute=True, cli_name='ptr_rec', csv=True)
-option: Str('rrsigrecord*', attribute=True, cli_name='rrsig_rec', csv=True)
-option: Str('rprecord*', attribute=True, cli_name='rp_rec', csv=True)
-option: Str('sigrecord*', attribute=True, cli_name='sig_rec', csv=True)
-option: Str('spfrecord*', attribute=True, cli_name='spf_rec', csv=True)
-option: Str('srvrecord*', attribute=True, cli_name='srv_rec', csv=True)
-option: Str('sshfprecord*', attribute=True, cli_name='sshfp_rec', csv=True)
-option: Str('tarecord*', attribute=True, cli_name='ta_rec', csv=True)
-option: Str('tkeyrecord*', attribute=True, cli_name='tkey_rec', csv=True)
-option: Str('tsigrecord*', attribute=True, cli_name='tsig_rec', csv=True)
-option: Str('txtrecord*', attribute=True, cli_name='txt_rec', csv=True)
output: Output('summary', (<type 'unicode'>, <type 'NoneType'>), None)
output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
output: Output('value', <type 'unicode'>, None)