-- ASN module extracted from ITU-T X.501 (10/2016)
ServiceAdministration {joint-iso-itu-t ds(5) module(1) serviceAdministration(33) 8}
DEFINITIONS ::=
BEGIN
-- EXPORTS All
-- The types and values defined in this module are exported for use in the other ASN.1
-- modules contained within these 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
-- from Rec. ITU-T X.501 | ISO/IEC 9594-2
directoryAbstractService, informationFramework
FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 8}
ATTRIBUTE, AttributeType, CONTEXT, MATCHING-RULE, OBJECT-CLASS,
SupportedAttributes, SupportedContexts
FROM InformationFramework informationFramework
-- from Rec. ITU-T X.511 | ISO/IEC 9594-3
FamilyGrouping, FamilyReturn, HierarchySelections, SearchControlOptions,
ServiceControlOptions
FROM DirectoryAbstractService directoryAbstractService;
-- types
SearchRule ::= SEQUENCE {
COMPONENTS OF SearchRuleId,
serviceType [1] OBJECT IDENTIFIER OPTIONAL,
userClass [2] INTEGER OPTIONAL,
inputAttributeTypes [3] SEQUENCE SIZE (0..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({SupportedContexts}),
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 OF ATTRIBUTE.&Type
({SupportedAttributes}{@attributeType}),
matchedValuesOnly NULL } OPTIONAL,
contexts [0] SEQUENCE SIZE (1..MAX) OF ContextProfile OPTIONAL,
... }
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,
... }
-- ASN.1 information object classes
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,
&allowedSubset AllowedSubset DEFAULT ''111''B,
&imposedSubset ImposedSubset OPTIONAL,
&entryLimit EntryLimit 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 CHOICE {
selectedValues SEQUENCE OF ATTRIBUTE.&Type,
matchedValuesOnly NULL } 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 }
END -- ServiceAdministration