dcxl

package
v0.0.8-alpha.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 28, 2023 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package dcxl implements draft-coretta-x660-ldap-08, an Internet Draft of which I am the author.

Draft Information

The Internet Draft (henceforth referred to as "the ID") can be viewed here: https://datatracker.ietf.org/doc/html/draft-coretta-x660-ldap. It is currently EXPIRED, pending review. There may or may not be an update of this ID in the near future.

A text copy of the ID is also included in the package directory.

Advisory

No past or present version of the ID is meant to be used in any production environment and -- because it is not yet approved for an RFC track (and may never be) -- it should be considered PURELY EXPERIMENTAL and totally devoid of any official standing or acceptance.

That said, this specification COULD very well allow some nifty functionality that would be beneficial to any individual, entity or institution that deals with or manages ASN.1 object identifiers regularly, and requires a central (non-ORS) means of OID resolution / interrogation. This package exists to provide abstract access to such capabilities through the Go language.

Early Release

This package is under heavy, active development. In addition to the above advisory, adopters should expect some unannounced volatility with regards to the state of the package.

Versioning

This package may include subdirectories, one containing a versioned reference implementation that corresponds to the terms and precepts of the same document version. One will exist for each new release of the document if and when one is released. Previous versions will remain intact for backwards compatibility, however pull requests will not be accepted. The package contents in the top-most package directory represent the latest release, and will be identical to the highest version-numbered folder.

Pull requests are always welcome for the latest release.

Synopsis

The ID describes a possible means for storing the OID spectrum (in whole or in part) within an X.500 directory. It is effectively an "LDAP alternative" to an ORS implementation, which would typically be DNS-based.

To that end, the ID introduces myriad attribute types and a small handful of objectClass definitions -- each facilitating the storage of information pertaining to certain abstract types defined within ITU-T X-Series X.660, et al.

No LDAP Functionality

This package, although designed to work well in LDAP-related operations, DOES NOT import the go-ldap/ldap package. Users interacting with an X.500 Directory System Agent (DSA, a.k.a.: an "LDAP server") within the context of the ID are expected to craft their own Directory User Agent (DUA, a.k.a.: an "LDAP client").

Features

This package offers the following:

• Total compliance with the terms of the ID -- all eighty eight (88) attributeTypes, four (4) objectClasses and two (2) dimensional abstracts defined in the ID are available via this package through any instances of the Registration and Registrant types

• Plentiful documentation with useful examples

• Complete interface support, negating the need for manual type assertion involving any Registration or Registrant types during composition and interrogation procedures

• Extensible design; user-authored "Get" and "Set" closure functions are supported (but not required) at virtually every point, allowing limitless control over the contents and presentation of relevant objects/values

• Seamless compatibility with *ldap.NewEntry using the map-populating Unmarshal method, which is extended through any Registration or Registrant type instance

• Portable configuration type (per s. 2.2.4 of the ID), allowing critical information and configuration settings to be kept within individual Registration/Registrant instances for efficient and reliable operation

Enhanced Operation

For those dealing with ASN.1 Notation, Dot Notation, NumberForm and NameAndNumberForm values, OR for situations requiring uint128 NumberForm support, consider my objectid package (https://pkg.go.dev/github.com/JesseCoretta/go-objectid) for inclusion in any custom Set/Get functions in use. It can offer a potent advantage in scenarios relevant to this very package, and extends several very useful methods to greatly reduce the tedium (and error-prone nature) of this subject matter.

For those interested in the actual schema definitions relating to this ID, see https://github.com/JesseCoretta/draft-coretta-x660-ldap. The schemata is available for download in one (1) of three (3) distinct schema formats: OpenLDAP, ApacheDS and Netscape.

Index

Examples

Constants

View Source
const (
	TwoDimensional   = `1.3.6.1.4.1.56521.101.3.2` // s. 3.2
	ThreeDimensional = `1.3.6.1.4.1.56521.101.3.3` // s. 3.3
)

Variables

View Source
var (
	RegistrationValidityErr,
	UnsupportedInputTypeErr,
	IllegalASN1NotationErr,
	RegistrantValidityErr,
	DUAConfigValidityErr,
	IllegalNumberFormErr,
	InvalidDimensionErr,
	NilRegistrationErr,
	IllegalLongArcErr,
	MismatchedLeafErr,
	NilRegistrantErr,
	IllegalRootErr,
	InvalidOIDErr,
	InvalidDNErr error
)

Functions

func DNToDotNot2D

func DNToDotNot2D(X, R any) (id any, err error)

DNtoDotNot2D returns a dotNotation-based ASN.1 Object Identifier (id) based upon the contents of the input string distinguished name value (X) alongside an error. This function qualifies for the GetOrSetFunc type signature.

This conforms to the two dimensional DN syntax, as described in draft-coretta-x660-ldap, section 3.2. This function expects the use of dotNotation in the RDN.

For more information about functions such as this one, as well as information on writing your own speciality functions/methods, see the documentation for the GetOrSetFunc closure type.

func DNToDotNot3D

func DNToDotNot3D(X, R any) (id any, err error)

DNtoDotNot3D returns a dotNotation-based ASN.1 Object Identifier (id) based upon the contents of the input string distinguished name value (X) alongside an error. This function qualifies for the GetOrSetFunc type signature.

This conforms to the three dimensional DN syntax, as described in draft-coretta-x660-ldap, section 3.3. This function offers positive support for the RDN AT descriptor 'n' as well as its more "distinguished" descriptor alias 'numberForm'.

For more information about functions such as this one, as well as information on writing your own speciality functions/methods, see the documentation for the GetOrSetFunc closure type.

func DotNotToDN2D

func DotNotToDN2D(X, R any) (dn any, err error)

DotNotToDN2D returns a string-based LDAP distinguished name value (dn) based upon the contents of the input ASN.1 dotNotation value (X) alongside an error. This function qualifies for the GetOrSetFunc type signature.

This conforms to the two dimensional DN syntax, as described in draft-coretta-x660-ldap, section 3.2. This function will output a distinguished name value that uses the dotNotation for the RDN AT. Individual numberForms present within the dotNotation are verified as non-negative numbers, but are not modified.

For more information about functions such as this one, as well as information on writing your own speciality functions/methods, see the documentation for the GetOrSetFunc closure type.

func DotNotToDN3D

func DotNotToDN3D(X, R any) (dn any, err error)

DotNotToDN3D returns a string-based LDAP distinguished name value (dn) based upon the contents of the input ASN.1 dotNotation value (X) alongside an error. This function qualifies for the GetOrSetFunc type signature.

This conforms to the three dimensional DN syntax, as described in draft-coretta-x660-ldap, section 3.3. This function will output relative distinguished name values, each of whom describe specific numberForm values, using the preferred AT descriptor 'n'.

For more information about functions such as this one, as well as information on writing your own speciality functions/methods, see the documentation for the GetOrSetFunc closure type.

func GeneralizedTimeToTime

func GeneralizedTimeToTime(X, R any) (T any, err error)

GeneralizedTimeToTime converts one or more string-based generalizedTime values into a UTC-aligned time.Time instances, which are then added as slices to an instance of []time.Time (as an interface type), and then returned alongside an error. This function qualifies for the GetOrSetFunc type signature.

For more information about functions such as this one, as well as information on writing your own speciality functions/methods, see the documentation for the GetOrSetFunc closure type.

func TimeToGeneralizedTime

func TimeToGeneralizedTime(X, R any) (G any, err error)

TimeToGeneralizedTime converts an instance of time.Time into a string value instance of generalizedTime, which is returned alonside an error. This function qualifies for the GetOrSetFunc type signature.

For more information about functions such as this one, as well as information on writing your own speciality functions/methods, see the documentation for the GetOrSetFunc closure type.

Types

type CurrentAuthority

type CurrentAuthority struct {
	R_DN        string   `ldap:"dn"`
	R_Id        string   `ldap:"registrantID"`
	R_L         string   `ldap:"currentAuthorityLocality"`
	R_O         string   `ldap:"currentAuthorityOrg"`
	R_C         string   `ldap:"currentAuthorityCountryCode"`
	R_CO        string   `ldap:"currentAuthorityCountryName"`
	R_ST        string   `ldap:"currentAuthorityState"`
	R_CN        string   `ldap:"currentAuthorityCommonName"`
	R_Tel       string   `ldap:"currentAuthorityTelephone"`
	R_Fax       string   `ldap:"currentAuthorityFax"`
	R_Title     string   `ldap:"currentAuthorityTitle"`
	R_Email     string   `ldap:"currentAuthorityEmail"`
	R_POBox     string   `ldap:"currentAuthorityPOBox"`
	R_PCode     string   `ldap:"currentAuthorityPostalCode"`
	R_PAddr     string   `ldap:"currentAuthorityPostalAddress"`
	R_Street    string   `ldap:"currentAuthorityStreet"`
	R_Mobile    string   `ldap:"currentAuthorityMobile"`
	R_StartTime string   `ldap:"currentAuthorityStartTimestamp"`
	R_URI       []string `ldap:"currentAuthorityURI"`
	R_DUAConfig *DUAConfig
}

CurrentAuthority describes an active registration authority. Note that, unlike FirstAuthority and Sponsor types, this type DOES NOT possess an EndTime struct field.

func (CurrentAuthority) C

func (r CurrentAuthority) C() string

C returns the 2-letter country code value assigned to the receiver.

func (CurrentAuthority) CGetFunc

func (r CurrentAuthority) CGetFunc(getfunc GetOrSetFunc) (any, error)

CGetFunc processes the R_C field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) CN

func (r CurrentAuthority) CN() string

CN returns the common name value assigned to the receiver.

func (CurrentAuthority) CNGetFunc

func (r CurrentAuthority) CNGetFunc(getfunc GetOrSetFunc) (any, error)

CNGetFunc processes the R_CN field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) CO

func (r CurrentAuthority) CO() string

CO returns the so-called "friendly country name" value assigned to the receiver.

func (CurrentAuthority) COGetFunc

func (r CurrentAuthority) COGetFunc(getfunc GetOrSetFunc) (any, error)

COGetFunc processes the R_CO field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) DN

func (r CurrentAuthority) DN() string

DN returns the distinguished name value assigned to the receiver.

func (CurrentAuthority) DNGetFunc

func (r CurrentAuthority) DNGetFunc(getfunc GetOrSetFunc) (any, error)

DNGetFunc processes the R_DN field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) DUAConfig

func (r CurrentAuthority) DUAConfig() *DUAConfig

DUAConfig returns the *DUAConfig instance assigned to the receiver, if set, else nil is returned.

func (CurrentAuthority) Email

func (r CurrentAuthority) Email() string

Email returns the email address value assigned to the receiver.

func (CurrentAuthority) EmailGetFunc

func (r CurrentAuthority) EmailGetFunc(getfunc GetOrSetFunc) (any, error)

EmailGetFunc processes the R_Email field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) EndTime

func (r CurrentAuthority) EndTime() string

EndTime returns a bogus generalizedTime value. A current authority registrant, because it is active, has no end time. This method exists for this type (CurrentAuthority) ONLY TO satisfy go interface requirements and is thoroughly useless.

func (CurrentAuthority) Fax

func (r CurrentAuthority) Fax() string

Fax returns the facsimile telephone number value assigned to the receiver.

func (CurrentAuthority) FaxGetFunc

func (r CurrentAuthority) FaxGetFunc(getfunc GetOrSetFunc) (any, error)

FaxGetFunc processes the R_Fax field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) Kind

func (r CurrentAuthority) Kind() string

Kind returns the static string value `AUXILIARY` merely as a convenient means to declare what kind of objectClass the Registrant receiver describes.

func (CurrentAuthority) L

func (r CurrentAuthority) L() string

L returns the locality name value assigned to the receiver.

func (CurrentAuthority) LGetFunc

func (r CurrentAuthority) LGetFunc(getfunc GetOrSetFunc) (any, error)

LGetFunc processes the R_L field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) Mobile

func (r CurrentAuthority) Mobile() string

Mobile returns the mobile telephone number value assigned to the receiver.

func (CurrentAuthority) MobileGetFunc

func (r CurrentAuthority) MobileGetFunc(getfunc GetOrSetFunc) (any, error)

MobileGetFunc processes the R_Mobile field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) O

func (r CurrentAuthority) O() string

O returns the organization name value assigned to the receiver.

func (CurrentAuthority) OGetFunc

func (r CurrentAuthority) OGetFunc(getfunc GetOrSetFunc) (any, error)

OGetFunc processes the R_O field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) ObjectClass

func (r CurrentAuthority) ObjectClass() string

ObjectClass returns the static string value `x660Registrant` merely as an alternative to tested type assertion.

func (CurrentAuthority) POBox

func (r CurrentAuthority) POBox() string

POBox returns the postal office box value assigned to the receiver.

func (CurrentAuthority) POBoxGetFunc

func (r CurrentAuthority) POBoxGetFunc(getfunc GetOrSetFunc) (any, error)

POBoxGetFunc processes the R_POBox field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) PostalAddress

func (r CurrentAuthority) PostalAddress() string

PostalAddress returns the postal address value assigned to the receiver.

func (CurrentAuthority) PostalAddressGetFunc

func (r CurrentAuthority) PostalAddressGetFunc(getfunc GetOrSetFunc) (any, error)

PostalAddressGetFunc processes the R_PAddr field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) PostalCode

func (r CurrentAuthority) PostalCode() string

PostalCode returns the postal code value assigned to the receiver.

func (CurrentAuthority) PostalCodeGetFunc

func (r CurrentAuthority) PostalCodeGetFunc(getfunc GetOrSetFunc) (any, error)

PostalCodeGetFunc processes the R_PCode field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) RegistrantID

func (r CurrentAuthority) RegistrantID() string

RegistrantID returns the registrantID value assigned to the receiver.

func (CurrentAuthority) RegistrantIDGetFunc

func (r CurrentAuthority) RegistrantIDGetFunc(getfunc GetOrSetFunc) (any, error)

RegistrantIDGetFunc processes the R_Id field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) ST

func (r CurrentAuthority) ST() string

ST returns the state or province name value assigned to the receiver.

func (CurrentAuthority) STGetFunc

func (r CurrentAuthority) STGetFunc(getfunc GetOrSetFunc) (any, error)

STGetFunc processes the R_ST field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (*CurrentAuthority) SetC

func (r *CurrentAuthority) SetC(X any, setfunc ...GetOrSetFunc) error

SetC assigns the provided string value to the receiver's R_C field.

func (*CurrentAuthority) SetCN

func (r *CurrentAuthority) SetCN(X any, setfunc ...GetOrSetFunc) error

SetCN assigns the provided string value to the receiver's R_CN field.

func (*CurrentAuthority) SetCO

func (r *CurrentAuthority) SetCO(X any, setfunc ...GetOrSetFunc) error

SetCO assigns the provided string value to the receiver's R_CO field.

func (*CurrentAuthority) SetDN

func (r *CurrentAuthority) SetDN(X any, setfunc ...GetOrSetFunc) error

SetDN assigns the provided string value to the receiver's R_DN field.

func (*CurrentAuthority) SetDUAConfig

func (r *CurrentAuthority) SetDUAConfig(d *DUAConfig)

SetDUAConfig assigns the input *DUAConfig (d) to the receiver's R_DUAConfig struct field.

func (*CurrentAuthority) SetEmail

func (r *CurrentAuthority) SetEmail(X any, setfunc ...GetOrSetFunc) error

SetEmail assigns the provided string value to the receiver's R_Email field.

func (*CurrentAuthority) SetEndTime

func (r *CurrentAuthority) SetEndTime(X any, setfunc ...GetOrSetFunc) error

SetEndTime performs no useful task, as instances of *CurrentAuthority do not have an R_EndTime field.

See the Relegate function for cases where an instance of *CurrentAuthority needs to be "converted" into an instance of *FirstAuthority, which would then make the R_EndTime field available.

func (*CurrentAuthority) SetFax

func (r *CurrentAuthority) SetFax(X any, setfunc ...GetOrSetFunc) error

SetFax assigns the provided string value to the receiver's R_Fax field.

func (*CurrentAuthority) SetL

func (r *CurrentAuthority) SetL(X any, setfunc ...GetOrSetFunc) error

SetL assigns the provided string value to the receiver's R_L field.

func (*CurrentAuthority) SetMobile

func (r *CurrentAuthority) SetMobile(X any, setfunc ...GetOrSetFunc) error

SetMobile assigns the provided string value to the receiver's R_Mobile field.

func (*CurrentAuthority) SetO

func (r *CurrentAuthority) SetO(X any, setfunc ...GetOrSetFunc) error

SetO assigns the provided string value to the receiver's R_O field.

func (*CurrentAuthority) SetPOBox

func (r *CurrentAuthority) SetPOBox(X any, setfunc ...GetOrSetFunc) error

SetPOBox assigns the provided string value to the receiver's R_POBox field.

func (*CurrentAuthority) SetPostalAddress

func (r *CurrentAuthority) SetPostalAddress(X any, setfunc ...GetOrSetFunc) error

SetPostalAddress assigns the provided string value to the receiver's R_PAddr field.

func (*CurrentAuthority) SetPostalCode

func (r *CurrentAuthority) SetPostalCode(X any, setfunc ...GetOrSetFunc) error

SetPostalCode assigns the provided string value to the receiver's R_PCode field.

func (*CurrentAuthority) SetRegistrantID

func (r *CurrentAuthority) SetRegistrantID(X any, setfunc ...GetOrSetFunc) error

SetRegistrantID assigns the provided string value to the receiver's R_Id field.

func (*CurrentAuthority) SetST

func (r *CurrentAuthority) SetST(X any, setfunc ...GetOrSetFunc) error

SetST assigns the provided string value to the receiver's R_ST field.

func (*CurrentAuthority) SetStartTime

func (r *CurrentAuthority) SetStartTime(X any, setfunc ...GetOrSetFunc) error

SetStartTime appends one or more string slice value to the receiver's R_StartTime field.

func (*CurrentAuthority) SetStreet

func (r *CurrentAuthority) SetStreet(X any, setfunc ...GetOrSetFunc) error

SetStreet assigns the provided string value to the receiver's R_Street field.

func (*CurrentAuthority) SetTel

func (r *CurrentAuthority) SetTel(X any, setfunc ...GetOrSetFunc) error

SetTel assigns the provided string value to the receiver's R_Tel field.

func (*CurrentAuthority) SetTitle

func (r *CurrentAuthority) SetTitle(X any, setfunc ...GetOrSetFunc) error

SetTitle assigns the provided string value to the receiver's R_Title field.

func (*CurrentAuthority) SetURI

func (r *CurrentAuthority) SetURI(X any, setfunc ...GetOrSetFunc) error

SetURI appends one or more string slice value to the receiver's R_URI field. Note that if a slice is passed as X, the destination value will be clobbered.

func (CurrentAuthority) StartTime

func (r CurrentAuthority) StartTime() string

StartTime returns the string-based generalizedTime value that reflects the time at which the receiver was (or will be) officiated.

func (CurrentAuthority) Street

func (r CurrentAuthority) Street() string

Street returns the street value assigned to the receiver.

func (CurrentAuthority) StreetGetFunc

func (r CurrentAuthority) StreetGetFunc(getfunc GetOrSetFunc) (any, error)

StreetGetFunc processes the R_Street field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) Tel

func (r CurrentAuthority) Tel() string

Tel returns the telephone number value assigned to the receiver.

func (CurrentAuthority) TelGetFunc

func (r CurrentAuthority) TelGetFunc(getfunc GetOrSetFunc) (any, error)

TelGetFunc processes the R_Tel field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) Title

func (r CurrentAuthority) Title() string

Title returns the title value assigned to the receiver.

func (CurrentAuthority) TitleGetFunc

func (r CurrentAuthority) TitleGetFunc(getfunc GetOrSetFunc) (any, error)

TitleGetFunc processes the R_Title field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) Type

func (r CurrentAuthority) Type() string

Type returns the static string value `currentAuthority` as a convenient means of testing which kind of Registrant type is described by the receiver (CurrentAuthority).

func (CurrentAuthority) URI

func (r CurrentAuthority) URI() []string

URI returns slices of string URIs assigned to the receiver.

func (CurrentAuthority) URIGetFunc

func (r CurrentAuthority) URIGetFunc(getfunc GetOrSetFunc) (any, error)

URIGetFunc processes the R_URI field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (CurrentAuthority) Unmarshal

func (r CurrentAuthority) Unmarshal() map[string][]string

Unmarshal transports values from the receiver into an instance of map[string][]string, which can subsequently be fed to go-ldap's NewEntry function.

type DUAConfig

type DUAConfig struct {
	DirectoryModel string   `ldap:"rADirectoryModel"`   // s. 2.1.86, s. 3.2, s. 3.3
	Registrations  []string `ldap:"rARegistrationBase"` // s. 2.1.84
	Registrants    []string `ldap:"rARegistrantBase"`   // s. 2.1.85
	ServiceEmails  []string `ldap:"rAServiceMail"`      // s. 2.1.87
	ServiceURIs    []string `ldap:"rAServiceURIs"`      // s. 2.1.88

	// Not defined in draft-coretta-x660-ldap, but is
	// sensible to include for client optimization.
	Settings map[string][]string
}

DUAConfig contains important information necessary for effective DUA configuration. This information could be set manually by the user, or marshaled via the target DSA's Root DSE entry. For more information, see draft-coretta-x660-ldap s. 3.5.1 (manual) and s. 3.5.2 (auto).

See also go-ldap/ldap/v3's Entry.Unmarshal method for auto-configuration of (pointer!) instances of this type.

The DirectoryModel struct field MUST be populated at all times. Only two valid string values exist for this field. As such, see the TwoDimensional and ThreeDimensional constants provided by this package.

If neither the Registrations nor the Registrants struct fields are populated with valid DNs, the instance is bogus.

If only the Registrations struct field is populated with a valid DN, this indicates that authority information is neither stored nor managed on the remote DSA.

If only the Registrants struct field is populated with a valid DN, this indicates that OID registration information is neither stored nor managed on the remote DSA (which is atypical and does not technically reflect the intended use and procedures of draft-coretta-x660-ldap).

If the Registrations and Registrants struct fields are both populated with an identical (and valid) DN, this indicates that both OID registration entries and authority registrant entries are ONE IN THE SAME (so-called "combined entries").

If the Registrations and Registrants struct fields are both populated with valid (but different) DNs, this indicates that both OID registration entries and authority registrant entries are managed and stored on the remote DSA, but as so-called "dedicated entries".

Population of the ServiceEmails and/or ServiceURIs struct fields is entirely optional and at the discretion of the directory owner(s).

A generic (and optional) map[string][]string instance, via the Settings struct field, is available to enhance or augment client behavior.

OID: 1.3.6.1.4.1.56521.101.2.2.3, defined in s. 2.2.3.

func NewDUAConfig

func NewDUAConfig() *DUAConfig

NewDUAConfig returns an initialized instance of *DUAConfig containing an initialized map[string][]string Settings value.

func (*DUAConfig) Valid

func (r *DUAConfig) Valid() (valid bool)

Valid returns a boolean value indicative of whether the receiver configuration instance is considered contextually valid and usable.

type FirstAuthority

type FirstAuthority struct {
	R_DN        string   `ldap:"dn"`
	R_Id        string   `ldap:"registrantID"`
	R_L         string   `ldap:"firstAuthorityLocality"`
	R_O         string   `ldap:"firstAuthorityOrg"`
	R_C         string   `ldap:"firstAuthorityCountryCode"`
	R_CO        string   `ldap:"firstAuthorityCountryName"`
	R_ST        string   `ldap:"firstAuthorityState"`
	R_CN        string   `ldap:"firstAuthorityCommonName"`
	R_Tel       string   `ldap:"firstAuthorityTelephone"`
	R_Fax       string   `ldap:"firstAuthorityFax"`
	R_Title     string   `ldap:"firstAuthorityTitle"`
	R_Email     string   `ldap:"firstAuthorityEmail"`
	R_POBox     string   `ldap:"firstAuthorityPOBox"`
	R_PCode     string   `ldap:"firstAuthorityPostalCode"`
	R_PAddr     string   `ldap:"firstAuthorityPostalAddress"`
	R_Street    string   `ldap:"firstAuthorityStreet"`
	R_Mobile    string   `ldap:"firstAuthorityMobile"`
	R_StartTime string   `ldap:"firstAuthorityStartTimestamp"`
	R_EndTime   string   `ldap:"firstAuthorityEndTimestamp"`
	R_URI       []string `ldap:"firstAuthorityURI"`
	R_DUAConfig *DUAConfig
}

FirstAuthority describes an initial or previous registration authority.

func Relegate

func Relegate(X any, c *CurrentAuthority) (F *FirstAuthority, err error)

Relegate transports all values from input instance of *CurrentAuthority (c) -- which MUST be an actual pointer -- into a new instance of *FirstAuthority, which is then returned alongside an error.

The X input argument shall be a timestamp, whether in string-based generalizedTime format, or as a bonafide (non-zero) time.Time instance. The time value in context represents the date and time at which the CurrentAuthority withdrew ownership and responsibility for a registration. At that point, said CurrentAuthority is now a FirstAuthority (a.k.a.: a "previous authority"). If X is nil, time.Now() is used.

This is particularly useful in cases where a CurrentAuthority -- one whom has a great many subordinate registrations -- is withdrawing from ownership, and it is undesirable to update said plethora of registrations to reflect a new currentAuthority DN. By using the Relegate function, all contents are transferred as-is (including the DN), thereby (hopefully) preserving Referential Integrity without any churn. YMMV.

The original (input) instance of *CurrentAuthority will remain untouched. If its contents were originally marshaled via an LDAP Search Operation, it is likely the entry will need to be deleted (or otherwise updated).

func (FirstAuthority) C

func (r FirstAuthority) C() string

C returns the 2-letter country code value assigned to the receiver.

func (FirstAuthority) CGetFunc

func (r FirstAuthority) CGetFunc(getfunc GetOrSetFunc) (any, error)

CGetFunc processes the R_C field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) CN

func (r FirstAuthority) CN() string

CN returns the common name value assigned to the receiver.

func (FirstAuthority) CNGetFunc

func (r FirstAuthority) CNGetFunc(getfunc GetOrSetFunc) (any, error)

CNGetFunc processes the R_CN field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) CO

func (r FirstAuthority) CO() string

CO returns the so-called "friendly country name" value assigned to the receiver.

func (FirstAuthority) COGetFunc

func (r FirstAuthority) COGetFunc(getfunc GetOrSetFunc) (any, error)

COGetFunc processes the R_CO field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) DN

func (r FirstAuthority) DN() string

DN returns the distinguished name value assigned to the receiver.

func (FirstAuthority) DNGetFunc

func (r FirstAuthority) DNGetFunc(getfunc GetOrSetFunc) (any, error)

DNGetFunc processes the R_DN field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) DUAConfig

func (r FirstAuthority) DUAConfig() *DUAConfig

DUAConfig returns the *DUAConfig instance assigned to the receiver, if set, else nil is returned.

func (FirstAuthority) Email

func (r FirstAuthority) Email() string

Email returns the email address value assigned to the receiver.

func (FirstAuthority) EmailGetFunc

func (r FirstAuthority) EmailGetFunc(getfunc GetOrSetFunc) (any, error)

EmailGetFunc processes the R_Email field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) EndTime

func (r FirstAuthority) EndTime() string

EndTime returns the string-based generalizedTime value that reflects the time at which the receiver was (or will be) terminated.

func (FirstAuthority) Fax

func (r FirstAuthority) Fax() string

Fax returns the facsimile telephone number value assigned to the receiver.

func (FirstAuthority) FaxGetFunc

func (r FirstAuthority) FaxGetFunc(getfunc GetOrSetFunc) (any, error)

FaxGetFunc processes the R_Fax field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) Kind

func (r FirstAuthority) Kind() string

Kind returns the static string value `AUXILIARY` merely as a convenient means to declare what kind of objectClass the Registrant receiver describes.

func (FirstAuthority) L

func (r FirstAuthority) L() string

L returns the locality name value assigned to the receiver.

func (FirstAuthority) LGetFunc

func (r FirstAuthority) LGetFunc(getfunc GetOrSetFunc) (any, error)

LGetFunc processes the R_L field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) Mobile

func (r FirstAuthority) Mobile() string

Mobile returns the mobile telephone number value assigned to the receiver.

func (FirstAuthority) MobileGetFunc

func (r FirstAuthority) MobileGetFunc(getfunc GetOrSetFunc) (any, error)

MobileGetFunc processes the R_Mobile field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) O

func (r FirstAuthority) O() string

O returns the organization name value assigned to the receiver.

func (FirstAuthority) OGetFunc

func (r FirstAuthority) OGetFunc(getfunc GetOrSetFunc) (any, error)

OGetFunc processes the R_O field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) ObjectClass

func (r FirstAuthority) ObjectClass() string

ObjectClass returns the static string value `x660Registrant` merely as an alternative to tested type assertion.

func (FirstAuthority) POBox

func (r FirstAuthority) POBox() string

POBox returns the postal office box value assigned to the receiver.

func (FirstAuthority) POBoxGetFunc

func (r FirstAuthority) POBoxGetFunc(getfunc GetOrSetFunc) (any, error)

POBoxGetFunc processes the R_POBox field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) PostalAddress

func (r FirstAuthority) PostalAddress() string

PostalAddress returns the postal address value assigned to the receiver.

func (FirstAuthority) PostalAddressGetFunc

func (r FirstAuthority) PostalAddressGetFunc(getfunc GetOrSetFunc) (any, error)

PostalAddressGetFunc processes the R_PAddr field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) PostalCode

func (r FirstAuthority) PostalCode() string

PostalCode returns the postal code value assigned to the receiver.

func (FirstAuthority) PostalCodeGetFunc

func (r FirstAuthority) PostalCodeGetFunc(getfunc GetOrSetFunc) (any, error)

PostalCodeGetFunc processes the R_PCode field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) RegistrantID

func (r FirstAuthority) RegistrantID() string

RegistrantID returns the registrantID value assigned to the receiver.

func (FirstAuthority) RegistrantIDGetFunc

func (r FirstAuthority) RegistrantIDGetFunc(getfunc GetOrSetFunc) (any, error)

RegistrantIDGetFunc processes the R_Id field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) ST

func (r FirstAuthority) ST() string

ST returns the state or province name value assigned to the receiver.

func (FirstAuthority) STGetFunc

func (r FirstAuthority) STGetFunc(getfunc GetOrSetFunc) (any, error)

STGetFunc processes the R_ST field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (*FirstAuthority) SetC

func (r *FirstAuthority) SetC(X any, setfunc ...GetOrSetFunc) error

SetC assigns the provided string value to the receiver's R_C field.

func (*FirstAuthority) SetCN

func (r *FirstAuthority) SetCN(X any, setfunc ...GetOrSetFunc) error

SetCN assigns the provided string value to the receiver's R_CN field.

func (*FirstAuthority) SetCO

func (r *FirstAuthority) SetCO(X any, setfunc ...GetOrSetFunc) error

SetCO assigns the provided string value to the receiver's R_CO field.

func (*FirstAuthority) SetDN

func (r *FirstAuthority) SetDN(X any, setfunc ...GetOrSetFunc) error

SetDN assigns the provided string value to the receiver's R_DN field.

func (*FirstAuthority) SetDUAConfig

func (r *FirstAuthority) SetDUAConfig(d *DUAConfig)

SetDUAConfig assigns the input *DUAConfig (d) to the receiver's R_DUAConfig struct field.

func (*FirstAuthority) SetEmail

func (r *FirstAuthority) SetEmail(X any, setfunc ...GetOrSetFunc) error

SetEmail assigns the provided string value to the receiver's R_Email field.

func (*FirstAuthority) SetEndTime

func (r *FirstAuthority) SetEndTime(X any, setfunc ...GetOrSetFunc) error

SetEndTime appends one or more string slice value to the receiver's R_EndTime field.

func (*FirstAuthority) SetFax

func (r *FirstAuthority) SetFax(X any, setfunc ...GetOrSetFunc) error

SetFax assigns the provided string value to the receiver's R_Fax field.

func (*FirstAuthority) SetL

func (r *FirstAuthority) SetL(X any, setfunc ...GetOrSetFunc) error

SetL assigns the provided string value to the receiver's R_L field.

func (*FirstAuthority) SetMobile

func (r *FirstAuthority) SetMobile(X any, setfunc ...GetOrSetFunc) error

SetMobile assigns the provided string value to the receiver's R_Mobile field.

func (*FirstAuthority) SetO

func (r *FirstAuthority) SetO(X any, setfunc ...GetOrSetFunc) error

SetO assigns the provided string value to the receiver's R_O field.

func (*FirstAuthority) SetPOBox

func (r *FirstAuthority) SetPOBox(X any, setfunc ...GetOrSetFunc) error

SetPOBox assigns the provided string value to the receiver's R_POBox field.

func (*FirstAuthority) SetPostalAddress

func (r *FirstAuthority) SetPostalAddress(X any, setfunc ...GetOrSetFunc) error

SetPostalAddress assigns the provided string value to the receiver's R_PAddr field.

func (*FirstAuthority) SetPostalCode

func (r *FirstAuthority) SetPostalCode(X any, setfunc ...GetOrSetFunc) error

SetPostalCode assigns the provided string value to the receiver's R_PCode field.

func (*FirstAuthority) SetRegistrantID

func (r *FirstAuthority) SetRegistrantID(X any, setfunc ...GetOrSetFunc) error

SetRegistrantID assigns the provided string value to the receiver's R_Id field.

func (*FirstAuthority) SetST

func (r *FirstAuthority) SetST(X any, setfunc ...GetOrSetFunc) error

SetST assigns the provided string value to the receiver's R_ST field.

func (*FirstAuthority) SetStartTime

func (r *FirstAuthority) SetStartTime(X any, setfunc ...GetOrSetFunc) error

SetStartTime appends one or more string slice value to the receiver's R_StartTime field.

func (*FirstAuthority) SetStreet

func (r *FirstAuthority) SetStreet(X any, setfunc ...GetOrSetFunc) error

SetStreet assigns the provided string value to the receiver's R_Street field.

func (*FirstAuthority) SetTel

func (r *FirstAuthority) SetTel(X any, setfunc ...GetOrSetFunc) error

SetTel assigns the provided string value to the receiver's R_Tel field.

func (*FirstAuthority) SetTitle

func (r *FirstAuthority) SetTitle(X any, setfunc ...GetOrSetFunc) error

SetTitle assigns the provided string value to the receiver's R_Title field.

func (*FirstAuthority) SetURI

func (r *FirstAuthority) SetURI(X any, setfunc ...GetOrSetFunc) error

SetURI appends one or more string slice value to the receiver's R_URI field. Note that if a slice is passed as X, the destination value will be clobbered.

func (FirstAuthority) StartTime

func (r FirstAuthority) StartTime() string

StartTime returns the string-based generalizedTime value that reflects the time at which the receiver was (or will be) officiated.

func (FirstAuthority) Street

func (r FirstAuthority) Street() string

Street returns the street value assigned to the receiver.

func (FirstAuthority) StreetGetFunc

func (r FirstAuthority) StreetGetFunc(getfunc GetOrSetFunc) (any, error)

StreetGetFunc processes the R_Street field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) Tel

func (r FirstAuthority) Tel() string

Tel returns the telephone number value assigned to the receiver.

func (FirstAuthority) TelGetFunc

func (r FirstAuthority) TelGetFunc(getfunc GetOrSetFunc) (any, error)

TelGetFunc processes the R_Tel field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) Title

func (r FirstAuthority) Title() string

Title returns the title value assigned to the receiver.

func (FirstAuthority) TitleGetFunc

func (r FirstAuthority) TitleGetFunc(getfunc GetOrSetFunc) (any, error)

TitleGetFunc processes the R_Title field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) Type

func (r FirstAuthority) Type() string

Type returns the static string value `firstAuthority` as a convenient means of testing which kind of Registrant type is described by the receiver (FirstAuthority).

func (FirstAuthority) URI

func (r FirstAuthority) URI() []string

URI returns slices of string URIs assigned to the receiver.

func (FirstAuthority) URIGetFunc

func (r FirstAuthority) URIGetFunc(getfunc GetOrSetFunc) (any, error)

URIGetFunc processes the R_URI field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (FirstAuthority) Unmarshal

func (r FirstAuthority) Unmarshal() map[string][]string

Unmarshal transports values from the receiver into an instance of map[string][]string, which can subsequently be fed to go-ldap's NewEntry function.

type GetOrSetFunc

type GetOrSetFunc func(any, any) (any, error)

GetOrSetFunc is a first class (closure) function signature that users may adopt in order to write custom "setter or getter" functions, thereby allowing complete control over the creation or interrogation of a value assigned to Registration or Registrant type instances.

All Set<*> and <*>GetFunc methods extended by Registration or Registrant type instances allow the GetOrSetFunc type to be passed at runtime.

If no GetOrSetFunc is passed to a Set<*> method, the value is written as-is (type assertion permitting) with no special processing.

In the context of Set<*> executions, the first input argument will be the value to be written to the appropriate struct field. The second input argument will be the (non-nil) POINTER receiver instance that contains the target field(s) (i.e.: the object to which something is being written).

A Set<*> function that interacts with a struct field of type []string can allow append operations (with an individual input value), as well as so-called "clobber" operations (with a slice ([]) input value) in which any values already present are overwritten (clobbered). If an append operation is needed for multiple values, and clobbering is NOT desired, the submission must be done in an iterative (looped) manner. You have been warned.

In the context of Set<*> return values, the first return value will be the (processed) value to be written. The second return value, an error, will contain error information in the event of any encountered issues.

In the context of <*>GetFunc executions, the first input argument will be the struct field value relevant to the executing method. This will produce the value being "gotten" within functions/methods that conform to the signature of this type. The second input argument will be the non-nil Registration or Registrant instance being interrogated, which may or may not be a POINTER instance.

In the context of <*>GetFunc return values, the first return value will be the (processed) value being read. It will manifest as an instance of 'any', and will require manual type assertion. The second return value, an error, will contain error information in the event of any encountered issues.

type Registrant

type Registrant interface {
	// ObjectClass always returns `x660Registrant`
	// as a convenient means of identifying the
	// objectClass value in an entry.
	ObjectClass() string

	// Kind always returns `AUXILIARY` as a means of
	// identifying the kind of objectClass.
	Kind() string

	// Type returns one of `First`, `Current` or `Sponsor`
	// as a convenient means of identifying the nature
	// of a particular Registrant (x660Registrant) instance.
	Type() string

	// DN returns the string distinguished name as derived from the
	// underlying instance, or a zero string if unset.
	DN() string

	// SetDN assigns the string distinguished name value to the
	// receiver's R_DN field.
	SetDN(any, ...GetOrSetFunc) error

	// DNGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	DNGetFunc(GetOrSetFunc) (any, error)

	// RegistrantID returns the registrantID assigned to the registrant
	// instance, or a zero string if unset.
	RegistrantID() string

	// SetRegistrantID assigns the registrant ID string value to
	// the receiver's R_Id field
	SetRegistrantID(any, ...GetOrSetFunc) error

	// RegistrantIDGetFunc returns an interface value alongside an
	// error. A non-nil instance of GetOrSetFunc processes the
	// appropriate underlying struct field into the desired type.
	RegistrantIDGetFunc(GetOrSetFunc) (any, error)

	// CN returns the common name assigned to the registrant
	// instance, or a zero string if unset.
	CN() string

	// SetCN assigns the string value to the receiver's R_CN field.
	SetCN(any, ...GetOrSetFunc) error

	// CNGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	CNGetFunc(GetOrSetFunc) (any, error)

	// L returns the l (locality) assigned to the registrant
	// instance, or a zero string if unset.
	L() string

	// SetL assigns the string value to the receiver's R_L field.
	SetL(any, ...GetOrSetFunc) error

	// LGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	LGetFunc(GetOrSetFunc) (any, error)

	// O returns the organization name assigned to the registrant
	// instance, or a zero string if unset.
	O() string

	// SetO assigns the string value to the receiver's R_O field.
	SetO(any, ...GetOrSetFunc) error

	// OGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	OGetFunc(GetOrSetFunc) (any, error)

	// C returns the [2 character] country code assigned to the
	// registrant instance, or a zero string if unset.
	C() string

	// SetC assigns the string value to the receiver's R_C field.
	SetC(any, ...GetOrSetFunc) error

	// CGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	CGetFunc(GetOrSetFunc) (any, error)

	// CO returns the full country name assigned to the registrant
	// instance, or a zero string if unset.
	CO() string

	// SetCO assigns the string value to the receiver's R_CO field.
	SetCO(any, ...GetOrSetFunc) error

	// COGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	COGetFunc(GetOrSetFunc) (any, error)

	// ST returns the full state or province name assigned to the
	// registrant instance, or a zero string if unset.
	ST() string

	// SetST assigns the string value to the receiver's R_ST field.
	SetST(any, ...GetOrSetFunc) error

	// STGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	STGetFunc(GetOrSetFunc) (any, error)

	// Tel returns the telephone number assigned to the registrant
	// instance, or a zero string if unset.
	Tel() string

	// SetTel assigns the string value to the receiver's R_Tel field.
	SetTel(any, ...GetOrSetFunc) error

	// TelGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	TelGetFunc(GetOrSetFunc) (any, error)

	// Fax returns the facsimile telephone number assigned to the
	// registrant instance, or a zero string if unset.
	Fax() string

	// SetFax assigns the string value to the receiver's R_Fax field.
	SetFax(any, ...GetOrSetFunc) error

	// FaxGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	FaxGetFunc(GetOrSetFunc) (any, error)

	// Title returns the acknowledged title of the individual or
	// institution assigned to the registrant instance, or a
	// zero string if unset.
	Title() string

	// SetTitle assigns the string value to the receiver's R_Title
	// field.
	SetTitle(any, ...GetOrSetFunc) error

	// TitleGetFunc returns an interface value alongside an error.
	// A non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	TitleGetFunc(GetOrSetFunc) (any, error)

	// Email returns the email address of the individual or
	// institution assigned to the registrant instance, or a
	// zero string if unset.
	Email() string

	// SetEmail assigns the string value to the receiver's R_Email
	// field.
	SetEmail(any, ...GetOrSetFunc) error

	// EmailGetFunc returns an interface value alongside an error.
	// A non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	EmailGetFunc(GetOrSetFunc) (any, error)

	// POBox returns the box office box number assigned to the
	// registrant instance, or a zero string if unset.
	POBox() string

	// SetPOBox assigns the string value to the receiver's R_POBox
	// field.
	SetPOBox(any, ...GetOrSetFunc) error

	// POBoxGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	POBoxGetFunc(GetOrSetFunc) (any, error)

	// PostalAddress returns the postal address number assigned
	// to the registrant instance, or a zero string if unset.
	PostalAddress() string

	// SetPostalAddress assigns the string value to the receiver's
	// R_PAddr field.
	SetPostalAddress(any, ...GetOrSetFunc) error

	// PostalAddressGetFunc returns an interface value alongside an
	// error. A non-nil instance of GetOrSetFunc processes the
	// appropriate underlying struct field into the desired type.
	PostalAddressGetFunc(GetOrSetFunc) (any, error)

	// PostalCode returns the postal code assigned to the
	// registrant instance, or a zero string if unset.
	PostalCode() string

	// SetPostalCode assigns the string value to the receiver's
	// R_PCode field.
	SetPostalCode(any, ...GetOrSetFunc) error

	// PostalCodeGetFunc returns an interface value alongside an error.
	// A non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	PostalCodeGetFunc(GetOrSetFunc) (any, error)

	// Mobile returns the mobile telephone number assigned to the
	// registrant instance, or a zero string if unset.
	Mobile() string

	// SetMobile assigns the string value to the receiver's R_Mobile field.
	SetMobile(any, ...GetOrSetFunc) error

	// MobileGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	MobileGetFunc(GetOrSetFunc) (any, error)

	// Street returns the street address assigned to the registrant
	// instance, or a zero string if unset.
	Street() string

	// SetStreet assigns the string value to the receiver's R_Street field.
	SetStreet(any, ...GetOrSetFunc) error

	// StreetGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	StreetGetFunc(GetOrSetFunc) (any, error)

	// URI returns zero or more uniform resource identifier values
	// assigned to the registrant instance.
	URI() []string

	// SetURI assigns the string value to the receiver's R_URI field.
	SetURI(any, ...GetOrSetFunc) error

	// URIGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	URIGetFunc(GetOrSetFunc) (any, error)

	// StartTime returns a string generalizedTime value
	// indicative of the date and time at which the registrant
	// is known to have begun its authoritative responsibilities
	// upon one or more registrations.
	StartTime() string

	// SetStartTime assigns a string-based generalizedTime OR
	// to the receiver's R_StartTime field.
	SetStartTime(any, ...GetOrSetFunc) error

	// EndTime returns a string generalizedTime value indicative
	// of the date and time at which the registrant is known to
	// have ceased its authoritative responsibilities upon one or
	// more registrations.
	//
	// Note this only applies to FirstAuthority and Sponsor
	// registrants, as CurrentAuthority instances ostensibly
	// have no "end date", as they should still be current.
	EndTime() string

	// SetEndTime assigns a string-based generalizedTime to
	// the receiver's R_EndTime field.
	SetEndTime(any, ...GetOrSetFunc) error

	// Unmarshal, once it executes Valid, will unmarshal the
	// underlying registrant instance into an instance of
	// map[string][]string, which can be fed to ldap.NewEntry.
	Unmarshal() map[string][]string

	// DUAConfig returns an instance of *DUAConfig assigned
	// to the receiver, else nil if unset.
	DUAConfig() *DUAConfig

	// SetDUAConfig assigns an instance of *DUAConfig to
	// the receiver.
	SetDUAConfig(*DUAConfig)
}

Registrant encompasses authority definition instances of the FirstAuthority, CurrentAuthority and Sponsor struct types.

type Registrants

type Registrants []Registrant

Registrants contains slices of Registrant interface types, each of which will be one of FirstAuthority, CurrentAuthority or Sponsor struct types.

func (Registrants) Unmarshal

func (r Registrants) Unmarshal() (maps []map[string][]string)

Unmarshal is a convenience method that returns slices of map[string][]string instances, each representative of an individual Registrant interface type that was deemed valid for unmarshaling to map[string][]string.

type Registration

type Registration interface {
	// ObjectClass returns either `x660RootArc` or `x660SubArc`
	// depending on the underlying instance type.
	ObjectClass() string

	// Kind returns `STRUCTURAL` as a convenient means of identifying
	// the nature of the objectClass in terms of entry structure.
	Kind() string

	// DN returns the string distinguished name as derived from the
	// underlying instance, or a zero string if unset.
	DN() string

	// SetDN assigns the string distinguished name value to the
	// receiver's R_DN field.
	SetDN(any, ...GetOrSetFunc) error

	// DNGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	DNGetFunc(GetOrSetFunc) (any, error)

	// N returns the numberForm of the registration. This is always
	// required without exception.
	N() string

	// SetN assigns the provided string numberForm value to the
	// receiver's R_N field.
	SetN(any, ...GetOrSetFunc) error

	// NGetFunc returns an interface value alongside an error. A non-nil
	// instance of GetOrSetFunc processes the appropriate underlying struct
	// field into the desired type.
	NGetFunc(GetOrSetFunc) (any, error)

	// DotNotation returns the dot-delimited ASN.1 Object Identifier
	// as a string value from the underlying instance, or a zero string
	// if unset. Note that while ThreeDimensional implementations allow
	// the absence of such a value, TwoDimensional implementations will
	// be required to ensure this be non-zero at all times. Please also
	// note that DotNotation will ALWAYS return a zero-string for any
	// registration that is RootArc (x660RootArc), as such registrations
	// do not syntactically qualify for actual "dotted notation", as there
	// is only one digit.
	DotNotation() string

	// SetDotNotation assigns the string-based dotNotation object
	// identifier value to the receiver's R_DotNot field.
	SetDotNotation(any, ...GetOrSetFunc) error

	// DotNotationGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate underlying
	// struct field into the desired type.
	DotNotationGetFunc(GetOrSetFunc) (any, error)

	// ASN1Notation returns the string form of an ASN.1 Object Identifier
	// as a sequence of NameAndNumberForms as derived from the underlying
	// instance.
	ASN1Notation() string

	// SetASN1Notation assigns the string-based ASN.1 Notation object
	// identifier value to the receiver's R_ASN1Not field.
	SetASN1Notation(any, ...GetOrSetFunc) error

	// ASN1NotationGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate underlying
	// struct field into the desired type.
	ASN1NotationGetFunc(GetOrSetFunc) (any, error)

	// Identifier returns the primary nameForm of the registration, if set,
	// else a zero string is returned.
	Identifier() string

	// SetIdentifier assigns the string identifier (nameForm) value
	// to the receiver's R_Id field.
	SetIdentifier(any, ...GetOrSetFunc) error

	// IdentifierGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate underlying
	// struct field into the desired type.
	IdentifierGetFunc(GetOrSetFunc) (any, error)

	// NameAndNumberForm returns either "identifier(Number)" or "number",
	// if set, within the registration else a zero string is returned.
	NameAndNumberForm() string

	// SetNameAndNumberForm assigns the string nameAndNumberForm value
	// to the receiver's R_NaNF field. Though a bare numberForm value
	// is technically legal for this field, N is preferred for that
	// purpose. This method should be used to assign a complete value
	// of nameAndNumberForm (such as "enterprise(1)") to the receiver
	// instead.
	SetNameAndNumberForm(any, ...GetOrSetFunc) error

	// NameAndNumberFormGetFunc returns an interface value alongside an error.
	// A non-nil instance of GetOrSetFunc processes the appropriate underlying
	// struct field into the desired type.
	NameAndNumberFormGetFunc(GetOrSetFunc) (any, error)

	// LeftArc returns the leftArc value assigned to the underlying instance,
	// if set, else a zero string is returned. This should be interpreted
	// as the nearest-left arc registration DN in relation to the current.
	LeftArc() string

	// SetLeftArc assigns a string distinguished name value to the receiver's
	// R_LeftArc field.
	SetLeftArc(any, ...GetOrSetFunc) error

	// LeftArcGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate underlying
	// struct field into the desired type.
	LeftArcGetFunc(GetOrSetFunc) (any, error)

	// RightArc returns the rightArc value assigned to the underlying instance,
	// if set, else a zero string is returned. This should be interpreted
	// as the nearest-right arc registration DN in relation to the current.
	RightArc() string

	// SetRightArc assigns a string distinguished name value to the receiver's
	// R_RightArc field.
	SetRightArc(any, ...GetOrSetFunc) error

	// RightArcGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate underlying
	// struct field into the desired type.
	RightArcGetFunc(GetOrSetFunc) (any, error)

	// FirstArc returns the farthest-right arc registration DN in relation to
	// the current, if set, else a zero string is returned. In numerical terms,
	// this would be the lowest numberForm (N) among sibling registrations.
	FirstArc() string

	// SetFirstArc assigns a string distinguished name value to the receiver's
	// R_FirstArc field. This will only have any effect if the underlying
	// receiver instance is *dcxl.SubArc.
	SetFirstArc(any, ...GetOrSetFunc) error

	// FirstArcGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate underlying
	// struct field into the desired type.
	FirstArcGetFunc(GetOrSetFunc) (any, error)

	// FinalArc returns the farthest-left arc registration DN in relation to
	// the current, if set, else a zero string is returned. In numerical terms,
	// this would be the highest numberForm (N) among sibling registrations.
	FinalArc() string

	// SetFinalArc assigns a string distinguished name value to the receiver's
	// R_FinalArc field. This will only have any effect if the underlying
	// receiver instance is *dcxl.SubArc.
	SetFinalArc(any, ...GetOrSetFunc) error

	// FinalArcGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate underlying
	// struct field into the desired type.
	FinalArcGetFunc(GetOrSetFunc) (any, error)

	// TopArc returns the absolute top-most root registration DN in relation to
	// the current if set, else a zero string is returned.
	TopArc() string

	// SetTopArc assigns a string distinguished name value to the receiver's
	// R_TopArc field. This will only have any effect if the underlying
	// receiver instance is *dcxl.SubArc.
	SetTopArc(any, ...GetOrSetFunc) error

	// TopArcGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate underlying
	// struct field into the desired type.
	TopArcGetFunc(GetOrSetFunc) (any, error)
	// SupArc returns the immediate parent registration DN in relation to
	// the current, if set, else a zero string is returned. Note this will
	// only apply to SubArc (x660SubArc) registrations.
	SupArc() string

	// SetSupArc assigns a string distinguished name value to the receiver's
	// R_SupArc field. This will only have any effect if the underlying
	// receiver instance is *dcxl.SubArc.
	SetSupArc(any, ...GetOrSetFunc) error

	// SupArcGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate underlying
	// struct field into the desired type.
	SupArcGetFunc(GetOrSetFunc) (any, error)

	// Range returns the assigned string form of a ranged allocation
	// declaration if set, else a zero string is returned.
	//
	// A value of -1 means "from N to infinity" (or is an
	// "indefinite range").
	//
	// A value of zero (0) has no meaning and should be interpreted
	// as a lack of any range allocation.
	//
	// A value that is greater than zero (0) and less than N should
	// be considered wholly invalid. N always represents the low end
	// of a range.
	//
	// A value that is greater than both zero (0) and N should be
	// interpreted as a proper range of definite length (e.g.:
	// 55 (n, range start) through 1500 (registrationRange, range end)).
	//
	// Note this only applies to SubArc (x660SubArc) registrations,
	// as root registrations never have range allocations.
	Range() string

	// SetRange assigns the string value, which can be any non-zero
	// positive number OR negative one (-1). In the case of a positive
	// number, the value MUST be greater than the value of the receiver's
	// R_N field.
	SetRange(any, ...GetOrSetFunc) error

	// RangeGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	RangeGetFunc(GetOrSetFunc) (any, error)

	// LeafNode returns a boolean value that defines whether the
	// registration is considered a leaf-node (in that it can never
	// have children, and that applications SHOULD NOT attempt to
	// enumerate any children below the registration). Note this
	// only applies to SubArc (x660SubArc) registrations, as
	// root registrations can never possibly be leaf-nodes.
	LeafNode() bool

	// SetLeafNode assigns the LDAP string-equivalent of TRUE
	// and FALSE, crafted from the input boolean value, to the
	// receiver's R_LeafNode field.
	SetLeafNode(any, ...GetOrSetFunc) error

	// LeafNodeGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	LeafNodeGetFunc(GetOrSetFunc) (any, error)

	// Frozen returns a boolean value that defines whether the
	// registration is considered frozen (in that any existing
	// child registrations may be enumerated, but that no more
	// child registrations will be created). Note this will only
	// apply to SubArc (x660SubArc) registrations, as none of
	// the roots can ever be frozen.
	Frozen() bool

	// SetFrozen assigns the LDAP string-equivalent of TRUE
	// and FALSE, crafted from the input boolean value, to the
	// receiver's R_Frozen field.
	SetFrozen(any, ...GetOrSetFunc) error

	// FrozenGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	FrozenGetFunc(GetOrSetFunc) (any, error)

	// Status returns zero or more string "status" values, as
	// derived from the registration instance.
	Status() string

	// SetStatus assigns the string value to the receiver's
	// R_Status field.
	SetStatus(any, ...GetOrSetFunc) error

	// StatusGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	StatusGetFunc(GetOrSetFunc) (any, error)

	// Description returns the description assigned to the
	// registration, else a zero string if unset.
	Description() string

	// SetDescription assigns the string value to the
	// receiver's R_Desc field.
	SetDescription(any, ...GetOrSetFunc) error

	// DescriptionGetFunc returns an interface value alongside an error.
	// A non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	DescriptionGetFunc(GetOrSetFunc) (any, error)

	// SubArc returns zero or more string registration
	// arc DNs, each representing a child registration of the
	// current. Note that in certain portions of the OID spectrum,
	// this can return a great many registrations. Depending on
	// the implementation around draft-coretta-x660-ldap, this
	// could be populated through use of the subArc attribute type,
	// or as a result of a (possibly intensive!) onelevel LDAP
	// search to enumerate and record relevant child entries. For
	// performance reasons, use of the subArc attribute type
	// is strongly recommended in large implementations.
	SubArc() []string

	// SetSubArc appends one or more string distinguished
	// name values to the receiver's R_SubArc field.
	SetSubArc(any, ...GetOrSetFunc) error

	// SubArcGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	SubArcGetFunc(GetOrSetFunc) (any, error)

	// LongArc returns slices of longArc values if assigned to the
	// registration instance, else a zero string slice is returned.
	// Note that use of a LongArc is only appropriate for SubArc
	// (x660SubArc) registrations that fall under the Joint-ISO-ITU-T
	// root, and should be considered invalid anywhere else.
	LongArc() []string

	// SetLongArc appends one or more string long arc values to
	// the receiver's R_LongArc field.
	SetLongArc(any, ...GetOrSetFunc) error

	// LongArcGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	LongArcGetFunc(GetOrSetFunc) (any, error)

	// Create time returns the registrationCreated Generalized Time value
	CreateTime() string

	// SetCreateTime assigns the string generalizedTime value
	// value to the receiver's R_Created field.
	SetCreateTime(any, ...GetOrSetFunc) error

	// ModifyTime returns zero or more string generalizedTime instances
	// each representing a previous point in time at which the underlying
	// registration instance was modified.
	ModifyTime() []string

	// SetModifyTime appends one or more string generalizedTime value
	// to the receiver.
	SetModifyTime(any, ...GetOrSetFunc) error

	// DiscloseTo returns zero or more string DN values, each
	// representative of a discloseTo value. Note this will only
	// apply to SubArc (x660SubArc) registrations.
	DiscloseTo() []string

	// SetDiscloseTo appends one or more string distinguished
	// name values to the receiver R_DiscloseTo field.
	SetDiscloseTo(any, ...GetOrSetFunc) error

	// DiscloseToGetFunc returns an interface value alongside an
	// error. A non-nil instance of GetOrSetFunc processes the
	// appropriate underlying struct field into the desired type.
	DiscloseToGetFunc(GetOrSetFunc) (any, error)

	// StdNameForm returns zero or more slices of standardized
	// name form values assigned to the registration instance.
	StdNameForm() []string

	// SetStdNameForm appends one or more string standardized
	// name form values to the receiver's R_StdNF field.
	SetStdNameForm(any, ...GetOrSetFunc) error

	// StdNameFormGetFunc returns an interface value alongside an
	// an error. A non-nil instance of GetOrSetFunc processes the
	// appropriate underlying struct field into the desired type.
	StdNameFormGetFunc(GetOrSetFunc) (any, error)

	// IRI returns zero or more internationalized resource
	// identifier string values assigned to the registration
	// instance.
	IRI() []string

	// SetIRI appends one or more string internationalized
	// resource identifier values to the receiver's R_IRI
	// field.
	SetIRI(any, ...GetOrSetFunc) error

	// IRIGetFunc returns an interface value alongside an error. A
	// non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	IRIGetFunc(GetOrSetFunc) (any, error)

	// UnicodeValue returns zero or more unicodeValue slice
	// instances as string values. Note that in almost every
	// case, this should be single-valued, however there have
	// been a few exceptions to this rule over the years.
	UnicodeValue() []string

	// SetUnicodeValue appends one or more string values
	// to the receiver's R_UVal field.
	SetUnicodeValue(any, ...GetOrSetFunc) error

	// UnicodeValueGetFunc returns an interface value alongside
	// an error. A non-nil instance of GetOrSetFunc processes the
	// appropriate underlying struct field into the desired type.
	UnicodeValueGetFunc(GetOrSetFunc) (any, error)

	AdditionalIdentifier() []string

	// SetAdditionalIdentifier appends one or more string
	// values to the receiver's R_AddlId field.
	SetAdditionalIdentifier(any, ...GetOrSetFunc) error

	// AdditionalIdentifierGetFunc returns an interface value
	// alongside an error. A non-nil instance of GetOrSetFunc
	// processes the appropriate underlying struct field into
	// the desired type.
	AdditionalIdentifierGetFunc(GetOrSetFunc) (any, error)

	// Info returns zero or more string values, each representing
	// a single informational text block describing the nature and
	// status of the registration instance.
	Info() []string

	// SetInfo appends one or more string values to the receiver's
	// R_Info field.
	SetInfo(any, ...GetOrSetFunc) error

	// InfoGetFunc returns an interface value alongside an error. A non-nil
	// instance of GetOrSetFunc processes the appropriate underlying struct
	// field into the desired type.
	InfoGetFunc(GetOrSetFunc) (any, error)

	// URI returns zero or more uniform resource identifier
	// values assigned to the registration instance. Generally
	// these would be web pages that the user may be directed
	// to for some reason.
	URI() []string

	// SetURI appends one or more string values to the receiver's
	// R_URI field.
	SetURI(any, ...GetOrSetFunc) error

	// URIGetFunc returns an interface value alongside an error. A non-nil
	// instance of GetOrSetFunc processes the appropriate underlying struct
	// field into the desired type.
	URIGetFunc(GetOrSetFunc) (any, error)

	// FirstAuthority returns zero or more LDAP string distinguished
	// name values assigned to the registration instance, each of
	// which represent a so-called First (Or Previous) registration
	// authority responsible for the current registration. This only
	// applies to so-called "dedicated" or "non-combined" registrant
	// entries.
	FirstAuthority() []string

	// CombinedFirstAuthority returns the underlying instance of
	// *FirstAuthority assigned to the receiver when Combined Entries
	// are in use. This is generally not recommended aside from special
	// corner cases.
	CombinedFirstAuthority() *FirstAuthority

	// SetFirstAuthority appends one or more string distinguished
	// name values to the receiver's R_Firsts field.
	SetFirstAuthority(any, ...GetOrSetFunc) error

	// FirstAuthorityGetFunc returns an interface value alongside an
	// error. A non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	FirstAuthorityGetFunc(GetOrSetFunc) (any, error)

	// SetCombinedFirstAuthority assigns a non-nil instance of
	// *FirstAuthority to the receiver. This only applies to
	// so-called "Combined Entries", which are generally not
	// recommended.
	SetCombinedFirstAuthority(*FirstAuthority)

	// CurrentAuthority returns zero or more LDAP string distinguished
	// name values assigned to the registration instance, each of which
	// represent a current registration authorityresponsible for the
	// current registration. This only applies to so-called "dedicated"
	// or "non-combined" registrant entries.
	CurrentAuthority() []string

	// CombinedCurrentAuthority returns the underlying instance of
	// *CurrentAuthority assigned to the receiver when Combined Entries
	// are in use. This is generally not recommended aside from special
	// corner cases.
	CombinedCurrentAuthority() *CurrentAuthority

	// SetCurrentAuthority appends one or more string distinguished
	// name values to the receiver's R_Currents field.
	SetCurrentAuthority(any, ...GetOrSetFunc) error

	// CurrentAuthorityGetFunc returns an interface value alongside
	// an error. A non-nil instance of GetOrSetFunc processes the
	// appropriate underlying struct field into the desired type.
	CurrentAuthorityGetFunc(GetOrSetFunc) (any, error)

	// SetCombinedCurrentAuthority assigns a non-nil instance of
	// *CurrentAuthority to the receiver. This only applies to
	// so-called "Combined Entries", which are generally not
	// recommended.
	SetCombinedCurrentAuthority(*CurrentAuthority)

	// Sponsor returns zero or more LDAP string distinguished
	// name values assigned to the registration instance, each
	// of which represent a sponsoring entity for the current
	// registration. This only applies to "dedicated" or "non-
	// combined" registrant entries, and only for dcxl.SubArc
	// (or x660SubArc) registrations.
	Sponsor() []string

	// CombinedSponsor returns the underlying instance of *Sponsor
	// assigned to the receiver when Combined Entries are in use.
	// This is generally not recommended aside from special corner
	// cases.
	CombinedSponsor() *Sponsor

	// SetSponsor appends one or more string distinguished
	// name values to the receiver's R_Sponsors field. This will
	// only have an effect if the underlying receiver instance is
	// *dcxl.SubArc.
	SetSponsor(any, ...GetOrSetFunc) error

	// SponsorGetFunc returns an interface value alongside an error.
	// A non-nil instance of GetOrSetFunc processes the appropriate
	// underlying struct field into the desired type.
	SponsorGetFunc(GetOrSetFunc) (any, error)

	// SetCombinedSponsor assigns a non-nil instance of *Sponsor
	// to the receiver. This only applies to so-called "Combined
	// Entries" with an underlying instance of *SubArc. Use of
	// Combined Entries is generally not recommended. This has no
	// effect for underlying instances of *RootArc.
	SetCombinedSponsor(*Sponsor)

	// Unmarshal, once it executes Valid, will unmarshal the
	// underlying registration instance into an instance of
	// map[string][]string, which can be fed to ldap.NewEntry.
	Unmarshal() map[string][]string

	// DUAConfig returns an instance of *DUAConfig assigned
	// to the receiver, else nil if unset.
	DUAConfig() *DUAConfig

	// SetDUAConfig assigns an instance of *DUAConfig to
	// the receiver.
	SetDUAConfig(*DUAConfig)
}

Registration encompasses arc definition instances of the RootArc and SubArc struct types.

type Registrations

type Registrations []Registration

Registrations contains slices of Registration interface types, each of which will be one of RootArc or SubArc struct types.

func (Registrations) Unmarshal

func (r Registrations) Unmarshal() (maps []map[string][]string)

Unmarshal is a convenience method that returns slices of map[string][]string instances, each representative of an individual Registration interface type that was deemed valid for unmarshaling to map[string][]string.

type RootArc

type RootArc struct {
	R_DN       string   `ldap:"dn"`
	R_N        string   `ldap:"n"`
	R_Desc     string   `ldap:"description"`
	R_ASN1Not  string   `ldap:"asn1Notation"`
	R_Id       string   `ldap:"identifier"`
	R_Created  string   `ldap:"registrationCreated"`
	R_NaNF     string   `ldap:"nameAndNumberForm"`
	R_LeftArc  string   `ldap:"leftArc"`
	R_RightArc string   `ldap:"rightArc"`
	R_Modified []string `ldap:"registrationModified"`
	R_SubArc   []string `ldap:"subArc"`
	R_StdNF    []string `ldap:"stdNameForm"`
	R_IRI      []string `ldap:"iRI"`
	R_UVal     []string `ldap:"unicodeValue"`
	R_AddlId   []string `ldap:"additionalIdentifier"`
	R_Info     []string `ldap:"registrationInformation"`
	R_URI      []string `ldap:"registrationURI"`
	R_FAuthyDN []string `ldap:"firstAuthority"`   // used only for dedicated registrant entries
	R_CAuthyDN []string `ldap:"currentAuthority"` // used only for dedicated registrant entries

	// Fields for COMBINED registration + registrant
	// entries ONLY (e.g.: NOT dedicated). Note there are
	// drawbacks with using COMBINED entries and is a practice
	// that is generally discouraged outside of special
	// corner-cases.
	R_FAuthy *FirstAuthority
	R_CAuthy *CurrentAuthority

	R_DUAConfig *DUAConfig
}

RootArc contains information either to be set upon, or derived from, an LDAP entry that describes one (1) of three (3) possible top-level OID roots:

  • ITU-T (0)
  • ISO (1)
  • Joint-ISO-ITU-T (2)

See also go-ldap/ldap's Entry.Unmarshal method for auto-population of (pointer!) instances of this type.

When defining entries in the directory that reflect one of the above root arcs, one of the following DN conventions are recommended without regard for any specific directory model (dimension):

  • n=[0|1|2],<rARegistrationBase>, or ...
  • numberForm=[0|1|2],<rARegistrationBase>, or ...
  • identifier=[itu-t|iso|joint-iso-itu-t],<rARegistrationBase>, or ...
  • unicodeValue=[ITU-T|ISO|Joint-ISO-ITU-T],<rARegistrationBase>

Though, it is worth mentioning the first example (n=[0|1|2]) is an ideal choice for 3D models, as this allows seamless conversion with fewer conditional checks in the programmatic sense. YMMV.

OID: 1.3.6.1.4.1.56521.101.2.2.1, defined in s. 2.2.1.

func (RootArc) ASN1Notation

func (r RootArc) ASN1Notation() string

ASN1Notation returns the string asn1Notation value assigned to the receiver, or a zero string if unset.

func (RootArc) ASN1NotationGetFunc

func (r RootArc) ASN1NotationGetFunc(getfunc GetOrSetFunc) (any, error)

ASN1NotationGetFunc processes the R_ASN1Not field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (RootArc) AdditionalIdentifier

func (r RootArc) AdditionalIdentifier() []string

AdditionalIdentifier returns the string slice values assigned to the receiver, each defining an alternative identifier by which the registration is known.

func (RootArc) AdditionalIdentifierGetFunc

func (r RootArc) AdditionalIdentifierGetFunc(getfunc GetOrSetFunc) (any, error)

AdditionalIdentifierGetFunc processes the R_AddlId field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (RootArc) CombinedCurrentAuthority

func (r RootArc) CombinedCurrentAuthority() *CurrentAuthority

CombinedCurrentAuthority returns an instance of *CurrentAuthority present within the receiver's R_CAuthy field. If unset, nil is returned. Use of Combined Entries is generally not recommended.

func (RootArc) CombinedFirstAuthority

func (r RootArc) CombinedFirstAuthority() *FirstAuthority

CombinedFirstAuthority returns an instance of *FirstAuthority present within the receiver's R_FAuthy field. If unset, nil is returned. Use of Combined Entries is generally not recommended.

func (RootArc) CombinedSponsor

func (r RootArc) CombinedSponsor() *Sponsor

CombinedSponsor always returns nil, as instances of *RootArc do not possess any sponsorship mechanics themselves. This method only exists to satisfy Go interface requirements.

func (RootArc) CreateTime

func (r RootArc) CreateTime() string

CreateTime returns a string generalizedTime value assigned to the receiver's R_Created field.

func (RootArc) CreateTimeGetFunc

func (r RootArc) CreateTimeGetFunc(getfunc GetOrSetFunc) (any, error)

CreateTimeGetFunc processes the R_Created field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (RootArc) CurrentAuthority

func (r RootArc) CurrentAuthority() []string

CurrentAuthority returns the string slice values assigned to the receiver, each referencing a specific currentAuthority (x660Registrant) entry by DN.

func (RootArc) CurrentAuthorityGetFunc

func (r RootArc) CurrentAuthorityGetFunc(getfunc GetOrSetFunc) (any, error)

CurrentAuthorityGetFunc processes the R_CAuthyDN field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (RootArc) DN

func (r RootArc) DN() string

DN returns the string-based LDAP Distinguished Name value, or a zero string if unset.

func (RootArc) DNGetFunc

func (r RootArc) DNGetFunc(getfunc GetOrSetFunc) (any, error)

DNGetFunc executes the GetOrSetFunc instance and returns its own return values. The 'any' value will require type assertion in order to be accessed reliably. An error is returned if issues arise.

func (RootArc) DUAConfig

func (r RootArc) DUAConfig() *DUAConfig

DUAConfig returns the *DUAConfig instance assigned to the receiver, if set, else nil is returned.

func (RootArc) Description

func (r RootArc) Description() string

Description returns the string description assigned to the registration, else a zero string if unset.

func (RootArc) DescriptionGetFunc

func (r RootArc) DescriptionGetFunc(getfunc GetOrSetFunc) (any, error)

DescriptionGetFunc executes the GetOrSetFunc instance and returns its own return values. The 'any' value will require type assertion in order to be accessed reliably.

func (RootArc) DiscloseTo

func (r RootArc) DiscloseTo() []string

DiscloseTo returns the an empty string slice, as root registrations do not support the discloseTo attribute type.

func (RootArc) DiscloseToGetFunc

func (r RootArc) DiscloseToGetFunc(getfunc GetOrSetFunc) (any, error)

DiscloseToGetFunc does not perform any useful task and exists only to satisfy Go interface requirements.

func (RootArc) DotNotation

func (r RootArc) DotNotation() string

DotNotation returns a zero string, as the dotNotation attribute type is not applicable to entries of objectClass 'x660RootArc.

func (RootArc) DotNotationGetFunc

func (r RootArc) DotNotationGetFunc(getfunc GetOrSetFunc) (any, error)

DotNotationGetFunc processes the R_DotNot field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (RootArc) FinalArc

func (r RootArc) FinalArc() string

FinalArc returns a zero string, and exists only to satisfy go interface requirements. The 'finalArc' attributeType is not applicable to entries of objectClass 'x660RootArc'.

func (RootArc) FinalArcGetFunc

func (r RootArc) FinalArcGetFunc(getfunc GetOrSetFunc) (any, error)

FinalArcGetFunc performs no useful task, and exists only to satisfy Go interface requirements.

func (RootArc) FirstArc

func (r RootArc) FirstArc() string

FirstArc returns a zero string, and exists only to satisfy go interface requirements. The 'firstArc' attributeType is not applicable to entries of objectClass 'x660RootArc'.

func (RootArc) FirstArcGetFunc

func (r RootArc) FirstArcGetFunc(getfunc GetOrSetFunc) (any, error)

FirstArcGetFunc performs no useful task, and exists only to satisfy Go interface requirements.

func (RootArc) FirstAuthority

func (r RootArc) FirstAuthority() []string

FirstAuthority returns the string slice values assigned to the receiver, each referencing a specific firstAuthority (x660Registrant) entry by DN.

func (RootArc) FirstAuthorityGetFunc

func (r RootArc) FirstAuthorityGetFunc(getfunc GetOrSetFunc) (any, error)

FirstAuthorityGetFunc processes the R_FAuthyDN field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (RootArc) Frozen

func (r RootArc) Frozen() bool

Frozen returns false, and exists only to satisfy go interface requirements. Entries of objectClass 'x660RootArc' will never be frozen.

func (RootArc) FrozenNodeGetFunc

func (r RootArc) FrozenNodeGetFunc(getfunc GetOrSetFunc) (any, error)

FrozenGetFunc performs no useful task. This method exists only to satisfy Go interface requirements, and does not apply to root registrations.

func (RootArc) IRI

func (r RootArc) IRI() []string

IRI returns the string slice values assigned to the receiver, each defining an internationalized resource identifier.

func (RootArc) IRIGetFunc

func (r RootArc) IRIGetFunc(getfunc GetOrSetFunc) (any, error)

IRIGetFunc processes the R_IRI field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (RootArc) Identifier

func (r RootArc) Identifier() string

Identifier returns the string identifier, or name form, of the receiver. If unset, a zero string is returned.

func (RootArc) IdentifierGetFunc

func (r RootArc) IdentifierGetFunc(getfunc GetOrSetFunc) (any, error)

IdentifierGetFunc processes the R_Id field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (RootArc) Info

func (r RootArc) Info() []string

Info returns the string slice values assigned to the receiver, each defining an arbitrary block of textual information assigned to the registration.

func (RootArc) InfoGetFunc

func (r RootArc) InfoGetFunc(getfunc GetOrSetFunc) (any, error)

InfoGetFunc processes the R_Info field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (RootArc) Kind

func (r RootArc) Kind() string

Kind returns the static string value `STRUCTURAL` merely as a convenient means to declare what kind of objectClass the Registration receiver describes.

Example
var X *RootArc = new(RootArc)
X.SetDN(`n=1,ou=Registrations,o=rA`)
X.SetN(`1`)
X.SetUnicodeValue(`ISO`)
X.SetASN1Notation(`{iso(1)}`)

fmt.Printf("%s\n", X.Kind())
Output:

STRUCTURAL

func (RootArc) LeafNode

func (r RootArc) LeafNode() bool

LeafNode returns false, and exists only to satisfy go interface requirements. Entries of objectClass 'x660RootArc' will never be leaf-nodes.

func (RootArc) LeafNodeGetFunc

func (r RootArc) LeafNodeGetFunc(getfunc GetOrSetFunc) (any, error)

LeafNodeGetFunc performs no useful task. This method exists only to satisfy Go interface requirements, and does not apply to root registrations.

func (RootArc) LeftArc

func (r RootArc) LeftArc() string

LeftArc returns the string leftArc DN value assigned to the receiver, or a zero string if unset.

func (RootArc) LeftArcGetFunc

func (r RootArc) LeftArcGetFunc(getfunc GetOrSetFunc) (any, error)

LeftArcGetFunc processes the R_LeftArc field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (RootArc) LongArc

func (r RootArc) LongArc() []string

LongArc returns an empty string slice, as root registrations do not support use of the longArc.

func (RootArc) LongArcGetFunc

func (r RootArc) LongArcGetFunc(getfunc GetOrSetFunc) (any, error)

LongArcGetFunc does not perform any useful task, and exists only to satisfy Go interface requirements.

func (RootArc) ModifyTime

func (r RootArc) ModifyTime() []string

ModifyTime returns slices of string generalizedTime values, each reflecting a time and date at which the receiver was reported to be modified.

Example
var X *SubArc = new(SubArc)
X.SetDN(`n=11,n=1,n=2,n=101,n=56521,n=1,n=4,n=1,n=6,n=3,n=1,ou=Registrations,o=rA`)
X.SetN(`11`)
X.SetASN1Notation(`{iso(1) org(3) dod(6) internet(1) private(4) enterprise(1) 56521 101 2 1 11}`)
X.SetURI(`http://ldap.example.com`)
X.SetURI(`http://ra.example.com`)
X.SetModifyTime(`19711103040901Z`)
X.SetModifyTime(`19860110120110Z`)
X.SetModifyTime(`20080414090555Z`)

fmt.Printf("%s\n", X.ModifyTime()[0])
Output:

19711103040901Z

func (RootArc) ModifyTimeGetFunc

func (r RootArc) ModifyTimeGetFunc(getfunc GetOrSetFunc) (any, error)

ModifyTimeGetFunc processes the R_Modified field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

Example (WithGetOrSetFuncGeneralizedTimeToTime)
var X *RootArc = new(RootArc)

// give our instance a string val
X.SetModifyTime(`20080114214613Z`)

// Hand the ModifyTimeGetFunc method the
// desired GetOrSetFunc function instance
// to be executed.
t, err := X.ModifyTimeGetFunc(GeneralizedTimeToTime)
if err != nil {
	fmt.Println(err)
	return
}

if T, ok := t.(time.Time); ok && !T.IsZero() {
	fmt.Printf("%s", T)
} else if Ts, oks := t.([]time.Time); oks && len(Ts) > 0 {
	fmt.Printf("%s", Ts[0])
}
Output:

2008-01-14 21:46:13 +0000 UTC

func (RootArc) N

func (r RootArc) N() string

N returns the number form, or primary identifier, of the receiver. If unset, a zero string is returned.

func (RootArc) NGetFunc

func (r RootArc) NGetFunc(getfunc GetOrSetFunc) (any, error)

NGetFunc executes the GetOrSetFunc instance and returns its own return values.

func (RootArc) NameAndNumberForm

func (r RootArc) NameAndNumberForm() string

NameAndNumberForm returns the string nameAndNumberForm value assigned to the receiver, or a zero string if unset.

func (RootArc) NameAndNumberFormGetFunc

func (r RootArc) NameAndNumberFormGetFunc(getfunc GetOrSetFunc) (any, error)

NameAndNumberFormGetFunc processes the R_NaNF field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (RootArc) ObjectClass

func (r RootArc) ObjectClass() string

ObjectClass is a convenience method that returns the string name of the associated objectClass for the receiver.

This method can be used as an interface-friendly alternative to type assertion of any instance encompassed by the Arc empty interface type.

Example
var X *RootArc = new(RootArc)
X.SetDN(`n=1,ou=Registrations,o=rA`)
X.SetN(`1`)
X.SetUnicodeValue(`ISO`)
X.SetASN1Notation(`{iso(1)}`)

fmt.Printf("%s\n", X.ObjectClass())
Output:

x660RootArc

func (RootArc) Range

func (r RootArc) Range() string

Range returns a zero string, and exists only to satisfy go interface requirements. The registrationRange attribute type is not applicable to entries of objectClass 'x660RootArc'.

func (RootArc) RangeGetFunc

func (r RootArc) RangeGetFunc(getfunc GetOrSetFunc) (any, error)

RangeGetFunc does not perform any useful task, as root registrations cannot define ranges. This method exists only to satisfy Go interface requirements.

func (RootArc) RightArc

func (r RootArc) RightArc() string

RightArc returns the string rightArc DN value assigned to the receiver, or a zero string if unset.

func (RootArc) RightArcGetFunc

func (r RootArc) RightArcGetFunc(getfunc GetOrSetFunc) (any, error)

RightArcGetFunc processes the R_RightArc field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (*RootArc) SetASN1Notation

func (r *RootArc) SetASN1Notation(X any, setfunc ...GetOrSetFunc) error

SetASN1Notation assigns the string value to the receiver's R_ASN1Not field.

func (*RootArc) SetAdditionalIdentifier

func (r *RootArc) SetAdditionalIdentifier(X any, setfunc ...GetOrSetFunc) error

SetAdditionalIdentifier appends one or more string slice values to the receiver's R_AddlId field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*RootArc) SetCombinedCurrentAuthority

func (r *RootArc) SetCombinedCurrentAuthority(c *CurrentAuthority)

SetCombinedCurrentAuthority assigns a non-nil instance of *CurrentAuthority to the receiver's R_CAuthy field. This is only to be used in scenarios that leverage the so-called "Combined Entries" technique, and is generally only recommended for tiny and/or sparse implementations of draft-coretta-x660-ldap.

func (*RootArc) SetCombinedFirstAuthority

func (r *RootArc) SetCombinedFirstAuthority(c *FirstAuthority)

SetCombinedFirstAuthority assigns a non-nil instance of *FirstAuthority to the receiver's R_CAuthy field. This is only to be used in scenarios that leverage the so-called "Combined Entries" technique, and is generally only recommended for tiny and/or sparse implementations of draft-coretta-x660-ldap.

func (*RootArc) SetCombinedSponsor

func (r *RootArc) SetCombinedSponsor(c *Sponsor)

SetCombinedSponsor does not perform any useful task, as instances of *RootArc instances do not possess the capability of storing Sponsor related information. This method only exists to satisfy Go interface requirements.

func (*RootArc) SetCreateTime

func (r *RootArc) SetCreateTime(X any, setfunc ...GetOrSetFunc) error

SetCreateTime assigns a string-based generalizedTime value to the receiver's R_Created field.

func (*RootArc) SetCurrentAuthority

func (r *RootArc) SetCurrentAuthority(X any, setfunc ...GetOrSetFunc) error

SetCurrentAuthority appends one or more string slice values to the receiver's R_CAuthyDN field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*RootArc) SetDN

func (r *RootArc) SetDN(X any, setfunc ...GetOrSetFunc) error

SetDN assigns the string value to the receiver's R_DN field.

func (*RootArc) SetDUAConfig

func (r *RootArc) SetDUAConfig(d *DUAConfig)

SetDUAConfig assigns the input *DUAConfig (d) to the receiver's R_DUAConfig struct field.

func (*RootArc) SetDescription

func (r *RootArc) SetDescription(X any, setfunc ...GetOrSetFunc) error

SetDescription assigns the string value to the receiver's R_Desc field.

func (*RootArc) SetDiscloseTo

func (r *RootArc) SetDiscloseTo(X any, setfunc ...GetOrSetFunc) error

SetDiscloseTo does not perform any useful task and exists only to satisfy Go interface requirements.

func (*RootArc) SetDotNotation

func (r *RootArc) SetDotNotation(o any, setfunc ...GetOrSetFunc) error

SetDotNotation does not perform any useful task, as root registrations do not have dotNotation values within LDAP due to syntax criteria. This method exists to satisfy Go interface requirements.

func (*RootArc) SetFinalArc

func (r *RootArc) SetFinalArc(X any, setfunc ...GetOrSetFunc) error

SetFinalArc performs no useful task, and exists only to satisfy Go interface requirements.

func (*RootArc) SetFirstArc

func (r *RootArc) SetFirstArc(X any, setfunc ...GetOrSetFunc) error

SetFirstArc performs no useful task, and exists only to satisfy Go interface requirements.

func (*RootArc) SetFirstAuthority

func (r *RootArc) SetFirstAuthority(X any, setfunc ...GetOrSetFunc) error

SetFirstAuthority appends one or more string slice DN values to the receiver's R_FAuthyDN field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*RootArc) SetFrozen

func (r *RootArc) SetFrozen(X any, setfunc ...GetOrSetFunc) error

SetFrozen performs no useful task. This method exists only to satisfy Go interface requirements, and does not apply to root registrations.

func (*RootArc) SetIRI

func (r *RootArc) SetIRI(X any, setfunc ...GetOrSetFunc) error

SetIRI appends one or more string slice DN values to the receiver's R_IRI field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*RootArc) SetIdentifier

func (r *RootArc) SetIdentifier(X any, setfunc ...GetOrSetFunc) error

SetIdentifier assigns the string value to the receiver's R_Id field.

func (*RootArc) SetInfo

func (r *RootArc) SetInfo(X any, setfunc ...GetOrSetFunc) error

SetInfo assigns one or more string slice values to the receiver's R_Info field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*RootArc) SetLeafNode

func (r *RootArc) SetLeafNode(X any, setfunc ...GetOrSetFunc) error

SetLeafNode performs no useful task. This method exists only to satisfy Go interface requirements, and does not apply to root registrations.

func (*RootArc) SetLeftArc

func (r *RootArc) SetLeftArc(X any, setfunc ...GetOrSetFunc) error

SetLeftArc assigns the string value to the receiver's R_LeftArc field.

func (*RootArc) SetLongArc

func (r *RootArc) SetLongArc(X any, setfunc ...GetOrSetFunc) error

SetLongArc does not perform any useful task, and exists only to satisfy Go interface requirements.

func (*RootArc) SetModifyTime

func (r *RootArc) SetModifyTime(X any, setfunc ...GetOrSetFunc) error

SetModifyTime appends one or more instances of string-based generalizedTime value to the receiver's R_Modified field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*RootArc) SetN

func (r *RootArc) SetN(X any, setfunc ...GetOrSetFunc) error

SetN assigns the string value to the receiver's R_N field.

func (*RootArc) SetNameAndNumberForm

func (r *RootArc) SetNameAndNumberForm(X any, setfunc ...GetOrSetFunc) error

SetNameAndNumberForm assigns the string value to the receiver's R_NaNF field.

func (*RootArc) SetRange

func (r *RootArc) SetRange(X any, setfunc ...GetOrSetFunc) error

SetRange does not perform any useful task, as root registrations cannot define ranges. This method exists only to satisfy Go interface requirements.

func (*RootArc) SetRightArc

func (r *RootArc) SetRightArc(X any, setfunc ...GetOrSetFunc) error

SetRightArc assigns the string value to the receiver's R_RightArc field.

func (*RootArc) SetSponsor

func (r *RootArc) SetSponsor(X any, setfunc ...GetOrSetFunc) error

SetSponsor does not perform any useful task, as Sponsors do not apply to root arc registrations. This method exists only to satisfy Go interface requirements.

func (*RootArc) SetStatus

func (r *RootArc) SetStatus(X any, setfunc ...GetOrSetFunc) error

SetStatus performs no useful task, and exists only to satisfy Go interface requirements. Status values do not apply to root registrations.

func (*RootArc) SetStdNameForm

func (r *RootArc) SetStdNameForm(X any, setfunc ...GetOrSetFunc) error

SetStdNameForm assigns one or more string slice values to the receiver's R_StdNF field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*RootArc) SetSubArc

func (r *RootArc) SetSubArc(X any, setfunc ...GetOrSetFunc) error

SetSubArc appends one or more string DN values to the receiver's R_SubArc field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*RootArc) SetSupArc

func (r *RootArc) SetSupArc(X any, setfunc ...GetOrSetFunc) error

SetSupArc does not perform any useful task, as a root arc registration cannot have a superior (parent).

func (*RootArc) SetTopArc

func (r *RootArc) SetTopArc(X any, setfunc ...GetOrSetFunc) error

SetTopArc does not perform any useful task, as a root arc registration is a "top arc" in of itself.

func (*RootArc) SetURI

func (r *RootArc) SetURI(X any, setfunc ...GetOrSetFunc) error

SetURI assigns one or more string slice values to the receiver's R_URI field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*RootArc) SetUnicodeValue

func (r *RootArc) SetUnicodeValue(X any, setfunc ...GetOrSetFunc) error

SetUnicodeValue appends one or more string slice DN values to the receiver's R_UVal field. Note that if a slice is passed as X, the destination value will be clobbered.

func (RootArc) Sponsor

func (r RootArc) Sponsor() []string

Sponsors returns the an empty string slice, as root registration do not possess any sponsorship mechanics themselves. This method exists only to satisfy go interface requirements.

func (RootArc) SponsorGetFunc

func (r RootArc) SponsorGetFunc(getfunc GetOrSetFunc) (any, error)

SponsorGetFunc does not perform any useful task, as Sponsors do not apply to root arc registrations. This method exists only to satisfy Go interface requirements.

func (RootArc) Status

func (r RootArc) Status() string

Status returns an empty string, and exists only to satisfy go interface requirements. The registrationStatus attribute type is not applicable to entries of objectClass 'x660RootArc'.

func (RootArc) StatusGetFunc

func (r RootArc) StatusGetFunc(getfunc GetOrSetFunc) (any, error)

StatusGetFunc performs no useful task, and exists only to satisfy Go interface requirements. Status values do not apply to root registrations.

func (RootArc) StdNameForm

func (r RootArc) StdNameForm() []string

StdNameForm returns the string slice values assigned to the receiver, each defining a standardized name form assigned to the registration.

func (RootArc) StdNameFormGetFunc

func (r RootArc) StdNameFormGetFunc(getfunc GetOrSetFunc) (any, error)

StdNameFormGetFunc processes the R_StdNF field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (RootArc) SubArc

func (r RootArc) SubArc() []string

SubArc returns zero or more string DN values, each describing a 'subArc' value assigned to the receiver.

func (RootArc) SubArcGetFunc

func (r RootArc) SubArcGetFunc(getfunc GetOrSetFunc) (any, error)

SubArcGetFunc processes the R_SubArc field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (RootArc) SupArc

func (r RootArc) SupArc() string

SupArc returns a zero string, and exists only to satisfy go interface requirements. RootArc have no superior (parent) nodes.

func (RootArc) SupArcGetFunc

func (r RootArc) SupArcGetFunc(getfunc GetOrSetFunc) (any, error)

SupArcGetFunc does not perform any useful task, as a root arc registration cannot have a superior (parent).

func (RootArc) TopArc

func (r RootArc) TopArc() string

TopArc returns a zero string, and exists only to satisfy go interface requirements. RootArc instances ARE the "top" nodes for all other respective sub arcs, and thus they themselves have no superior nodes.

func (RootArc) TopArcGetFunc

func (r RootArc) TopArcGetFunc(getfunc GetOrSetFunc) (any, error)

TopArcGetFunc does not perform any useful task, as a root arc registration is a "top arc" in of itself.

func (RootArc) URI

func (r RootArc) URI() []string

URI returns the string slice values assigned to the receiver, each defining a uniform resource identifier assigned to the registration.

func (RootArc) URIGetFunc

func (r RootArc) URIGetFunc(getfunc GetOrSetFunc) (any, error)

URIGetFunc processes the R_URI field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (RootArc) UnicodeValue

func (r RootArc) UnicodeValue() []string

UnicodeValue returns the string slice values assigned to the receiver, each defining a unicodeValue assigned to the registration.

func (RootArc) UnicodeValueGetFunc

func (r RootArc) UnicodeValueGetFunc(getfunc GetOrSetFunc) (any, error)

UnicodeValueGetFunc processes the R_UVal field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (RootArc) Unmarshal

func (r RootArc) Unmarshal() map[string][]string

Unmarshal transports values from the receiver into an instance of map[string][]string, which can subsequently be fed to go-ldap's NewEntry function.

type Sponsor struct {
	R_DN        string   `ldap:"dn"`
	R_Id        string   `ldap:"registrantID"`
	R_L         string   `ldap:"sponsorLocality"`
	R_O         string   `ldap:"sponsorOrg"`
	R_C         string   `ldap:"sponsorCountryCode"`
	R_CO        string   `ldap:"sponsorCountryName"`
	R_ST        string   `ldap:"sponsorState"`
	R_CN        string   `ldap:"sponsorCommonName"`
	R_Tel       string   `ldap:"sponsorTelephone"`
	R_Fax       string   `ldap:"sponsorFax"`
	R_Title     string   `ldap:"sponsorTitle"`
	R_Email     string   `ldap:"sponsorEmail"`
	R_POBox     string   `ldap:"sponsorPOBox"`
	R_PCode     string   `ldap:"sponsorPostalCode"`
	R_PAddr     string   `ldap:"sponsorPostalAddress"`
	R_Street    string   `ldap:"sponsorStreet"`
	R_Mobile    string   `ldap:"sponsorMobile"`
	R_StartTime string   `ldap:"sponsorStartTimestamp"`
	R_EndTime   string   `ldap:"sponsorEndTimestamp"`
	R_URI       []string `ldap:"sponsorURI"`
	R_DUAConfig *DUAConfig
}

Sponsor describes a past or present sponsoring authority.

func (Sponsor) C

func (r Sponsor) C() string

C returns the 2-letter country code value assigned to the receiver.

func (Sponsor) CGetFunc

func (r Sponsor) CGetFunc(getfunc GetOrSetFunc) (any, error)

CGetFunc processes the R_C field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) CN

func (r Sponsor) CN() string

CN returns the common name value assigned to the receiver.

func (Sponsor) CNGetFunc

func (r Sponsor) CNGetFunc(getfunc GetOrSetFunc) (any, error)

CNGetFunc processes the R_CN field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) CO

func (r Sponsor) CO() string

CO returns the so-called "friendly country name" value assigned to the receiver.

func (Sponsor) COGetFunc

func (r Sponsor) COGetFunc(getfunc GetOrSetFunc) (any, error)

COGetFunc processes the R_CO field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) DN

func (r Sponsor) DN() string

DN returns the distinguished name value assigned to the receiver.

func (Sponsor) DNGetFunc

func (r Sponsor) DNGetFunc(getfunc GetOrSetFunc) (any, error)

DNGetFunc processes the R_DN field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) DUAConfig

func (r Sponsor) DUAConfig() *DUAConfig

DUAConfig returns the *DUAConfig instance assigned to the receiver, if set, else nil is returned.

func (Sponsor) Email

func (r Sponsor) Email() string

Email returns the email address value assigned to the receiver.

func (Sponsor) EmailGetFunc

func (r Sponsor) EmailGetFunc(getfunc GetOrSetFunc) (any, error)

EmailGetFunc processes the R_Email field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) EndTime

func (r Sponsor) EndTime() string

EndTime returns the string-based generalizedTime value that reflects the time at which the receiver was (or will be) terminated.

func (Sponsor) Fax

func (r Sponsor) Fax() string

Fax returns the facsimile telephone number value assigned to the receiver.

func (Sponsor) FaxGetFunc

func (r Sponsor) FaxGetFunc(getfunc GetOrSetFunc) (any, error)

FaxGetFunc processes the R_Fax field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) Kind

func (r Sponsor) Kind() string

Kind returns the static string value `AUXILIARY` merely as a convenient means to declare what kind of objectClass the Registrant receiver describes.

func (Sponsor) L

func (r Sponsor) L() string

L returns the locality name value assigned to the receiver.

func (Sponsor) LGetFunc

func (r Sponsor) LGetFunc(getfunc GetOrSetFunc) (any, error)

LGetFunc processes the R_L field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) Mobile

func (r Sponsor) Mobile() string

Mobile returns the mobile telephone number value assigned to the receiver.

func (Sponsor) MobileGetFunc

func (r Sponsor) MobileGetFunc(getfunc GetOrSetFunc) (any, error)

MobileGetFunc processes the R_Mobile field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) O

func (r Sponsor) O() string

O returns the organization name value assigned to the receiver.

func (Sponsor) OGetFunc

func (r Sponsor) OGetFunc(getfunc GetOrSetFunc) (any, error)

OGetFunc processes the R_O field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) ObjectClass

func (r Sponsor) ObjectClass() string

ObjectClass returns the static string value `x660Registrant` merely as an alternative to tested type assertion.

func (Sponsor) POBox

func (r Sponsor) POBox() string

POBox returns the postal office box value assigned to the receiver.

func (Sponsor) POBoxGetFunc

func (r Sponsor) POBoxGetFunc(getfunc GetOrSetFunc) (any, error)

POBoxGetFunc processes the R_POBox field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) PostalAddress

func (r Sponsor) PostalAddress() string

PostalAddress returns the postal address value assigned to the receiver.

func (Sponsor) PostalAddressGetFunc

func (r Sponsor) PostalAddressGetFunc(getfunc GetOrSetFunc) (any, error)

PostalAddressGetFunc processes the R_PAddr field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) PostalCode

func (r Sponsor) PostalCode() string

PostalCode returns the postal code value assigned to the receiver.

func (Sponsor) PostalCodeGetFunc

func (r Sponsor) PostalCodeGetFunc(getfunc GetOrSetFunc) (any, error)

PostalCodeGetFunc processes the R_PCode field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) RegistrantID

func (r Sponsor) RegistrantID() string

RegistrantID returns the registrantID value assigned to the receiver.

func (Sponsor) RegistrantIDGetFunc

func (r Sponsor) RegistrantIDGetFunc(getfunc GetOrSetFunc) (any, error)

RegistrantIDGetFunc processes the R_Id field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) ST

func (r Sponsor) ST() string

ST returns the state or province name value assigned to the receiver.

func (Sponsor) STGetFunc

func (r Sponsor) STGetFunc(getfunc GetOrSetFunc) (any, error)

STGetFunc processes the R_ST field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (*Sponsor) SetC

func (r *Sponsor) SetC(X any, setfunc ...GetOrSetFunc) error

SetC assigns the provided string value to the receiver's R_C field.

func (*Sponsor) SetCN

func (r *Sponsor) SetCN(X any, setfunc ...GetOrSetFunc) error

SetCN assigns the provided string value to the receiver's R_CN field.

func (*Sponsor) SetCO

func (r *Sponsor) SetCO(X any, setfunc ...GetOrSetFunc) error

SetCO assigns the provided string value to the receiver's R_CO field.

func (*Sponsor) SetDN

func (r *Sponsor) SetDN(X any, setfunc ...GetOrSetFunc) error

SetDN assigns the provided string value to the receiver's R_DN field.

func (*Sponsor) SetDUAConfig

func (r *Sponsor) SetDUAConfig(d *DUAConfig)

SetDUAConfig assigns the input *DUAConfig (d) to the receiver's R_DUAConfig struct field.

func (*Sponsor) SetEmail

func (r *Sponsor) SetEmail(X any, setfunc ...GetOrSetFunc) error

SetEmail assigns the provided string value to the receiver's R_Email field.

func (*Sponsor) SetEndTime

func (r *Sponsor) SetEndTime(X any, setfunc ...GetOrSetFunc) error

SetEndTime appends one or more string slice value to the receiver's R_EndTime field.

func (*Sponsor) SetFax

func (r *Sponsor) SetFax(X any, setfunc ...GetOrSetFunc) error

SetFax assigns the provided string value to the receiver's R_Fax field.

func (*Sponsor) SetL

func (r *Sponsor) SetL(X any, setfunc ...GetOrSetFunc) error

SetL assigns the provided string value to the receiver's R_L field.

func (*Sponsor) SetMobile

func (r *Sponsor) SetMobile(X any, setfunc ...GetOrSetFunc) error

SetMobile assigns the provided string value to the receiver's R_Mobile field.

func (*Sponsor) SetO

func (r *Sponsor) SetO(X any, setfunc ...GetOrSetFunc) error

SetO assigns the provided string value to the receiver's R_O field.

func (*Sponsor) SetPOBox

func (r *Sponsor) SetPOBox(X any, setfunc ...GetOrSetFunc) error

SetPOBox assigns the provided string value to the receiver's R_POBox field.

func (*Sponsor) SetPostalAddress

func (r *Sponsor) SetPostalAddress(X any, setfunc ...GetOrSetFunc) error

SetPostalAddress assigns the provided string value to the receiver's R_PAddr field.

func (*Sponsor) SetPostalCode

func (r *Sponsor) SetPostalCode(X any, setfunc ...GetOrSetFunc) error

SetPostalCode assigns the provided string value to the receiver's R_PCode field.

func (*Sponsor) SetRegistrantID

func (r *Sponsor) SetRegistrantID(X any, setfunc ...GetOrSetFunc) error

SetRegistrantID assigns the provided string value to the receiver's R_Id field.

func (*Sponsor) SetST

func (r *Sponsor) SetST(X any, setfunc ...GetOrSetFunc) error

SetST assigns the provided string value to the receiver's R_ST field.

func (*Sponsor) SetStartTime

func (r *Sponsor) SetStartTime(X any, setfunc ...GetOrSetFunc) error

SetStartTime appends one or more string slice value to the receiver's R_StartTime field.

func (*Sponsor) SetStreet

func (r *Sponsor) SetStreet(X any, setfunc ...GetOrSetFunc) error

SetStreet assigns the provided string value to the receiver's R_Street field.

func (*Sponsor) SetTel

func (r *Sponsor) SetTel(X any, setfunc ...GetOrSetFunc) error

SetTel assigns the provided string value to the receiver's R_Tel field.

func (*Sponsor) SetTitle

func (r *Sponsor) SetTitle(X any, setfunc ...GetOrSetFunc) error

SetTitle assigns the provided string value to the receiver's R_Title field.

func (*Sponsor) SetURI

func (r *Sponsor) SetURI(X any, setfunc ...GetOrSetFunc) error

SetURI appends one or more string slice value to the receiver's R_URI field. Note that if a slice is passed as X, the destination value will be clobbered.

func (Sponsor) StartTime

func (r Sponsor) StartTime() string

StartTime returns the string-based generalizedTime value that reflects the time at which the receiver was (or will be) officiated.

func (Sponsor) Street

func (r Sponsor) Street() string

Street returns the street value assigned to the receiver.

func (Sponsor) StreetGetFunc

func (r Sponsor) StreetGetFunc(getfunc GetOrSetFunc) (any, error)

StreetGetFunc processes the R_Street field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) Tel

func (r Sponsor) Tel() string

Tel returns the telephone number value assigned to the receiver.

func (Sponsor) TelGetFunc

func (r Sponsor) TelGetFunc(getfunc GetOrSetFunc) (any, error)

TelGetFunc processes the R_Tel field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) Title

func (r Sponsor) Title() string

Title returns the title value assigned to the receiver.

func (Sponsor) TitleGetFunc

func (r Sponsor) TitleGetFunc(getfunc GetOrSetFunc) (any, error)

TitleGetFunc processes the R_Title field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) Type

func (r Sponsor) Type() string

Type returns the static string value `sponsor` as a convenient means of testing which kind of Registrant type is described by the receiver (Sponsor).

func (Sponsor) URI

func (r Sponsor) URI() []string

URI returns slices of string URIs assigned to the receiver.

func (Sponsor) URIGetFunc

func (r Sponsor) URIGetFunc(getfunc GetOrSetFunc) (any, error)

URIGetFunc processes the R_URI field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (Sponsor) Unmarshal

func (r Sponsor) Unmarshal() map[string][]string

Unmarshal transports values from the receiver into an instance of map[string][]string, which can subsequently be fed to go-ldap's NewEntry function.

type SubArc

type SubArc struct {
	R_DN         string   `ldap:"dn"`
	R_N          string   `ldap:"n"`
	R_Desc       string   `ldap:"description"`
	R_DotNot     string   `ldap:"dotNotation"`
	R_ASN1Not    string   `ldap:"asn1Notation"`
	R_Id         string   `ldap:"identifier"`
	R_Created    string   `ldap:"registrationCreated"`
	R_Range      string   `ldap:"registrationRange"`
	R_Status     string   `ldap:"registrationStatus"`
	R_LeafNode   string   `ldap:"isLeafNode"`
	R_Frozen     string   `ldap:"isFrozen"`
	R_NaNF       string   `ldap:"nameAndNumberForm"`
	R_SupArc     string   `ldap:"supArc"`
	R_TopArc     string   `ldap:"topArc"`
	R_LeftArc    string   `ldap:"leftArc"`
	R_FirstArc   string   `ldap:"firstArc"`
	R_RightArc   string   `ldap:"rightArc"`
	R_FinalArc   string   `ldap:"finalArc"`
	R_SubArc     []string `ldap:"subArc"`
	R_LongArc    []string `ldap:"longArc"` // only permitted for subArcs of Joint-ISO-ITU-T (2).
	R_Modified   []string `ldap:"registrationModified"`
	R_DiscloseTo []string `ldap:"discloseTo"`
	R_StdNF      []string `ldap:"stdNameForm"`
	R_IRI        []string `ldap:"iRI"`
	R_UVal       []string `ldap:"unicodeValue"` // almost always single-val
	R_AddlId     []string `ldap:"additionalIdentifier"`
	R_Info       []string `ldap:"registrationInformation"`
	R_URI        []string `ldap:"registrationURI"`
	R_FAuthyDN   []string `ldap:"firstAuthority"`   // used only for dedicated registrant entries
	R_CAuthyDN   []string `ldap:"currentAuthority"` // used only for dedicated registrant entries
	R_SAuthyDN   []string `ldap:"sponsor"`          // used only for dedicated registrant entries

	// Fields for COMBINED registration + registrant
	// entries ONLY (e.g.: NOT dedicated). Note there are
	// drawbacks with using COMBINED entries and is a practice
	// that is generally discouraged outside of special
	// corner-cases.
	R_FAuthy *FirstAuthority
	R_CAuthy *CurrentAuthority
	R_SAuthy *Sponsor

	R_DUAConfig *DUAConfig
}

SubArc contains information either to be set upon, or derived from, an LDAP entry that describes a non-root arc registration.

See also go-ldap/ldap's Entry.Unmarshal method for auto-population of (pointer!) instances of this type.

OID: 1.3.6.1.4.1.56521.101.2.2.2, defined in s. 2.2.2.

Example (Combined)
var A *FirstAuthority = new(FirstAuthority)
A.SetCN(`Mister Authority`)
A.SetO(`Authority, Co.`)

var X *SubArc = new(SubArc)
X.SetDN(`n=11,n=1,n=2,n=101,n=56521,n=1,n=4,n=1,n=6,n=3,n=1,ou=Registrations,o=rA`)
X.SetN(`11`)
X.SetASN1Notation(`{iso(1) org(3) dod(6) internet(1) private(4) enterprise(1) 56521 101 2 1 11}`)
X.SetDotNotation(`1.3.6.1.4.1.56521.2.1.11`)
X.SetCreateTime(`19860110120110Z`)
X.SetCombinedFirstAuthority(A)

fmt.Printf("%s at %s\n", X.CombinedFirstAuthority().CN(), X.CombinedFirstAuthority().O())
Output:

Mister Authority at Authority, Co.
Example (Dedicated)
var X *SubArc = new(SubArc)
X.SetDN(`n=11,n=1,n=2,n=101,n=56521,n=1,n=4,n=1,n=6,n=3,n=1,ou=Registrations,o=rA`)
X.SetN(`11`)
X.SetASN1Notation(`{iso(1) org(3) dod(6) internet(1) private(4) enterprise(1) 56521 101 2 1 11}`)
X.SetDotNotation(`1.3.6.1.4.1.56521.2.1.11`)
X.SetCreateTime(`20210110120110Z`)
X.SetFirstAuthority(`registrantID=Jesse Coretta,ou=Registrants,o=rA`)
X.SetCurrentAuthority(`registrantID=ABC Authority,ou=Registrants,o=rA`)

fmt.Printf("%s (first), %s (current)\n", X.FirstAuthority()[0], X.CurrentAuthority()[0])
Output:

registrantID=Jesse Coretta,ou=Registrants,o=rA (first), registrantID=ABC Authority,ou=Registrants,o=rA (current)

func (SubArc) ASN1Notation

func (r SubArc) ASN1Notation() string

ASN1Notation returns the string asn1Notation value assigned to the receiver, or a zero string if unset.

func (SubArc) ASN1NotationGetFunc

func (r SubArc) ASN1NotationGetFunc(getfunc GetOrSetFunc) (any, error)

ASN1NotationGetFunc processes the R_ASN1Not field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) AdditionalIdentifier

func (r SubArc) AdditionalIdentifier() []string

AdditionalIdentifier returns the string slice values assigned to the receiver, each defining an alternative identifier by which the registration is known.

func (SubArc) AdditionalIdentifierGetFunc

func (r SubArc) AdditionalIdentifierGetFunc(getfunc GetOrSetFunc) (any, error)

AdditionalIdentifierGetFunc processes the R_AddlId field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) CombinedCurrentAuthority

func (r SubArc) CombinedCurrentAuthority() *CurrentAuthority

CombinedFirstAuthority returns an instance of *FirstAuthority present within the receiver's R_FAuthy field. If unset, nil is returned. This

func (SubArc) CombinedFirstAuthority

func (r SubArc) CombinedFirstAuthority() *FirstAuthority

CombinedFirstAuthority returns an instance of *FirstAuthority present within the receiver's R_FAuthy field. If unset, nil is returned. Use of Combined Entries is generally not recommended.

func (SubArc) CombinedSponsor

func (r SubArc) CombinedSponsor() *Sponsor

CombinedSponsor returns an instance of *Sponsor present within the receiver's R_SAuthy field. If unset, nil is returned. Use of Combined Entries is generally not recommended.

func (SubArc) CreateTime

func (r SubArc) CreateTime() string

CreateTime returns a string generalizedTime value assigned to the receiver's R_Created field.

Example
var X *SubArc = new(SubArc)
X.SetDN(`n=11,n=1,n=2,n=101,n=56521,n=1,n=4,n=1,n=6,n=3,n=1,ou=Registrations,o=rA`)
X.SetN(`11`)
X.SetASN1Notation(`{iso(1) org(3) dod(6) internet(1) private(4) enterprise(1) 56521 101 2 1 11}`)
X.SetDotNotation(`1.3.6.1.4.1.56521.2.1.11`)
X.SetCreateTime(`19860110120110Z`)

fmt.Printf("%s\n", X.CreateTime())
Output:

19860110120110Z

func (SubArc) CreateTimeGetFunc

func (r SubArc) CreateTimeGetFunc(getfunc GetOrSetFunc) (any, error)

CreateTimeGetFunc processes the R_Created field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) CurrentAuthority

func (r SubArc) CurrentAuthority() []string

CurrentAuthority returns the string slice values assigned to the receiver, each referencing a specific currentAuthority (x660Registrant) entry by DN.

func (SubArc) CurrentAuthorityGetFunc

func (r SubArc) CurrentAuthorityGetFunc(getfunc GetOrSetFunc) (any, error)

CurrentAuthorityGetFunc processes the R_CAuthyDN field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) DN

func (r SubArc) DN() string

DN returns the string-based LDAP Distinguished Name value, or a zero string if unset.

func (SubArc) DNGetFunc

func (r SubArc) DNGetFunc(getfunc GetOrSetFunc) (any, error)

DNGetFunc executes the GetOrSetFunc instance and returns its own return values. The 'any' value will require type assertion in order to be accessed reliably. An error is returned if issues arise.

func (SubArc) DUAConfig

func (r SubArc) DUAConfig() *DUAConfig

DUAConfig returns the *DUAConfig instance assigned to the receiver, if set, else nil is returned.

func (SubArc) Description

func (r SubArc) Description() string

Description returns the string description assigned to the registration, else a zero string if unset.

func (SubArc) DescriptionGetFunc

func (r SubArc) DescriptionGetFunc(getfunc GetOrSetFunc) (any, error)

DescriptionGetFunc executes the GetOrSetFunc instance and returns its own return values. The 'any' value will require type assertion in order to be accessed reliably.

func (SubArc) DiscloseTo

func (r SubArc) DiscloseTo() []string

DiscloseTo returns the string slice values assigned to the receiver, each defining an identity, group or some other DN-based reference related to the 'discloseTo' attribute type mechanics.

func (SubArc) DiscloseToGetFunc

func (r SubArc) DiscloseToGetFunc(getfunc GetOrSetFunc) (any, error)

DiscloseToGetFunc processes the R_DiscloseTo field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) DotNotation

func (r SubArc) DotNotation() string

DotNotation returns the string dotNotation value assigned to the receiver, or a zero string if unset.

func (SubArc) DotNotationGetFunc

func (r SubArc) DotNotationGetFunc(getfunc GetOrSetFunc) (any, error)

DotNotationGetFunc processes the R_DotNot field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) FinalArc

func (r SubArc) FinalArc() string

FinalArc returns the string finalArc DN value assigned to the receiver, or a zero string if unset.

func (SubArc) FinalArcGetFunc

func (r SubArc) FinalArcGetFunc(getfunc GetOrSetFunc) (any, error)

FinalArcGetFunc processes the R_FinalArc field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) FirstArc

func (r SubArc) FirstArc() string

FirstArc returns the string firstArc DN value assigned to the receiver, or a zero string if unset.

func (SubArc) FirstArcGetFunc

func (r SubArc) FirstArcGetFunc(getfunc GetOrSetFunc) (any, error)

FirstArcGetFunc processes the R_FirstArc field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) FirstAuthority

func (r SubArc) FirstAuthority() []string

FirstAuthority returns the string slice values assigned to the receiver, each referencing a specific firstAuthority (x660Registrant) entry by DN.

func (SubArc) FirstAuthorityGetFunc

func (r SubArc) FirstAuthorityGetFunc(getfunc GetOrSetFunc) (any, error)

FirstAuthorityGetFunc processes the R_FAuthyDN field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) Frozen

func (r SubArc) Frozen() bool

Frozen returns a boolean value indicative of whether the receiver has been marked as frozen, or false if unset.

func (SubArc) FrozenGetFunc

func (r SubArc) FrozenGetFunc(getfunc GetOrSetFunc) (any, error)

FrozenGetFunc processes the R_Frozen field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) IRI

func (r SubArc) IRI() []string

IRI returns the string slice values assigned to the receiver, each defining an internationalized resource identifier.

func (SubArc) IRIGetFunc

func (r SubArc) IRIGetFunc(getfunc GetOrSetFunc) (any, error)

IRIGetFunc processes the R_IRI field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) Identifier

func (r SubArc) Identifier() string

Identifier returns the string identifier, or name form, of the receiver. If unset, a zero string is returned.

func (SubArc) IdentifierGetFunc

func (r SubArc) IdentifierGetFunc(getfunc GetOrSetFunc) (any, error)

IdentifierGetFunc processes the R_Id field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) Info

func (r SubArc) Info() []string

Info returns the string slice values assigned to the receiver, each defining an arbitrary block of textual information assigned to the registration.

func (SubArc) InfoGetFunc

func (r SubArc) InfoGetFunc(getfunc GetOrSetFunc) (any, error)

InfoGetFunc processes the R_Info field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) Kind

func (r SubArc) Kind() string

Kind returns the static string value `STRUCTURAL` merely as a convenient means to declare what kind of objectClass the Registration receiver describes.

Example
var X *SubArc = new(SubArc)
X.SetDN(`n=11,n=1,n=2,n=101,n=56521,n=1,n=4,n=1,n=6,n=3,n=1,ou=Registrations,o=rA`)
X.SetN(`11`)
X.SetASN1Notation(`{iso(1) org(3) dod(6) internet(1) private(4) enterprise(1) 56521 101 2 1 11}`)
X.SetDotNotation(`1.3.6.1.4.1.56521.2.1.11`)
X.SetCreateTime(`19860110120110Z`)

fmt.Printf("%s\n", X.Kind())
Output:

STRUCTURAL

func (SubArc) LeafNode

func (r SubArc) LeafNode() bool

LeafNode returns a boolean value indicative of whether the receiver has been marked as a leaf-node, or false if unset.

func (SubArc) LeafNodeGetFunc

func (r SubArc) LeafNodeGetFunc(getfunc GetOrSetFunc) (any, error)

LeafNodeGetFunc processes the R_LeafNode field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) LeftArc

func (r SubArc) LeftArc() string

LeftArc turns the string leftArc DN value assigned to the receiver, or a zero string if unset.

func (SubArc) LeftArcGetFunc

func (r SubArc) LeftArcGetFunc(getfunc GetOrSetFunc) (any, error)

LeftArcGetFunc processes the R_LeftArc field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) LongArc

func (r SubArc) LongArc() []string

LongArc returns the string slice values assigned to the receiver, each defining a longArc associated with the registration.

Not that only sub arcs below Joint-ISO-ITU-T (2) are permitted to possess longArc values. Assignment of a longArc to an ITU-T (0) or ISO (1) registration is considered illegal.

func (SubArc) LongArcGetFunc

func (r SubArc) LongArcGetFunc(getfunc GetOrSetFunc) (any, error)

LongArcGetFunc processes the R_LongArc field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) ModifyTime

func (r SubArc) ModifyTime() (T []string)

ModifyTime returns slices of string generalizedTime values, each reflecting a time and date at which the receiver was reported to be modified.

Example
var X *SubArc = new(SubArc)
X.SetDN(`n=11,n=1,n=2,n=101,n=56521,n=1,n=4,n=1,n=6,n=3,n=1,ou=Registrations,o=rA`)
X.SetN(`11`)
X.SetASN1Notation(`{iso(1) org(3) dod(6) internet(1) private(4) enterprise(1) 56521 101 2 1 11}`)
X.SetDotNotation(`1.3.6.1.4.1.56521.2.1.11`)
X.SetModifyTime(`19711103040901Z`)
X.SetModifyTime(`19860110120110Z`)
X.SetModifyTime(`20080414090555Z`)

fmt.Printf("%s\n", X.ModifyTime()[0])
Output:

19711103040901Z

func (SubArc) ModifyTimeGetFunc

func (r SubArc) ModifyTimeGetFunc(getfunc GetOrSetFunc) (any, error)

ModifyTimeGetFunc processes the R_Modified field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) N

func (r SubArc) N() string

N() returns the number form, or primary identifier, of the receiver. If unset, a zero string is returned.

func (SubArc) NGetFunc

func (r SubArc) NGetFunc(getfunc GetOrSetFunc) (any, error)

NGetFunc executes the GetOrSetFunc instance and returns its own return values.

func (SubArc) NameAndNumberForm

func (r SubArc) NameAndNumberForm() string

NameAndNumberForm returns the string nameAndNumberForm value assigned to the receiver, or a zero string if unset.

func (SubArc) NameAndNumberFormGetFunc

func (r SubArc) NameAndNumberFormGetFunc(getfunc GetOrSetFunc) (any, error)

NameAndNumberFormGetFunc processes the R_NaNF field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) ObjectClass

func (r SubArc) ObjectClass() string

ObjectClass is a convenience method that returns the string name of the associated objectClass for the receiver.

This method can be used as an interface-friendly alternative to type assertion of any instance encompassed by the Arc empty interface type.

Example
var X *SubArc = new(SubArc)
X.SetDN(`n=11,n=1,n=2,n=101,n=56521,n=1,n=4,n=1,n=6,n=3,n=1,ou=Registrations,o=rA`)
X.SetN(`11`)
X.SetASN1Notation(`{iso(1) org(3) dod(6) internet(1) private(4) enterprise(1) 56521 101 2 1 11}`)
X.SetDotNotation(`1.3.6.1.4.1.56521.2.1.11`)
X.SetCreateTime(`19860110120110Z`)

fmt.Printf("%s\n", X.ObjectClass())
Output:

x660SubArc

func (SubArc) Range

func (r SubArc) Range() string

Range returns the string registrationRange value assigned to the receiver, or a zero string if unset.

func (SubArc) RangeGetFunc

func (r SubArc) RangeGetFunc(getfunc GetOrSetFunc) (any, error)

RangeGetFunc processes the R_Range field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) RightArc

func (r SubArc) RightArc() string

RightArc returns the string rightArc DN value assigned to the receiver, or a zero string if unset.

func (SubArc) RightArcGetFunc

func (r SubArc) RightArcGetFunc(getfunc GetOrSetFunc) (any, error)

RightArcGetFunc processes the R_RightArc field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (*SubArc) SetASN1Notation

func (r *SubArc) SetASN1Notation(X any, setfunc ...GetOrSetFunc) error

SetASN1Notation assigns the string value to the receiver's R_ASN1Not field.

func (*SubArc) SetAdditionalIdentifier

func (r *SubArc) SetAdditionalIdentifier(X any, setfunc ...GetOrSetFunc) error

SetAdditionalIdentifier appends one or more string slice values to the receiver's R_AddlId field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*SubArc) SetCombinedCurrentAuthority

func (r *SubArc) SetCombinedCurrentAuthority(c *CurrentAuthority)

SetCombinedCurrentAuthority assigns a non-nil instance of *CurrentAuthority to the receiver's R_CAuthy field. This is only to be used in scenarios that leverage the so-called "Combined Entries" technique, and is generally only recommended for tiny and/or sparse implementations of draft-coretta-x660-ldap.

func (*SubArc) SetCombinedFirstAuthority

func (r *SubArc) SetCombinedFirstAuthority(c *FirstAuthority)

SetCombinedFirstAuthority assigns a non-nil instance of *FirstAuthority to the receiver's R_CAuthy field. This is only to be used in scenarios that leverage the so-called "Combined Entries" technique, and is generally only recommended for tiny and/or sparse implementations of draft-coretta-x660-ldap.

func (*SubArc) SetCombinedSponsor

func (r *SubArc) SetCombinedSponsor(c *Sponsor)

SetCombinedSponsor assigns a non-nil instance of *Sponsor to the receiver's R_SAuthy field. This is only to be used in scenarios that leverage the so-called "Combined Entries" technique, and is generally only recommended for tiny and/or sparse implementations of draft-coretta-x660-ldap. Note this will only have any effect when the underlying receiver instance is *SubArc.

func (*SubArc) SetCreateTime

func (r *SubArc) SetCreateTime(X any, setfunc ...GetOrSetFunc) error

SetCreateTime assigns a string-based generalizedTime value instance to the receiver's R_Created field.

func (*SubArc) SetCurrentAuthority

func (r *SubArc) SetCurrentAuthority(X any, setfunc ...GetOrSetFunc) error

SetCurrentAuthority appends one or more string slice values to the receiver's R_CAuthyDN field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*SubArc) SetDN

func (r *SubArc) SetDN(X any, setfunc ...GetOrSetFunc) error

SetDN assigns the string value to the receiver's R_DN field.

Example (WithGetOrSetFunc2D)
var X *SubArc = new(SubArc)
X.SetDotNotation(`1.3.6.1.4.1.56521.101.2.1.11`)
X.SetDUAConfig(&DUAConfig{
	Registrations:  []string{`ou=Registrations,o=rA`},
	DirectoryModel: TwoDimensional,
})

if err := X.SetDN(X.DotNotation(), DotNotToDN2D); err != nil {
	fmt.Println(err)
	return
}

fmt.Printf("%s\n", X.DN())
Output:

dotNotation=1.3.6.1.4.1.56521.101.2.1.11,ou=Registrations,o=rA
Example (WithGetOrSetFunc3D)
var X *SubArc = new(SubArc)
X.SetDotNotation(`1.3.6.1.4.1.56521.101.2.1.11`)
X.SetDUAConfig(&DUAConfig{
	Registrations:  []string{`ou=Registrations,o=rA`},
	DirectoryModel: ThreeDimensional,
})

if err := X.SetDN(X.DotNotation(), DotNotToDN3D); err != nil {
	fmt.Println(err)
	return
}

fmt.Printf("%s\n", X.DN())
Output:

n=11,n=1,n=2,n=101,n=56521,n=1,n=4,n=1,n=6,n=3,n=1,ou=Registrations,o=rA

func (*SubArc) SetDUAConfig

func (r *SubArc) SetDUAConfig(d *DUAConfig)

SetDUAConfig assigns the input *DUAConfig (d) to the receiver's R_DUAConfig struct field.

func (*SubArc) SetDescription

func (r *SubArc) SetDescription(X any, setfunc ...GetOrSetFunc) error

SetDescription assigns the string value to the receiver's R_Desc field.

func (*SubArc) SetDiscloseTo

func (r *SubArc) SetDiscloseTo(X any, setfunc ...GetOrSetFunc) error

SetDiscloseTo appends one or more string slice DN values to the receiver's R_DiscloseTo field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*SubArc) SetDotNotation

func (r *SubArc) SetDotNotation(X any, setfunc ...GetOrSetFunc) error

SetDotNotation assigns the string value to the receiver's R_DotNot field.

Example (WithGetOrSetFunc2D)
var X *SubArc = new(SubArc)
//var X Registration = new(SubArc)
X.SetDN(`dotNotation=1.3.6.1.4.1.56521.101.2.1.11,ou=Registrations,o=rA`)
X.SetDUAConfig(&DUAConfig{
	Registrations:  []string{`ou=Registrations,o=rA`},
	DirectoryModel: TwoDimensional,
})

if err := X.SetDotNotation(X.DN(), DNToDotNot2D); err != nil {
	fmt.Println(err)
	return
}

fmt.Printf("%s\n", X.DotNotation())
Output:

1.3.6.1.4.1.56521.101.2.1.11
Example (WithGetOrSetFunc3D)
var X *SubArc = new(SubArc)
//var X Registration = new(SubArc)
X.SetDN(`n=11,n=1,n=2,n=101,n=56521,n=1,n=4,n=1,n=6,n=3,n=1,ou=Registrations,o=rA`)
X.SetDUAConfig(&DUAConfig{
	Registrations:  []string{`ou=Registrations,o=rA`},
	DirectoryModel: ThreeDimensional,
})

if err := X.SetDotNotation(X.DN(), DNToDotNot3D); err != nil {
	fmt.Println(err)
	return
}

fmt.Printf("%s\n", X.DotNotation())
Output:

1.3.6.1.4.1.56521.101.2.1.11

func (*SubArc) SetFinalArc

func (r *SubArc) SetFinalArc(X any, setfunc ...GetOrSetFunc) error

SetFinalArc assigns the string value to the receiver's R_FinalArc field.

func (*SubArc) SetFirstArc

func (r *SubArc) SetFirstArc(X any, setfunc ...GetOrSetFunc) error

SetFirstArc assigns the string value to the receiver's R_FirstArc field.

func (*SubArc) SetFirstAuthority

func (r *SubArc) SetFirstAuthority(X any, setfunc ...GetOrSetFunc) error

SetFirstAuthority appends one or more string slice DN values to the receiver's R_FAuthyDN field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*SubArc) SetFrozen

func (r *SubArc) SetFrozen(X any, setfunc ...GetOrSetFunc) error

SetFrozen assigns the provided boolean value to the receiver's R_Frozen field.

func (*SubArc) SetIRI

func (r *SubArc) SetIRI(X any, setfunc ...GetOrSetFunc) error

SetIRI appends one or more string slice DN values to the receiver's R_IRI field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*SubArc) SetIdentifier

func (r *SubArc) SetIdentifier(X any, setfunc ...GetOrSetFunc) error

SetIdentifier assigns the string value to the receiver's R_Id field.

func (*SubArc) SetInfo

func (r *SubArc) SetInfo(X any, setfunc ...GetOrSetFunc) error

SetInfo assigns one or more string slice values to the receiver's R_Info field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*SubArc) SetLeafNode

func (r *SubArc) SetLeafNode(X any, setfunc ...GetOrSetFunc) error

SetLeafNode assigns the provided boolean value to the receiver's R_LeafNode field.

func (*SubArc) SetLeftArc

func (r *SubArc) SetLeftArc(X any, setfunc ...GetOrSetFunc) error

SetLeftArc assigns the string value to the receiver's R_LeftArc field.

func (*SubArc) SetLongArc

func (r *SubArc) SetLongArc(X any, setfunc ...GetOrSetFunc) error

SetLongArc assigns one or more string slice values to the receiver's R_LongArc field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*SubArc) SetModifyTime

func (r *SubArc) SetModifyTime(X any, setfunc ...GetOrSetFunc) error

SetModifyTime appends one or more instances of string-based generalizedTime value to the receiver's R_Modified field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*SubArc) SetN

func (r *SubArc) SetN(X any, setfunc ...GetOrSetFunc) error

SetN assigns the string value to the receiver's R_N field.

func (*SubArc) SetNameAndNumberForm

func (r *SubArc) SetNameAndNumberForm(X any, setfunc ...GetOrSetFunc) error

SetNameAndNumberForm assigns the string value to the receiver's R_NaNF field.

func (*SubArc) SetRange

func (r *SubArc) SetRange(X any, setfunc ...GetOrSetFunc) error

SetRange assigns a string value, which can be any unsigned number OR a negative -1.

func (*SubArc) SetRightArc

func (r *SubArc) SetRightArc(X any, setfunc ...GetOrSetFunc) error

SetRightArc assigns the string value to the receiver's R_RightArc field.

func (*SubArc) SetSponsor

func (r *SubArc) SetSponsor(X any, setfunc ...GetOrSetFunc) error

SetSponsor appends one or more string slice DN values to the receiver's R_SAuthyDN field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*SubArc) SetStatus

func (r *SubArc) SetStatus(X any, setfunc ...GetOrSetFunc) error

SetStatus assigns a string value to the receiver's R_Status field.

func (*SubArc) SetStdNameForm

func (r *SubArc) SetStdNameForm(X any, setfunc ...GetOrSetFunc) error

SetStdNameForm assigns one or more string slice values to the receiver's R_StdNF field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*SubArc) SetSubArc

func (r *SubArc) SetSubArc(X any, setfunc ...GetOrSetFunc) error

SetSubArc appends one or more string DN values to the receiver's R_SubArc field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*SubArc) SetSupArc

func (r *SubArc) SetSupArc(X any, setfunc ...GetOrSetFunc) error

SetSupArc assigns the string value to the receiver's R_SupArc field.

func (*SubArc) SetTopArc

func (r *SubArc) SetTopArc(X any, setfunc ...GetOrSetFunc) error

SetTopArc assigns the string value to the receiver's R_TopArc field.

func (*SubArc) SetURI

func (r *SubArc) SetURI(X any, setfunc ...GetOrSetFunc) error

SetURI assigns one or more string slice values to the receiver's R_URI field. Note that if a slice is passed as X, the destination value will be clobbered.

func (*SubArc) SetUnicodeValue

func (r *SubArc) SetUnicodeValue(X any, setfunc ...GetOrSetFunc) error

SetUnicodeValue appends one or more string slice DN values to the receiver's R_UVal field. Note that if a slice is passed as X, the destination value will be clobbered.

func (SubArc) Sponsor

func (r SubArc) Sponsor() []string

Sponsor returns the string slice values assigned to the receiver, each referencing a specific sponsor (x660Registrant) entry by DN.

func (SubArc) SponsorGetFunc

func (r SubArc) SponsorGetFunc(getfunc GetOrSetFunc) (any, error)

SponsorGetFunc processes the R_SAuthyDN field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) Status

func (r SubArc) Status() string

Status returns a string value that defines the current status of the receiver.

func (SubArc) StatusGetFunc

func (r SubArc) StatusGetFunc(getfunc GetOrSetFunc) (any, error)

StatusGetFunc processes the R_Status field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) StdNameForm

func (r SubArc) StdNameForm() []string

StdNameForm returns the string slice values assigned to the receiver, each defining a standardized name form assigned to the registration.

func (SubArc) StdNameFormGetFunc

func (r SubArc) StdNameFormGetFunc(getfunc GetOrSetFunc) (any, error)

StdNameFormGetFunc processes the R_StdNF field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) SubArc

func (r SubArc) SubArc() []string

SubArc returns zero or more string DN values, each describing a 'subArc' value assigned to the receiver.

func (SubArc) SubArcGetFunc

func (r SubArc) SubArcGetFunc(getfunc GetOrSetFunc) (any, error)

SubArcGetFunc processes the R_SubArc field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) SupArc

func (r SubArc) SupArc() string

SupArc returns the string supArc DN value assigned to the receiver, or a zero string if unset.

func (SubArc) SupArcGetFunc

func (r SubArc) SupArcGetFunc(getfunc GetOrSetFunc) (any, error)

SupArcGetFunc processes the R_SupArc field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) TopArc

func (r SubArc) TopArc() string

TopArc returns the string topArc DN value assigned to the receiver, or a zero string if unset.

func (SubArc) TopArcGetFunc

func (r SubArc) TopArcGetFunc(getfunc GetOrSetFunc) (any, error)

TopArcGetFunc processes the R_TopArc field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) URI

func (r SubArc) URI() []string

URI returns the string slice values assigned to the receiver, each defining a uniform resource identifier assigned to the registration.

func (SubArc) URIGetFunc

func (r SubArc) URIGetFunc(getfunc GetOrSetFunc) (any, error)

URIGetFunc processes the R_URI field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) UnicodeValue

func (r SubArc) UnicodeValue() []string

UnicodeValue returns the string slice values assigned to the receiver, each defining a unicodeValue assigned to the registration.

func (SubArc) UnicodeValueGetFunc

func (r SubArc) UnicodeValueGetFunc(getfunc GetOrSetFunc) (any, error)

UnicodeValueGetFunc processes the R_UVal field through the provided GetOrSetFunc instance, returning an interface value alongside an error.

func (SubArc) Unmarshal

func (r SubArc) Unmarshal() map[string][]string

Unmarshal transports values from the receiver into an instance of map[string][]string, which can subsequently be fed to go-ldap's NewEntry function.

Example
var X *SubArc = new(SubArc)
X.SetDN(`n=11,n=1,n=2,n=101,n=56521,n=1,n=4,n=1,n=6,n=3,n=1,ou=Registrations,o=rA`)
X.SetN(`11`)
X.SetASN1Notation(`{iso(1) org(3) dod(6) internet(1) private(4) enterprise(1) 56521 101 2 1 11}`)

m := X.Unmarshal()
fmt.Printf("%s\n", m[`asn1Notation`][0])
Output:

{iso(1) org(3) dod(6) internet(1) private(4) enterprise(1) 56521 101 2 1 11}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL