-- Module DirectoryAbstractService (X.511 TC2:08/1997) -- See also ITU-T X.511 (1997) Technical Cor. 2 (02/2001) -- See also the index of all ASN.1 assignments needed in this document DirectoryAbstractService {joint-iso-itu-t ds(5) module(1) directoryAbstractService(2) 3} DEFINITIONS ::= BEGIN -- EXPORTS All -- The types and values defined in this module are exported for use in the other ASN.1 modules contained -- within the Directory Specifications, and for the use of other applications which will use them to access -- Directory services. Other applications may use them for their own purposes, but this will not constrain -- extensions and modifications needed to maintain or improve the Directory service. IMPORTS informationFramework, distributedOperations, authenticationFramework, dap, directoryShadowAbstractService, basicAccessControl, enhancedSecurity, id-at FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 3} AttributeTypeAndValue FROM BasicAccessControl {joint-iso-itu-t ds(5) module(1) basicAccessControl(24) 3} AgreementID FROM DirectoryShadowAbstractService {joint-iso-itu-t ds(5) module(1) directoryShadowAbstractService(15) 4} Attribute, AttributeType, AttributeValue, AttributeValueAssertion, DistinguishedName, Name, RelativeDistinguishedName, SupportedAttributes, ATTRIBUTE, MATCHING-RULE, ContextAssertion, AttributeTypeAssertion, OBJECT-CLASS, RelaxationPolicy FROM InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1) 3} OperationProgress, ReferenceType, Exclusions, AccessPoint, ContinuationReference FROM DistributedOperations {joint-iso-itu-t ds(5) module(1) distributedOperations(3) 3} CertificationPath, SIGNED{}, SIGNATURE{}, ENCRYPTED{}, AlgorithmIdentifier, AttributeCertificationPath FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1) authenticationFramework(7) 3} OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{} FROM EnhancedSecurity {joint-iso-itu-t ds(5) modules(1) enhancedSecurity(28) 1} id-opcode-read, id-opcode-compare, id-opcode-abandon, id-opcode-list, id-opcode-search, id-opcode-addEntry, id-opcode-removeEntry, id-opcode-modifyEntry, id-opcode-modifyDN, id-errcode-abandoned, id-errcode-abandonFailed, id-errcode-attributeError, id-errcode-nameError, id-errcode-referral, id-errcode-securityError, id-errcode-serviceError, id-errcode-updateError FROM DirectoryAccessProtocol {joint-iso-itu-t ds(5) module(1) dap(11) 3} OPERATION, ERROR, Code FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)} emptyUnbind FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t remote-operations(4) useful-definitions(7) version1(0)} InvokeId FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t remote-operations(4) generic-ROS-PDUs(6) version1(0)} --PROTECTED -- FROM Notation { joint-iso-itu-t genericULS (20) modules (1) notation (1) } SPKM-REQ, SPKM-REP-TI, SPKM-ERROR FROM SpkmGssTokens {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) spkm(1) spkmGssTokens(10)}; -- Common data types -- Parameterized type for representing optional signing OPTIONALLY-SIGNED{Type} ::= CHOICE {unsigned Type, signed SIGNED{Type} } CommonArguments ::= SET { serviceControls [30] ServiceControls DEFAULT {}, securityParameters [29] SecurityParameters OPTIONAL, requestor [28] DistinguishedName OPTIONAL, operationProgress [27] OperationProgress DEFAULT {nameResolutionPhase notStarted}, aliasedRDNs [26] INTEGER OPTIONAL, criticalExtensions [25] BIT STRING OPTIONAL, referenceType [24] ReferenceType OPTIONAL, entryOnly [23] BOOLEAN DEFAULT TRUE, nameResolveOnMaste [21] BOOLEAN DEFAULT FALSE, operationContexts [20] ContextSelection OPTIONAL, familyGrouping [19] FamilyGrouping DEFAULT entryOnly } FamilyGrouping ::= ENUMERATED { entryOnly(1), compoundEntry(2), strands(3), multiStrand(4)} CommonResults ::= SET { securityParameters [30] SecurityParameters OPTIONAL, performer [29] DistinguishedName OPTIONAL, aliasDereferenced [28] BOOLEAN DEFAULT FALSE, notification [27] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL } CommonResultsSeq ::= SEQUENCE { securityParameters [30] SecurityParameters OPTIONAL, performer [29] DistinguishedName OPTIONAL, aliasDereferenced [28] BOOLEAN DEFAULT FALSE } ServiceControls ::= SET { options [0] ServiceControlOptions DEFAULT {}, priority [1] INTEGER {low(0), medium(1), high(2)} DEFAULT medium, timeLimit [2] INTEGER OPTIONAL, sizeLimit [3] INTEGER OPTIONAL, scopeOfReferral [4] INTEGER {dmd(0), country(1)} OPTIONAL, attributeSizeLimit [5] INTEGER OPTIONAL, manageDSAITPlaneRef [6] SEQUENCE {dsaName Name, agreementID AgreementID} OPTIONAL, serviceType [7] OBJECT IDENTIFIER OPTIONAL, userClass [8] INTEGER OPTIONAL } ServiceControlOptions ::= BIT STRING { preferChaining(0), chainingProhibited(1), localScope(2), dontUseCopy(3), dontDereferenceAliases(4), subentries(5), copyShallDo(6), partialNameResolution(7), manageDSAIT(8), noSubtypeMatch(9), noSubtypeSelection(10), countFamily(11)} EntryInformationSelection ::= SET { attributes CHOICE {allUserAttributes [0] NULL, select [1] SET OF AttributeType -- empty set implies no attributes are requested } DEFAULT allUserAttributes:NULL, infoTypes [2] INTEGER {attributeTypesOnly(0), attributeTypesAndValues(1)} DEFAULT attributeTypesAndValues, extraAttributes CHOICE {allOperationalAttributes [3] NULL, select [4] SET OF AttributeType} OPTIONAL, contextSelection ContextSelection OPTIONAL, returnContexts BOOLEAN DEFAULT FALSE, familyReturn FamilyReturn DEFAULT {memberSelect contributingEntriesOnly} } ContextSelection ::= CHOICE { allContexts NULL, selectedContexts SET OF TypeAndContextAssertion } TypeAndContextAssertion ::= SEQUENCE { type AttributeType, contextAssertions CHOICE {preference SEQUENCE OF ContextAssertion, all SET OF ContextAssertion} } FamilyReturn ::= SEQUENCE { memberSelect ENUMERATED {contributingEntriesOnly(1), participatingEntriesOnly(2), compoundEntry(3)}, familySelect SEQUENCE SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL } family-information ATTRIBUTE ::= { WITH SYNTAX FamilyEntries USAGE directoryOperation ID id-at-family-information } FamilyEntries ::= SEQUENCE { family-class OBJECT-CLASS.&id, -- structural object class value familyEntries SEQUENCE OF FamilyEntry } FamilyEntry ::= SEQUENCE { rdn RelativeDistinguishedName, information SEQUENCE OF CHOICE {attributeType AttributeType, attribute Attribute}, family-info SEQUENCE SIZE (1..MAX) OF FamilyEntries OPTIONAL } EntryInformation ::= SEQUENCE { name Name, fromEntry BOOLEAN DEFAULT TRUE, information SET SIZE (1..MAX) OF CHOICE {attributeType AttributeType, attribute Attribute} OPTIONAL, incompleteEntry [3] BOOLEAN DEFAULT FALSE, -- not in 1988-edition systems partialNameResolution [4] BOOLEAN DEFAULT FALSE -- not in 1988 or 1993 edition systems -- } Filter ::= CHOICE { item [0] FilterItem, and [1] SET OF Filter, or [2] SET OF Filter, not [3] Filter } FilterItem ::= CHOICE { equality [0] AttributeValueAssertion, substrings [1] SEQUENCE {type ATTRIBUTE.&id({SupportedAttributes}), strings SEQUENCE OF CHOICE {initial [0] ATTRIBUTE.&Type ({SupportedAttributes} {@substrings.type}), any [1] ATTRIBUTE.&Type ({SupportedAttributes} {@substrings.type}), final [2] ATTRIBUTE.&Type ({SupportedAttributes} {@substrings.type}), control Attribute -- Used to specify interpretation of following items }}, greaterOrEqual [2] AttributeValueAssertion, lessOrEqual [3] AttributeValueAssertion, present [4] AttributeType, approximateMatch [5] AttributeValueAssertion, extensibleMatch [6] MatchingRuleAssertion, contextPresent [7] AttributeTypeAssertion } MatchingRuleAssertion ::= SEQUENCE { matchingRule [1] SET SIZE (1..MAX) OF MATCHING-RULE.&id, type [2] AttributeType OPTIONAL, matchValue [3] MATCHING-RULE.&AssertionType (CONSTRAINED BY { -- matchValue must be a value of type specified by the &AssertionType field of -- one of the MATCHING-RULE information objects identified by matchingRule -- }), dnAttributes [4] BOOLEAN DEFAULT FALSE } PagedResultsRequest ::= CHOICE { newRequest SEQUENCE {pageSize INTEGER, sortKeys SEQUENCE SIZE (1..MAX) OF SortKey OPTIONAL, reverse [1] BOOLEAN DEFAULT FALSE, unmerged [2] BOOLEAN DEFAULT FALSE}, queryReference OCTET STRING } SortKey ::= SEQUENCE { type AttributeType, orderingRule MATCHING-RULE.&id OPTIONAL } SecurityParameters ::= SET { certification-path [0] CertificationPath OPTIONAL, name [1] DistinguishedName OPTIONAL, time [2] Time OPTIONAL, random [3] BIT STRING OPTIONAL, target [4] ProtectionRequest OPTIONAL, response [5] BIT STRING OPTIONAL, operationCode [6] Code OPTIONAL, attributeCertificationPath [7] AttributeCertificationPath OPTIONAL, errorProtection [8] ErrorProtectionRequest OPTIONAL, errorCode [9] Code OPTIONAL } ProtectionRequest ::= INTEGER { none(0), signed(1), encrypted(2), signed-encrypted(3)} Time ::= CHOICE {utcTime UTCTime, generalizedTime GeneralizedTime } ErrorProtectionRequest ::= INTEGER { none(0), signed(1), encrypted(2), signed-encrypted(3)} -- Bind and unbind operations directoryBind OPERATION ::= { ARGUMENT DirectoryBindArgument RESULT DirectoryBindResult ERRORS {directoryBindError} } DirectoryBindArgument ::= SET { credentials [0] Credentials OPTIONAL, versions [1] Versions DEFAULT {v1} } Credentials ::= CHOICE { simple [0] SimpleCredentials, strong [1] StrongCredentials, externalProcedure [2] EXTERNAL, spkm [3] SpkmCredentials } SimpleCredentials ::= SEQUENCE { name [0] DistinguishedName, validity [1] SET {time1 [0] CHOICE {utc UTCTime, gt GeneralizedTime} OPTIONAL, time2 [1] CHOICE {utc UTCTime, gt GeneralizedTime} OPTIONAL, random1 [2] BIT STRING OPTIONAL, random2 [3] BIT STRING OPTIONAL}, password [2] CHOICE {unprotected OCTET STRING, protected SIGNATURE{OCTET STRING}} OPTIONAL } StrongCredentials ::= SET { certification-path [0] CertificationPath OPTIONAL, bind-token [1] Token, name [2] DistinguishedName OPTIONAL, attributeCertificationPath [3] AttributeCertificationPath OPTIONAL } SpkmCredentials ::= CHOICE {req [0] SPKM-REQ, rep [1] SPKM-REP-TI } Token ::= SIGNED {SEQUENCE {algorithm [0] AlgorithmIdentifier, name [1] DistinguishedName, time [2] Time, random [3] BIT STRING, response [4] BIT STRING OPTIONAL, bindIntAlgorithm [5] SEQUENCE SIZE (1..MAX) OF AlgorithmIdentifier OPTIONAL, bindIntKeyInfo [6] BindKeyInfo OPTIONAL, bindConfAlgorithm [7] SEQUENCE SIZE (1..MAX) OF AlgorithmIdentifier OPTIONAL, bindConfKeyInfo [8] BindKeyInfo OPTIONAL}} Versions ::= BIT STRING {v1(0), v2(1)} DirectoryBindResult ::= DirectoryBindArgument directoryBindError ERROR ::= { PARAMETER OPTIONALLY-PROTECTED {SET {versions [0] Versions DEFAULT {v1}, error CHOICE {serviceError [1] ServiceProblem, securityError [2] SecurityProblem}}} } BindKeyInfo ::= ENCRYPTED{BIT STRING} directoryUnbind OPERATION ::= emptyUnbind -- Operations, arguments, and results read OPERATION ::= { ARGUMENT ReadArgument RESULT ReadResult ERRORS {attributeError | nameError | serviceError | referral | abandoned | securityError} CODE id-opcode-read } ReadArgument ::= OPTIONALLY-PROTECTED {SET {object [0] Name, selection [1] EntryInformationSelection DEFAULT {}, modifyRightsRequest [2] BOOLEAN DEFAULT FALSE, COMPONENTS OF CommonArguments}} ReadResult ::= OPTIONALLY-PROTECTED {SET {entry [0] EntryInformation, modifyRights [1] ModifyRights OPTIONAL, COMPONENTS OF CommonResults}} ModifyRights ::= SET OF SEQUENCE {item CHOICE {entry [0] NULL, attribute [1] AttributeType, value [2] AttributeValueAssertion}, permission [3] BIT STRING {add(0), remove(1), rename(2), move(3)} } compare OPERATION ::= { ARGUMENT CompareArgument RESULT CompareResult ERRORS {attributeError | nameError | serviceError | referral | abandoned | securityError} CODE id-opcode-compare } CompareArgument ::= OPTIONALLY-PROTECTED {SET {object [0] Name, purported [1] AttributeValueAssertion, COMPONENTS OF CommonArguments}} CompareResult ::= OPTIONALLY-PROTECTED {SET {name Name OPTIONAL, matched [0] BOOLEAN, fromEntry [1] BOOLEAN DEFAULT TRUE, matchedSubtype [2] AttributeType OPTIONAL, COMPONENTS OF CommonResults}} abandon OPERATION ::= { ARGUMENT AbandonArgument RESULT AbandonResult ERRORS {abandonFailed} CODE id-opcode-abandon } AbandonArgument ::= OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID [0] InvokeId}} AbandonResult ::= CHOICE { null NULL, information OPTIONALLY-PROTECTED-SEQ{SEQUENCE {invokeID InvokeId, COMPONENTS OF CommonResultsSeq }} } list OPERATION ::= { ARGUMENT ListArgument RESULT ListResult ERRORS {nameError | serviceError | referral | abandoned | securityError} CODE id-opcode-list } ListArgument ::= OPTIONALLY-PROTECTED {SET {object [0] Name, pagedResults [1] PagedResultsRequest OPTIONAL, listFamily [2] BOOLEAN DEFAULT FALSE, COMPONENTS OF CommonArguments}} ListResult ::= OPTIONALLY-PROTECTED {CHOICE {listInfo SET {name Name OPTIONAL, subordinates [1] SET OF SEQUENCE {rdn RelativeDistinguishedName, aliasEntry [0] BOOLEAN DEFAULT FALSE, fromEntry [1] BOOLEAN DEFAULT TRUE }, partialOutcomeQualifier [2] PartialOutcomeQualifier OPTIONAL, COMPONENTS OF CommonResults}, uncorrelatedListInfo [0] SET OF ListResult}} PartialOutcomeQualifier ::= SET { limitProblem [0] LimitProblem OPTIONAL, unexplored [1] SET SIZE (1..MAX) OF ContinuationReference OPTIONAL, unavailableCriticalExtensions [2] BOOLEAN DEFAULT FALSE, unknownErrors [3] SET SIZE (1..MAX) OF ABSTRACT-SYNTAX.&Type OPTIONAL, queryReference [4] OCTET STRING OPTIONAL, overspecFilter [5] Filter OPTIONAL, notification [6] SEQUENCE SIZE (1..MAX) OF Attribute OPTIONAL, entryCount CHOICE {bestEstimate [7] INTEGER, lowEstimate [8] INTEGER} OPTIONAL } LimitProblem ::= INTEGER { timeLimitExceeded(0), sizeLimitExceeded(1), administrativeLimitExceeded(2) } search OPERATION ::= { ARGUMENT SearchArgument RESULT SearchResult ERRORS {attributeError | nameError | serviceError | referral | abandoned | securityError} CODE id-opcode-search } SearchArgument ::= OPTIONALLY-PROTECTED {SET {baseObject [0] Name, subset [1] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)} DEFAULT baseObject, filter [2] Filter DEFAULT and:{}, searchAliases [3] BOOLEAN DEFAULT TRUE, selection [4] EntryInformationSelection DEFAULT {}, pagedResults [5] PagedResultsRequest OPTIONAL, matchedValuesOnly [6] BOOLEAN DEFAULT FALSE, extendedFilter [7] Filter OPTIONAL, checkOverspecified [8] BOOLEAN DEFAULT FALSE, relaxation [9] RelaxationPolicy OPTIONAL, extendedArea [10] INTEGER OPTIONAL, hierarchySelections [11] HierarchySelections DEFAULT {self}, searchControlOptions [12] SearchControlOptions DEFAULT {searchAliases}, COMPONENTS OF CommonArguments}} HierarchySelections ::= BIT STRING { self(0), children(1), parent(2), hierarchy(3), top(4), subtree(5), siblings(6), siblingChildren(7), siblingSubtree(8), all(9)} SearchControlOptions ::= BIT STRING { searchAliases(0), matchedValuesOnly(1), checkOverspecified(2), performExactly(3), includeAllAreas(4), noSystemRelaxation(5), dnAttribute(6), matchOnResidualName(7), entryCount(8), useSubset(9), separateFamilyMembers(10), searchFamily(11)} SearchResult ::= OPTIONALLY-PROTECTED {CHOICE {searchInfo SET {name Name OPTIONAL, entries [0] SET OF EntryInformation, partialOutcomeQualifier [2] PartialOutcomeQualifier OPTIONAL, altMatching [3] BOOLEAN DEFAULT FALSE, COMPONENTS OF CommonResults}, uncorrelatedSearchInfo [0] SET OF SearchResult}} addEntry OPERATION ::= { ARGUMENT AddEntryArgument RESULT AddEntryResult ERRORS {attributeError | nameError | serviceError | referral | securityError | updateError} CODE id-opcode-addEntry } AddEntryArgument ::= OPTIONALLY-PROTECTED {SET {object [0] Name, entry [1] SET OF Attribute, targetSystem [2] AccessPoint OPTIONAL, COMPONENTS OF CommonArguments}} AddEntryResult ::= CHOICE { null NULL, information OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}} } removeEntry OPERATION ::= { ARGUMENT RemoveEntryArgument RESULT RemoveEntryResult ERRORS {nameError | serviceError | referral | securityError | updateError} CODE id-opcode-removeEntry } RemoveEntryArgument ::= OPTIONALLY-PROTECTED{SET {object [0] Name, COMPONENTS OF CommonArguments}} RemoveEntryResult ::= CHOICE { null NULL, information OPTIONALLY-PROTECTED-SEQ{SEQUENCE {COMPONENTS OF CommonResultsSeq}} } modifyEntry OPERATION ::= { ARGUMENT ModifyEntryArgument RESULT ModifyEntryResult ERRORS {attributeError | nameError | serviceError | referral | securityError | updateError} CODE id-opcode-modifyEntry } ModifyEntryArgument ::= OPTIONALLY-PROTECTED {SET {object [0] Name, changes [1] SEQUENCE OF EntryModification, selection [2] EntryInformationSelection OPTIONAL, COMPONENTS OF CommonArguments}} ModifyEntryResult ::= CHOICE { null NULL, information OPTIONALLY-PROTECTED-SEQ{SEQUENCE {entry [0] EntryInformation OPTIONAL, COMPONENTS OF CommonResultsSeq }} } EntryModification ::= CHOICE { addAttribute [0] Attribute, removeAttribute [1] AttributeType, addValues [2] Attribute, removeValues [3] Attribute, alterValues [4] AttributeTypeAndValue, resetValue [5] AttributeType } modifyDN OPERATION ::= { ARGUMENT ModifyDNArgument RESULT ModifyDNResult ERRORS {nameError | serviceError | referral | securityError | updateError} CODE id-opcode-modifyDN } ModifyDNArgument ::= OPTIONALLY-PROTECTED {SET {object [0] DistinguishedName, newRDN [1] RelativeDistinguishedName, deleteOldRDN [2] BOOLEAN DEFAULT FALSE, newSuperior [3] DistinguishedName OPTIONAL, COMPONENTS OF CommonArguments}} ModifyDNResult ::= CHOICE { null NULL, information OPTIONALLY-PROTECTED-SEQ{SEQUENCE {newRDN RelativeDistinguishedName, COMPONENTS OF CommonResultsSeq }} } -- Errors and parameters abandoned ERROR ::= { -- not literally an "error" PARAMETER OPTIONALLY-PROTECTED {SET {COMPONENTS OF CommonResults}} CODE id-errcode-abandoned } abandonFailed ERROR ::= { PARAMETER OPTIONALLY-PROTECTED {SET {problem [0] AbandonProblem, operation [1] InvokeId, COMPONENTS OF CommonResults}} CODE id-errcode-abandonFailed } AbandonProblem ::= INTEGER {noSuchOperation(1), tooLate(2), cannotAbandon(3)} attributeError ERROR ::= { PARAMETER OPTIONALLY-PROTECTED {SET {object [0] Name, problems [1] SET OF SEQUENCE {problem [0] AttributeProblem, type [1] AttributeType, value [2] AttributeValue OPTIONAL}, COMPONENTS OF CommonResults}} CODE id-errcode-attributeError } AttributeProblem ::= INTEGER { noSuchAttributeOrValue(1), invalidAttributeSyntax(2), undefinedAttributeType(3), inappropriateMatching(4), constraintViolation(5), attributeOrValueAlreadyExists(6), contextViolation(7)} nameError ERROR ::= { PARAMETER OPTIONALLY-PROTECTED {SET {problem [0] NameProblem, matched [1] Name, COMPONENTS OF CommonResults}} CODE id-errcode-nameError } NameProblem ::= INTEGER { noSuchObject(1), aliasProblem(2), invalidAttributeSyntax(3), aliasDereferencingProblem(4), contextProblem(5)} referral ERROR ::= { -- not literally an "error" PARAMETER OPTIONALLY-PROTECTED {SET {candidate [0] ContinuationReference, COMPONENTS OF CommonResults}} CODE id-errcode-referral } securityError ERROR ::= { PARAMETER OPTIONALLY-PROTECTED {SET {problem [0] SecurityProblem, spkmInfo [1] SPKM-ERROR, COMPONENTS OF CommonResults}} CODE id-errcode-securityError } SecurityProblem ::= INTEGER { inappropriateAuthentication(1), invalidCredentials(2), insufficientAccessRights(3), invalidSignature(4), protectionRequired(5), noInformation(6), blockedCredentials(7), invalidQOPMatch(8), spkmError(9) } serviceError ERROR ::= { PARAMETER OPTIONALLY-PROTECTED {SET {problem [0] ServiceProblem, COMPONENTS OF CommonResults}} CODE id-errcode-serviceError } ServiceProblem ::= INTEGER { busy(1), unavailable(2), unwillingToPerform(3), chainingRequired(4), unableToProceed(5), invalidReference(6), timeLimitExceeded(7), administrativeLimitExceeded(8), loopDetected(9), unavailableCriticalExtension(10), outOfScope(11), ditError(12), invalidQueryReference(13), requestedServiceNotAvailable(14), relaxationNotSupported(15), unavailableRelaxationLevel(16), unsupportedMatchingUse(17), unmatchedKeyAttributes(18), ambiguousKeyAttributes(19)} updateError ERROR ::= { PARAMETER OPTIONALLY-PROTECTED {SET {problem [0] UpdateProblem, attributeInfo [1] SET SIZE (1..MAX) OF CHOICE {attributeType AttributeType, attribute Attribute} OPTIONAL, COMPONENTS OF CommonResults}} CODE id-errcode-updateError } UpdateProblem ::= INTEGER { namingViolation(1), objectClassViolation(2), notAllowedOnNonLeaf(3), notAllowedOnRDN(4), entryAlreadyExists(5), affectsMultipleDSAs(6), objectClassModificationProhibited(7), notAncestor(8), parentNotAncestor(9), hierarchyRuleViolation(10), familyRuleViolation(11)} id-at-family-information OBJECT IDENTIFIER ::= {id-at 64} END -- DirectoryAbstractService -- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D