-- Module InformationFramework (X.501 TC2:08/1997) -- See also ITU-T X.501 (1997) Technical Cor. 2 (02/2001) -- See also the index of all ASN.1 assignments needed in this document InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1) 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 id-oc, id-at, id-mr, id-oa, id-sc, id-ar, id-nf, selectedAttributeTypes, directoryAbstractService, upperBounds FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 3} commonName, generalizedTimeMatch, generalizedTimeOrderingMatch, booleanMatch, integerMatch, integerOrderingMatch, objectIdentifierFirstComponentMatch, integerFirstComponentMatch, DirectoryString{} FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1) selectedAttributeTypes(5) 3} TypeAndContextAssertion, ServiceControlOptions, SearchControlOptions, HierarchySelections, FamilyGrouping, FamilyReturn FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1) directoryAbstractService(2) 3} ub-search FROM UpperBounds {joint-iso-itu-t ds(5) module(1) upperBounds(10) 3}; -- attribute data types Attribute ::= SEQUENCE { type ATTRIBUTE.&id({SupportedAttributes}), values SET SIZE (0..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}{@type}), valuesWithContext SET SIZE (1..MAX) OF SEQUENCE {value ATTRIBUTE.&Type({SupportedAttributes}{@type}), contextList SET SIZE (1..MAX) OF Context} OPTIONAL } AttributeType ::= ATTRIBUTE.&id AttributeValue ::= ATTRIBUTE.&Type Context ::= SEQUENCE { contextType CONTEXT.&id({SupportedContexts}), contextValues SET SIZE (1..MAX) OF CONTEXT.&Type({SupportedContexts}{@contextType}), fallback BOOLEAN DEFAULT FALSE } AttributeValueAssertion ::= SEQUENCE { type ATTRIBUTE.&id({SupportedAttributes}), assertion ATTRIBUTE.&equality-match.&AssertionType ({SupportedAttributes}{@type}), assertedContexts CHOICE {allContexts [0] NULL, selectedContexts [1] SET SIZE (1..MAX) OF ContextAssertion } OPTIONAL } ContextAssertion ::= SEQUENCE { contextType CONTEXT.&id({SupportedContexts}), contextValues SET SIZE (1..MAX) OF CONTEXT.&Assertion({SupportedContexts}{@contextType}) } AttributeTypeAssertion ::= SEQUENCE { type ATTRIBUTE.&id({SupportedAttributes}), assertedContexts SEQUENCE SIZE (1..MAX) OF ContextAssertion OPTIONAL } -- Definition of the following information object set is deferred, perhaps to standardized -- profiles or to protocol implementation conformance statements. The set is required to -- specify a table constraint on the values component of Attribute, the value component -- of AttributeTypeAndValue, and the assertion component of AttributeValueAssertion. SupportedAttributes ATTRIBUTE ::= {objectClass | aliasedEntryName, ...} -- Definition of the following information object set is deferred, perhaps to standardized -- profiles or to protocol implementation conformance statements. The set is required to -- specify a table constraint on the context specifications SupportedContexts CONTEXT ::= {...} -- naming data types Name ::= CHOICE { -- only one possibility for now --rdnSequence RDNSequence } RDNSequence ::= SEQUENCE OF RelativeDistinguishedName DistinguishedName ::= RDNSequence RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndDistinguishedValue AttributeTypeAndDistinguishedValue ::= SEQUENCE { type ATTRIBUTE.&id({SupportedAttributes}), value ATTRIBUTE.&Type({SupportedAttributes}{@type}), primaryDistinguished BOOLEAN DEFAULT TRUE, valuesWithContext SET SIZE (1..MAX) OF SEQUENCE {distingAttrValue [0] ATTRIBUTE.&Type({SupportedAttributes}{@type}) OPTIONAL, contextList SET SIZE (1..MAX) OF Context} OPTIONAL } -- subtree data types SubtreeSpecification ::= SEQUENCE { base [0] LocalName DEFAULT {}, COMPONENTS OF ChopSpecification, specificationFilter [4] Refinement OPTIONAL } -- empty sequence specifies whole administrative area LocalName ::= RDNSequence ChopSpecification ::= SEQUENCE { specificExclusions [1] SET SIZE (1..MAX) OF CHOICE {chopBefore [0] LocalName, chopAfter [1] LocalName} OPTIONAL, minimum [2] BaseDistance DEFAULT 0, maximum [3] BaseDistance OPTIONAL } BaseDistance ::= INTEGER(0..MAX) Refinement ::= CHOICE { item [0] OBJECT-CLASS.&id, and [1] SET OF Refinement, or [2] SET OF Refinement, not [3] Refinement } -- OBJECT-CLASS information object class specification OBJECT-CLASS ::= CLASS { &Superclasses OBJECT-CLASS OPTIONAL, &kind ObjectClassKind DEFAULT structural, &MandatoryAttributes ATTRIBUTE OPTIONAL, &OptionalAttributes ATTRIBUTE OPTIONAL, &id OBJECT IDENTIFIER UNIQUE } WITH SYNTAX { [SUBCLASS OF &Superclasses] [KIND &kind] [MUST CONTAIN &MandatoryAttributes] [MAY CONTAIN &OptionalAttributes] ID &id } ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)} -- object classes top OBJECT-CLASS ::= { KIND abstract MUST CONTAIN {objectClass} ID id-oc-top } alias OBJECT-CLASS ::= { SUBCLASS OF {top} MUST CONTAIN {aliasedEntryName} ID id-oc-alias } parent OBJECT-CLASS ::= {KIND abstract ID id-oc-parent } child OBJECT-CLASS ::= {KIND auxiliary ID id-oc-child } -- ATTRIBUTE information object class specification ATTRIBUTE ::= CLASS { &derivation ATTRIBUTE OPTIONAL, &Type OPTIONAL, -- either &Type or &derivation required &equality-match MATCHING-RULE OPTIONAL, &ordering-match MATCHING-RULE OPTIONAL, &substrings-match MATCHING-RULE OPTIONAL, &single-valued BOOLEAN DEFAULT FALSE, &collective BOOLEAN DEFAULT FALSE, -- operational extensions &no-user-modification BOOLEAN DEFAULT FALSE, &usage AttributeUsage DEFAULT userApplications, &id OBJECT IDENTIFIER UNIQUE } WITH SYNTAX { [SUBTYPE OF &derivation] [WITH SYNTAX &Type] [EQUALITY MATCHING RULE &equality-match] [ORDERING MATCHING RULE &ordering-match] [SUBSTRINGS MATCHING RULE &substrings-match] [SINGLE VALUE &single-valued] [COLLECTIVE &collective] [NO USER MODIFICATION &no-user-modification] [USAGE &usage] ID &id } AttributeUsage ::= ENUMERATED { userApplications(0), directoryOperation(1), distributedOperation(2), dSAOperation(3)} -- attributes objectClass ATTRIBUTE ::= { WITH SYNTAX OBJECT IDENTIFIER EQUALITY MATCHING RULE objectIdentifierMatch ID id-at-objectClass } aliasedEntryName ATTRIBUTE ::= { WITH SYNTAX DistinguishedName EQUALITY MATCHING RULE distinguishedNameMatch SINGLE VALUE TRUE ID id-at-aliasedEntryName } -- MATCHING-RULE information object class specification MATCHING-RULE ::= CLASS { &ParentMatchingRules MATCHING-RULE.&id OPTIONAL, &AssertionType OPTIONAL, &uniqueMatchIndicator ATTRIBUTE.&id OPTIONAL, &id OBJECT IDENTIFIER UNIQUE } WITH SYNTAX { [PARENT &ParentMatchingRules] [SYNTAX &AssertionType] [UNIQUE-MATCH-INDICATOR &uniqueMatchIndicator] ID &id } -- matching rules objectIdentifierMatch MATCHING-RULE ::= { SYNTAX OBJECT IDENTIFIER ID id-mr-objectIdentifierMatch } distinguishedNameMatch MATCHING-RULE ::= { SYNTAX DistinguishedName ID id-mr-distinguishedNameMatch } MAPPING-BASED-MATCHING{SelectedBy, BOOLEAN:combinable, MappingResult, OBJECT IDENTIFIER:matchingRule} ::= CLASS { &selectBy SelectedBy OPTIONAL, &ApplicableTo ATTRIBUTE, &subtypesIncluded BOOLEAN DEFAULT TRUE, &combinable BOOLEAN(combinable), &mappingResults MappingResult OPTIONAL, &userControl BOOLEAN DEFAULT FALSE, &exclusive BOOLEAN DEFAULT TRUE, &matching-rule MATCHING-RULE.&id(matchingRule), &id OBJECT IDENTIFIER UNIQUE } WITH SYNTAX { [SELECT BY &selectBy] APPLICABLE TO &ApplicableTo [SUBTYPES INCLUDED &subtypesIncluded] COMBINABLE &combinable [MAPPING RESULTS &mappingResults] [USER CONTROL &userControl] [EXCLUSIVE &exclusive] MATCHING RULE &matching-rule ID &id } -- NAME-FORM information object class specification NAME-FORM ::= CLASS { &namedObjectClass OBJECT-CLASS, &MandatoryAttributes ATTRIBUTE, &OptionalAttributes ATTRIBUTE OPTIONAL, &id OBJECT IDENTIFIER UNIQUE } WITH SYNTAX { NAMES &namedObjectClass WITH ATTRIBUTES &MandatoryAttributes [AND OPTIONALLY &OptionalAttributes] ID &id } -- STRUCTURE-RULE class and DIT structure rule data types STRUCTURE-RULE ::= CLASS { &nameForm NAME-FORM, &SuperiorStructureRules STRUCTURE-RULE OPTIONAL, &id RuleIdentifier } WITH SYNTAX { NAME FORM &nameForm [SUPERIOR RULES &SuperiorStructureRules] ID &id } DITStructureRule ::= SEQUENCE { ruleIdentifier RuleIdentifier, -- must be unique within the scope of the subschema nameForm NAME-FORM.&id, superiorStructureRules SET SIZE (1..MAX) OF RuleIdentifier OPTIONAL } RuleIdentifier ::= INTEGER -- CONTENT-RULE class and DIT content rule data types CONTENT-RULE ::= CLASS { &structuralClass OBJECT-CLASS.&id UNIQUE, &Auxiliaries OBJECT-CLASS OPTIONAL, &Mandatory ATTRIBUTE OPTIONAL, &Optional ATTRIBUTE OPTIONAL, &Precluded ATTRIBUTE OPTIONAL } WITH SYNTAX { STRUCTURAL OBJECT-CLASS &structuralClass [AUXILIARY OBJECT-CLASSES &Auxiliaries] [MUST CONTAIN &Mandatory] [MAY CONTAIN &Optional] [MUST-NOT CONTAIN &Precluded] } DITContentRule ::= SEQUENCE { structuralObjectClass OBJECT-CLASS.&id, auxiliaries SET SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL, mandatory [1] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL, optional [2] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL, precluded [3] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL } CONTEXT ::= CLASS { &Type , &Assertion OPTIONAL, &id OBJECT IDENTIFIER UNIQUE }WITH SYNTAX {WITH SYNTAX &Type [ASSERTED AS &Assertion] ID &id } DITContextUse ::= SEQUENCE { attributeType ATTRIBUTE.&id, mandatoryContexts [1] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL, optionalContexts [2] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL } DIT-CONTEXT-USE-RULE ::= CLASS { &attributeType ATTRIBUTE.&id UNIQUE, &Mandatory CONTEXT OPTIONAL, &Optional CONTEXT OPTIONAL } WITH SYNTAX { ATTRIBUTE TYPE &attributeType [MANDATORY CONTEXTS &Mandatory] [OPTIONAL CONTEXTS &Optional] } -- system schema information objects -- object classes subentry OBJECT-CLASS ::= { SUBCLASS OF {top} KIND structural MUST CONTAIN {commonName | subtreeSpecification} ID id-sc-subentry } subentryNameForm NAME-FORM ::= { NAMES subentry WITH ATTRIBUTES {commonName} ID id-nf-subentryNameForm } accessControlSubentry OBJECT-CLASS ::= { KIND auxiliary ID id-sc-accessControlSubentry } collectiveAttributeSubentry OBJECT-CLASS ::= { KIND auxiliary ID id-sc-collectiveAttributeSubentry } contextAssertionSubentry OBJECT-CLASS ::= { KIND auxiliary MUST CONTAIN {contextAssertionDefaults} ID id-sc-contextAssertionSubentry } serviceAdminSubentry OBJECT-CLASS ::= { KIND auxiliary MUST CONTAIN {searchRules} ID id-sc-serviceAdminSubentry } -- attributes createTimestamp ATTRIBUTE ::= { WITH SYNTAX GeneralizedTime -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1 EQUALITY MATCHING RULE generalizedTimeMatch ORDERING MATCHING RULE generalizedTimeOrderingMatch SINGLE VALUE TRUE NO USER MODIFICATION TRUE USAGE directoryOperation ID id-oa-createTimestamp } modifyTimestamp ATTRIBUTE ::= { WITH SYNTAX GeneralizedTime -- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1 EQUALITY MATCHING RULE generalizedTimeMatch ORDERING MATCHING RULE generalizedTimeOrderingMatch SINGLE VALUE TRUE NO USER MODIFICATION TRUE USAGE directoryOperation ID id-oa-modifyTimestamp } subschemaTimestamp ATTRIBUTE ::= { WITH SYNTAX GeneralizedTime -- as per 41.3 b) or c) of ITU-T Rec.X. 680 | ISO/IEC 8824-1 EQUALITY MATCHING RULE generalizedTimeMatch ORDERING MATCHING RULE generalizedTimeOrderingMatch SINGLE VALUE TRUE NO USER MODIFICATION TRUE USAGE directoryOperation ID id-oa-subschemaTimestamp } creatorsName ATTRIBUTE ::= { WITH SYNTAX DistinguishedName EQUALITY MATCHING RULE distinguishedNameMatch SINGLE VALUE TRUE NO USER MODIFICATION TRUE USAGE directoryOperation ID id-oa-creatorsName } modifiersName ATTRIBUTE ::= { WITH SYNTAX DistinguishedName EQUALITY MATCHING RULE distinguishedNameMatch SINGLE VALUE TRUE NO USER MODIFICATION TRUE USAGE directoryOperation ID id-oa-modifiersName } subschemaSubentryList ATTRIBUTE ::= { WITH SYNTAX DistinguishedName EQUALITY MATCHING RULE distinguishedNameMatch SINGLE VALUE TRUE NO USER MODIFICATION TRUE USAGE directoryOperation ID id-oa-subschemaSubentryList } accessControlSubentryList ATTRIBUTE ::= { WITH SYNTAX DistinguishedName EQUALITY MATCHING RULE distinguishedNameMatch NO USER MODIFICATION TRUE USAGE directoryOperation ID id-oa-accessControlSubentryList } collectiveAttributeSubentryList ATTRIBUTE ::= { WITH SYNTAX DistinguishedName EQUALITY MATCHING RULE distinguishedNameMatch NO USER MODIFICATION TRUE USAGE directoryOperation ID id-oa-collectiveAttributeSubentryList } contextDefaultSubentryList ATTRIBUTE ::= { WITH SYNTAX DistinguishedName EQUALITY MATCHING RULE distinguishedNameMatch NO USER MODIFICATION TRUE USAGE directoryOperation ID id-oa-contextDefaultSubentryList } serviceAdminSubentryList ATTRIBUTE ::= { WITH SYNTAX DistinguishedName EQUALITY MATCHING RULE distinguishedNameMatch NO USER MODIFICATION TRUE USAGE directoryOperation ID id-oa-serviceAdminSubentryList } hasSubordinates ATTRIBUTE ::= { WITH SYNTAX BOOLEAN EQUALITY MATCHING RULE booleanMatch SINGLE VALUE TRUE NO USER MODIFICATION TRUE USAGE directoryOperation ID id-oa-hasSubordinates } administrativeRole ATTRIBUTE ::= { WITH SYNTAX OBJECT-CLASS.&id EQUALITY MATCHING RULE objectIdentifierMatch USAGE directoryOperation ID id-oa-administrativeRole } subtreeSpecification ATTRIBUTE ::= { WITH SYNTAX SubtreeSpecification USAGE directoryOperation ID id-oa-subtreeSpecification } collectiveExclusions ATTRIBUTE ::= { WITH SYNTAX OBJECT IDENTIFIER EQUALITY MATCHING RULE objectIdentifierMatch USAGE directoryOperation ID id-oa-collectiveExclusions } contextAssertionDefaults ATTRIBUTE ::= { WITH SYNTAX TypeAndContextAssertion EQUALITY MATCHING RULE objectIdentifierFirstComponentMatch USAGE directoryOperation ID id-oa-contextAssertionDefault } searchRules ATTRIBUTE ::= { WITH SYNTAX SearchRuleDescription EQUALITY MATCHING RULE integerFirstComponentMatch USAGE directoryOperation ID id-oa-searchRules } SearchRuleDescription ::= SEQUENCE { COMPONENTS OF SearchRule, name [28] SET SIZE (1..MAX) OF DirectoryString{ub-search} OPTIONAL, description [29] DirectoryString{ub-search} OPTIONAL, obsolete [30] BOOLEAN DEFAULT FALSE } hierarchyLevel ATTRIBUTE ::= { WITH SYNTAX INTEGER EQUALITY MATCHING RULE integerMatch ORDERING MATCHING RULE integerOrderingMatch SINGLE VALUE TRUE NO USER MODIFICATION TRUE USAGE directoryOperation ID id-oa-hierarchyLevel } hierarchyBelow ATTRIBUTE ::= { WITH SYNTAX BOOLEAN EQUALITY MATCHING RULE booleanMatch SINGLE VALUE TRUE NO USER MODIFICATION TRUE USAGE directoryOperation ID id-oa-hierarchyBelow } hierarchyParent ATTRIBUTE ::= { WITH SYNTAX DistinguishedName EQUALITY MATCHING RULE distinguishedNameMatch SINGLE VALUE TRUE USAGE directoryOperation ID id-oa-hierarchyParent } SearchRule ::= SEQUENCE { COMPONENTS OF SearchRuleId, serviceType [1] OBJECT IDENTIFIER OPTIONAL, userClass [2] INTEGER OPTIONAL, inputAttributeTypes [3] SEQUENCE SIZE (1..MAX) OF RequestAttribute OPTIONAL, attributeCombination [4] AttributeCombination DEFAULT and:{}, outputAttributeTypes [5] SEQUENCE SIZE (1..MAX) OF ResultAttribute OPTIONAL, defaultControls [6] ControlOptions OPTIONAL, mandatoryControls [7] ControlOptions OPTIONAL, searchRuleControls [8] ControlOptions OPTIONAL, familyGrouping [9] FamilyGrouping OPTIONAL, familyReturn [10] FamilyReturn OPTIONAL, relaxation [11] RelaxationPolicy OPTIONAL, additionalControl [12] SEQUENCE SIZE (1..MAX) OF AttributeType OPTIONAL, allowedSubset [13] AllowedSubset DEFAULT '111'B, imposedSubset [14] ImposedSubset OPTIONAL, entryLimit [15] EntryLimit OPTIONAL } SearchRuleId ::= SEQUENCE {id INTEGER, dmdId [0] OBJECT IDENTIFIER } AllowedSubset ::= BIT STRING {baseObject(0), oneLevel(1), wholeSubtree(2)} ImposedSubset ::= ENUMERATED {baseObject(0), oneLevel(1), wholeSubtree(2)} RequestAttribute ::= SEQUENCE { attributeType ATTRIBUTE.&id({SupportedAttributes}), includeSubtypes [0] BOOLEAN DEFAULT FALSE, selectedValues [1] SEQUENCE SIZE (0..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}) OPTIONAL, defaultValues [2] SEQUENCE SIZE (0..MAX) OF SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL, values SEQUENCE OF ATTRIBUTE.&Type ({SupportedAttributes}{@attributeType})} OPTIONAL, contexts [3] SEQUENCE SIZE (0..MAX) OF ContextProfile OPTIONAL, contextCombination [4] ContextCombination DEFAULT and:{}, matchingUse [5] SEQUENCE SIZE (1..MAX) OF MatchingUse OPTIONAL } ContextProfile ::= SEQUENCE { contextType CONTEXT.&id({SupportedContexts}), contextValue SEQUENCE SIZE (1..MAX) OF CONTEXT.&Assertion({SupportedContexts}{@contextType}) OPTIONAL } ContextCombination ::= CHOICE { context [0] CONTEXT.&id, and [1] SEQUENCE OF ContextCombination, or [2] SEQUENCE OF ContextCombination, not [3] ContextCombination } MatchingUse ::= SEQUENCE { restrictionType MATCHING-RESTRICTION.&id({SupportedMatchingRestrictions}), restrictionValue MATCHING-RESTRICTION.&Restriction ({SupportedMatchingRestrictions}{@restrictionType}) } -- Definition of the following information object set is deferred, perhaps to standardized -- profiles or to protocol implementation conformance statements. The set is required to -- specify a table constraint on the components of SupportedMatchingRestrictions SupportedMatchingRestrictions MATCHING-RESTRICTION ::= {...} AttributeCombination ::= CHOICE { attribute [0] AttributeType, and [1] SEQUENCE OF AttributeCombination, or [2] SEQUENCE OF AttributeCombination, not [3] AttributeCombination } ResultAttribute ::= SEQUENCE { attributeType ATTRIBUTE.&id({SupportedAttributes}), outputValues CHOICE {selectedValues SEQUENCE SIZE (1..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}), matchedValuesOnly NULL} OPTIONAL, contexts [0] SEQUENCE SIZE (1..MAX) OF ContextProfile OPTIONAL } OutputValues ::= CHOICE { selectedValues SEQUENCE SIZE (1..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}), matchedValuesOnly NULL } ControlOptions ::= SEQUENCE { serviceControls [0] ServiceControlOptions DEFAULT {}, searchOptions [1] SearchControlOptions DEFAULT {searchAliases}, hierarchyOptions [2] HierarchySelections OPTIONAL } EntryLimit ::= SEQUENCE {default INTEGER, max INTEGER } RelaxationPolicy ::= SEQUENCE { basic [0] MRMapping DEFAULT {}, tightenings [1] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL, relaxations [2] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL, maximum [3] INTEGER OPTIONAL, -- mandatory if tightenings is present minimum [4] INTEGER DEFAULT 1 } MRMapping ::= SEQUENCE { mapping [0] SEQUENCE SIZE (1..MAX) OF Mapping OPTIONAL, substitution [1] SEQUENCE SIZE (1..MAX) OF MRSubstitution OPTIONAL } Mapping ::= SEQUENCE { mappingFunction OBJECT IDENTIFIER (CONSTRAINED BY {-- shall be an-- -- object identifier of a mapping-based matching algorithm -- }), level INTEGER DEFAULT 0 } MRSubstitution ::= SEQUENCE { attribute AttributeType, oldMatchingRule [0] MATCHING-RULE.&id OPTIONAL, newMatchingRule [1] MATCHING-RULE.&id OPTIONAL } SEARCH-RULE ::= CLASS { &dmdId OBJECT IDENTIFIER, &serviceType OBJECT IDENTIFIER OPTIONAL, &userClass INTEGER OPTIONAL, &InputAttributeTypes REQUEST-ATTRIBUTE OPTIONAL, &combination AttributeCombination OPTIONAL, &OutputAttributeTypes RESULT-ATTRIBUTE OPTIONAL, &defaultControls ControlOptions OPTIONAL, &mandatoryControls ControlOptions OPTIONAL, &searchRuleControls ControlOptions OPTIONAL, &familyGrouping FamilyGrouping OPTIONAL, &familyReturn FamilyReturn OPTIONAL, &additionalControl AttributeType OPTIONAL, &relaxation RelaxationPolicy OPTIONAL, &entryLimit EntryLimit OPTIONAL, &allowedSubset AllowedSubset DEFAULT '111'B, &imposedSubset ImposedSubset OPTIONAL, &id INTEGER UNIQUE } WITH SYNTAX { DMD ID &dmdId [SERVICE-TYPE &serviceType] [USER-CLASS &userClass] [INPUT ATTRIBUTES &InputAttributeTypes] [COMBINATION &combination] [OUTPUT ATTRIBUTES &OutputAttributeTypes] [DEFAULT CONTROL &defaultControls] [MANDATORY CONTROL &mandatoryControls] [SEARCH-RULE CONTROL &searchRuleControls] [FAMILY-GROUPING &familyGrouping] [FAMILY-RETURN &familyReturn] [ADDITIONAL CONTROL &additionalControl] [RELAXATION &relaxation] [ALLOWED SUBSET &allowedSubset] [IMPOSED SUBSET &imposedSubset] [ENTRY LIMIT &entryLimit] ID &id } REQUEST-ATTRIBUTE ::= CLASS { &attributeType ATTRIBUTE.&id, &SelectedValues ATTRIBUTE.&Type OPTIONAL, &DefaultValues SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL, values SEQUENCE OF ATTRIBUTE.&Type } OPTIONAL, &contexts SEQUENCE OF ContextProfile OPTIONAL, &contextCombination ContextCombination OPTIONAL, &MatchingUse MatchingUse OPTIONAL, &includeSubtypes BOOLEAN DEFAULT FALSE } WITH SYNTAX { ATTRIBUTE TYPE &attributeType [SELECTED VALUES &SelectedValues] [DEFAULT VALUES &DefaultValues] [CONTEXTS &contexts] [CONTEXT COMBINATION &contextCombination] [MATCHING USE &MatchingUse] [INCLUDE SUBTYPES &includeSubtypes] } RESULT-ATTRIBUTE ::= CLASS { &attributeType ATTRIBUTE.&id, &outputValues OutputValues OPTIONAL, &contexts ContextProfile OPTIONAL } WITH SYNTAX { ATTRIBUTE TYPE &attributeType [OUTPUT VALUES &outputValues] [CONTEXTS &contexts] } MATCHING-RESTRICTION ::= CLASS { &Restriction , &Rules MATCHING-RULE.&id, &id OBJECT IDENTIFIER UNIQUE }WITH SYNTAX {RESTRICTION &Restriction RULES &Rules ID &id } -- object identifier assignments -- object classes id-oc-top OBJECT IDENTIFIER ::= {id-oc 0} id-oc-alias OBJECT IDENTIFIER ::= {id-oc 1} id-oc-parent OBJECT IDENTIFIER ::= {id-oc 28} id-oc-child OBJECT IDENTIFIER ::= {id-oc 29} -- attributes id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0} id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1} -- matching rules id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0} id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1} -- operational attributes id-oa-excludeAllCollectiveAttributes OBJECT IDENTIFIER ::= {id-oa 0} id-oa-createTimestamp OBJECT IDENTIFIER ::= {id-oa 1} id-oa-modifyTimestamp OBJECT IDENTIFIER ::= {id-oa 2} id-oa-creatorsName OBJECT IDENTIFIER ::= {id-oa 3} id-oa-modifiersName OBJECT IDENTIFIER ::= {id-oa 4} id-oa-administrativeRole OBJECT IDENTIFIER ::= {id-oa 5} id-oa-subtreeSpecification OBJECT IDENTIFIER ::= {id-oa 6} id-oa-collectiveExclusions OBJECT IDENTIFIER ::= {id-oa 7} id-oa-subschemaTimestamp OBJECT IDENTIFIER ::= {id-oa 8} id-oa-hasSubordinates OBJECT IDENTIFIER ::= {id-oa 9} id-oa-subschemaSubentryList OBJECT IDENTIFIER ::= {id-oa 10} id-oa-accessControlSubentryList OBJECT IDENTIFIER ::= {id-oa 11} id-oa-collectiveAttributeSubentryList OBJECT IDENTIFIER ::= {id-oa 12} id-oa-contextDefaultSubentryList OBJECT IDENTIFIER ::= {id-oa 13} id-oa-contextAssertionDefault OBJECT IDENTIFIER ::= {id-oa 14} id-oa-serviceAdminSubentryList OBJECT IDENTIFIER ::= {id-oa 15} id-oa-searchRules OBJECT IDENTIFIER ::= {id-oa 16} id-oa-hierarchyLevel OBJECT IDENTIFIER ::= {id-oa 17} id-oa-hierarchyBelow OBJECT IDENTIFIER ::= {id-oa 18} id-oa-hierarchyParent OBJECT IDENTIFIER ::= {id-oa 19} -- subentry classes id-sc-subentry OBJECT IDENTIFIER ::= {id-sc 0} id-sc-accessControlSubentry OBJECT IDENTIFIER ::= {id-sc 1} id-sc-collectiveAttributeSubentry OBJECT IDENTIFIER ::= {id-sc 2} id-sc-contextAssertionSubentry OBJECT IDENTIFIER ::= {id-sc 3} id-sc-serviceAdminSubentry OBJECT IDENTIFIER ::= {id-sc 4} -- Name forms id-nf-subentryNameForm OBJECT IDENTIFIER ::= {id-nf 16} -- administrative roles id-ar-autonomousArea OBJECT IDENTIFIER ::= {id-ar 1} id-ar-accessControlSpecificArea OBJECT IDENTIFIER ::= {id-ar 2} id-ar-accessControlInnerArea OBJECT IDENTIFIER ::= {id-ar 3} id-ar-subschemaAdminSpecificArea OBJECT IDENTIFIER ::= {id-ar 4} id-ar-collectiveAttributeSpecificArea OBJECT IDENTIFIER ::= {id-ar 5} id-ar-collectiveAttributeInnerArea OBJECT IDENTIFIER ::= {id-ar 6} id-ar-contextDefaultSpecificArea OBJECT IDENTIFIER ::= {id-ar 7} id-ar-serviceSpecificArea OBJECT IDENTIFIER ::= {id-ar 8} END -- InformationFramework -- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D