-- Module DirectoryShadowAbstractService (X.525 (2008) Cor. 1:02/2011)
-- See also ITU-T X.525 (2008) Cor. 1 (02/2011)
-- See also the index of all ASN.1 assignments needed in this document
DirectoryShadowAbstractService {joint-iso-itu-t ds(5) module(1)
directoryShadowAbstractService(15) 6} DEFINITIONS IMPLICIT TAGS ::=
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
-- from ITU-T Rec. X.501 | ISO/IEC 9594-2
commonProtocolSpecification, directoryAbstractService,
directoryOperationalBindingTypes, informationFramework,
directoryOSIProtocols, distributedOperations, dsaOperationalAttributeTypes,
enhancedSecurity, opBindingManagement
FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
usefulDefinitions(0) 6}
Attribute{}, AttributeType, CONTEXT, DistinguishedName,
RelativeDistinguishedName, SubtreeSpecification, SupportedAttributes
FROM InformationFramework informationFramework
OPERATIONAL-BINDING, OperationalBindingID
FROM OperationalBindingManagement opBindingManagement
DSEType, SupplierAndConsumers
FROM DSAOperationalAttributeTypes dsaOperationalAttributeTypes
OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{}
FROM EnhancedSecurity enhancedSecurity
-- from ITU-T Rec. X.511 | ISO/IEC 9594-3
CommonResultsSeq, ContextSelection, EntryModification, SecurityParameters
FROM DirectoryAbstractService directoryAbstractService
-- from ITU-T Rec. X.518 | ISO/IEC 9594-4
AccessPoint, dSABind
FROM DistributedOperations distributedOperations
-- from ITU-T Rec. X.519 | ISO/IEC 9594-5
id-op-binding-shadow
FROM DirectoryOperationalBindingTypes directoryOperationalBindingTypes
shadowConsumerInitiatedAC, shadowSupplierInitiatedAC
FROM DirectoryOSIProtocols directoryOSIProtocols
ERROR, OPERATION, id-errcode-shadowError, id-opcode-coordinateShadowUpdate,
id-opcode-requestShadowUpdate, id-opcode-updateShadow
FROM CommonProtocolSpecification commonProtocolSpecification;
-- bind operation
dSAShadowBind OPERATION ::= dSABind
-- shadow operational binding
shadowOperationalBinding OPERATIONAL-BINDING ::= {
AGREEMENT ShadowingAgreementInfo
APPLICATION CONTEXTS
{{shadowSupplierInitiatedAC
APPLIES TO {All-operations-supplier-initiated}} |
{shadowConsumerInitiatedAC
APPLIES TO {All-operations-consumer-initiated}}}
ASYMMETRIC ROLE-A
{ -- shadow supplier roleESTABLISHMENT-INITIATOR TRUE
ESTABLISHMENT-PARAMETER NULL
MODIFICATION-INITIATOR TRUE
TERMINATION-INITIATOR TRUE}
ROLE-B
{ -- shadow consumer roleESTABLISHMENT-INITIATOR TRUE
ESTABLISHMENT-PARAMETER NULL
MODIFICATION-INITIATOR TRUE
MODIFICATION-PARAMETER ModificationParameter
TERMINATION-INITIATOR TRUE}
ID id-op-binding-shadow
}
-- types
ModificationParameter ::= SEQUENCE {
secondaryShadows SET OF SupplierAndConsumers
}
AgreementID ::= OperationalBindingID
ShadowingAgreementInfo ::= SEQUENCE {
shadowSubject UnitOfReplication,
updateMode UpdateMode DEFAULT supplierInitiated:onChange:TRUE,
master AccessPoint OPTIONAL,
secondaryShadows [2] BOOLEAN DEFAULT FALSE
}
UnitOfReplication ::= SEQUENCE {
area AreaSpecification,
attributes AttributeSelection,
knowledge Knowledge OPTIONAL,
subordinates BOOLEAN DEFAULT FALSE,
contextSelection ContextSelection OPTIONAL,
supplyContexts
[0] CHOICE {allContexts NULL,
selectedContexts SET SIZE (1..MAX) OF CONTEXT.&id
} OPTIONAL
}
AreaSpecification ::= SEQUENCE {
contextPrefix DistinguishedName,
replicationArea SubtreeSpecification
}
Knowledge ::= SEQUENCE {
knowledgeType ENUMERATED {master(0), shadow(1), both(2)},
extendedKnowledge BOOLEAN DEFAULT FALSE
}
AttributeSelection ::= SET OF ClassAttributeSelection
ClassAttributeSelection ::= SEQUENCE {
class OBJECT IDENTIFIER OPTIONAL,
classAttributes ClassAttributes DEFAULT allAttributes:NULL
}
ClassAttributes ::= CHOICE {
allAttributes NULL,
include [0] AttributeTypes,
exclude [1] AttributeTypes
}
AttributeTypes ::= SET OF AttributeType
UpdateMode ::= CHOICE {
supplierInitiated [0] SupplierUpdateMode,
consumerInitiated [1] ConsumerUpdateMode
}
SupplierUpdateMode ::= CHOICE {
onChange BOOLEAN,
scheduled SchedulingParameters
}
ConsumerUpdateMode ::= SchedulingParameters
SchedulingParameters ::= SEQUENCE {
periodic PeriodicStrategy OPTIONAL, -- shall be present if othertimes is set to FALSE
othertimes BOOLEAN DEFAULT FALSE
}
PeriodicStrategy ::= SEQUENCE {
beginTime Time OPTIONAL,
windowSize INTEGER,
updateInterval INTEGER
}
Time ::= GeneralizedTime
-- as per 46.3 b) and c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
-- shadow operations, arguments, and results
All-operations-consumer-initiated OPERATION ::=
{requestShadowUpdate | updateShadow}
All-operations-supplier-initiated OPERATION ::=
{coordinateShadowUpdate | updateShadow}
coordinateShadowUpdate OPERATION ::= {
ARGUMENT CoordinateShadowUpdateArgument
RESULT CoordinateShadowUpdateResult
ERRORS {shadowError}
CODE id-opcode-coordinateShadowUpdate
}
CoordinateShadowUpdateArgument ::=
OPTIONALLY-PROTECTED
{[0] SEQUENCE {agreementID AgreementID,
lastUpdate Time OPTIONAL,
updateStrategy
CHOICE {standard
ENUMERATED {noChanges(0), incremental(1),
total(2)},
other EXTERNAL},
securityParameters SecurityParameters OPTIONAL}}
CoordinateShadowUpdateResult ::= CHOICE {
null NULL,
information
OPTIONALLY-PROTECTED{[0] SEQUENCE {agreementID AgreementID,
lastUpdate Time OPTIONAL,
COMPONENTS OF CommonResultsSeq
}}
}
requestShadowUpdate OPERATION ::= {
ARGUMENT RequestShadowUpdateArgument
RESULT RequestShadowUpdateResult
ERRORS {shadowError}
CODE id-opcode-requestShadowUpdate
}
RequestShadowUpdateArgument ::=
OPTIONALLY-PROTECTED
{[0] SEQUENCE {agreementID AgreementID,
lastUpdate Time OPTIONAL,
requestedStrategy
CHOICE {standard ENUMERATED {incremental(1), total(2)},
other EXTERNAL},
securityParameters SecurityParameters OPTIONAL}}
RequestShadowUpdateResult ::= CHOICE {
null NULL,
information
OPTIONALLY-PROTECTED{[0] SEQUENCE {agreementID AgreementID,
lastUpdate Time OPTIONAL,
COMPONENTS OF CommonResultsSeq
}}
}
updateShadow OPERATION ::= {
ARGUMENT UpdateShadowArgument
RESULT UpdateShadowResult
ERRORS {shadowError}
CODE id-opcode-updateShadow
}
UpdateShadowArgument ::=
OPTIONALLY-PROTECTED
{[0] SEQUENCE {agreementID AgreementID,
updateTime Time,
updateWindow UpdateWindow OPTIONAL,
updatedInfo RefreshInformation,
securityParameters SecurityParameters OPTIONAL}}
UpdateShadowResult ::= CHOICE {
null NULL,
information
OPTIONALLY-PROTECTED{[0] SEQUENCE {agreementID AgreementID,
lastUpdate Time OPTIONAL,
COMPONENTS OF CommonResultsSeq
}}
}
UpdateWindow ::= SEQUENCE {start Time,
stop Time
}
RefreshInformation ::= CHOICE {
noRefresh NULL,
total [0] TotalRefresh,
incremental [1] IncrementalRefresh,
otherStrategy EXTERNAL
}
TotalRefresh ::= SEQUENCE {
sDSE SDSEContent OPTIONAL,
subtree SET SIZE (1..MAX) OF Subtree OPTIONAL
}
SDSEContent ::= SEQUENCE {
sDSEType SDSEType,
subComplete [0] BOOLEAN DEFAULT FALSE,
attComplete [1] BOOLEAN OPTIONAL,
attributes SET OF Attribute{{SupportedAttributes}},
attValIncomplete SET OF AttributeType DEFAULT {}
}
SDSEType ::= DSEType
Subtree ::= SEQUENCE {
rdn RelativeDistinguishedName,
COMPONENTS OF TotalRefresh
}
IncrementalRefresh ::= SEQUENCE OF IncrementalStepRefresh
IncrementalStepRefresh ::= SEQUENCE {
sDSEChanges
CHOICE {add [0] SDSEContent,
remove NULL,
modify [1] ContentChange} OPTIONAL,
subordinateUpdates SEQUENCE SIZE (1..MAX) OF SubordinateChanges OPTIONAL
}
ContentChange ::= SEQUENCE {
rename
CHOICE {newRDN RelativeDistinguishedName,
newDN DistinguishedName} OPTIONAL,
attributeChanges
CHOICE {replace [0] SET SIZE (1..MAX) OF Attribute{{SupportedAttributes}},
changes [1] SEQUENCE SIZE (1..MAX) OF EntryModification
} OPTIONAL,
sDSEType SDSEType,
subComplete [2] BOOLEAN DEFAULT FALSE,
attComplete [3] BOOLEAN OPTIONAL,
attValIncomplete SET OF AttributeType DEFAULT {}
}
SubordinateChanges ::= SEQUENCE {
subordinate RelativeDistinguishedName,
changes IncrementalStepRefresh
}
-- errors and parameters
shadowError ERROR ::= {
PARAMETER OPTIONALLY-PROTECTED-SEQ
{SEQUENCE {problem ShadowProblem,
lastUpdate Time OPTIONAL,
updateWindow UpdateWindow OPTIONAL,
COMPONENTS OF CommonResultsSeq}}
CODE id-errcode-shadowError
}
ShadowProblem ::= INTEGER {
invalidAgreementID(1), inactiveAgreement(2), invalidInformationReceived(3),
unsupportedStrategy(4), missedPrevious(5), fullUpdateRequired(6),
unwillingToPerform(7), unsuitableTiming(8), updateAlreadyReceived(9),
invalidSequencing(10), insufficientResources(11)}
END -- DirectoryShadowAbstractService
-- Generated by the ASN.1 pretty-printer of France Telecom R&D