-- ASN module extracted from ITU-T X.525 (10/2019)

DirectoryShadowAbstractService {joint-iso-itu-t ds(5) module(1) directoryShadowAbstractService(15) 10} 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 Rec. ITU-T X.501 | ISO/IEC 9594-2 Attribute{}, AttributeType, CONTEXT, DistinguishedName, SupportedAttributes, RelativeDistinguishedName FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)usefulDefinitions(0) 10} WITH SUCCESSORS SubtreeSpecification FROM InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1) 10} WITH SUCCESSORS OPERATIONAL-BINDING, OperationalBindingID FROM OperationalBindingManagement {joint-iso-itu-t ds(5) module(1) opBindingManagement(18) 10} WITH SUCCESSORS DSEType, SupplierAndConsumers FROM DSAOperationalAttributeTypes {joint-iso-itu-t ds(5) module(1) dsaOperationalAttributeTypes(22) 10} WITH SUCCESSORS OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{} FROM EnhancedSecurity {joint-iso-itu-t ds(5) module(1) enhancedSecurity(28) 10} WITH SUCCESSORS -- from Rec. ITU-T X.511 | ISO/IEC 9594-3 CommonResultsSeq, ContextSelection, EntryModification, SecurityParameters FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1) directoryAbstractService(2) 10} WITH SUCCESSORS -- from Rec. ITU-T X.518 | ISO/IEC 9594-4 AccessPoint, dSABind FROM DistributedOperations {joint-iso-itu-t ds(5) module(1) distributedOperations(3) 10} WITH SUCCESSORS -- from Rec. ITU-T X.519 | ISO/IEC 9594-5 id-op-binding-shadow FROM DirectoryOperationalBindingTypes {joint-iso-itu-t ds(5) module(1) directoryOperationalBindingTypes(25) 10} WITH SUCCESSORS shadowConsumerInitiatedAC, shadowSupplierInitiatedAC FROM DirectoryOSIProtocols {joint-iso-itu-t ds(5) module(1) directoryOSIProtocols(37) 10} WITH SUCCESSORS ERROR, OPERATION, id-errcode-shadowError, id-opcode-coordinateShadowUpdate, id-opcode-requestShadowUpdate, id-opcode-updateShadow FROM CommonProtocolSpecification {joint-iso-itu-t ds(5) module(1) commonProtocolSpecification(35) 10} WITH SUCCESSORS ; -- 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 role ESTABLISHMENT-INITIATOR TRUE ESTABLISHMENT-PARAMETER NULL MODIFICATION-INITIATOR TRUE TERMINATION-INITIATOR TRUE } ROLE-B { -- shadow consumer role ESTABLISHMENT-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 Rec. ITU-T 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 { CoordinateShadowUpdateArgumentData } CoordinateShadowUpdateArgumentData ::= [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{ CoordinateShadowUpdateResultData }, ...} CoordinateShadowUpdateResultData ::= [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 { RequestShadowUpdateArgumentData } RequestShadowUpdateArgumentData ::= [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{ RequestShadowUpdateResultData }, ... } RequestShadowUpdateResultData ::= [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 {UpdateShadowArgumentData } UpdateShadowArgumentData ::= [0] SEQUENCE { agreementID AgreementID, updateTime Time, updateWindow UpdateWindow OPTIONAL, updatedInfo RefreshInformation, securityParameters SecurityParameters OPTIONAL, ...} UpdateShadowResult ::= CHOICE { null NULL, information OPTIONALLY-PROTECTED{ UpdateShadowResultData }, ...} UpdateShadowResultData ::= [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 { ShadowErrorData } CODE id-errcode-shadowError } ShadowErrorData ::= SEQUENCE { problem ShadowProblem, lastUpdate Time OPTIONAL, updateWindow UpdateWindow OPTIONAL, ..., ..., COMPONENTS OF CommonResultsSeq } 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