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

DirectoryShadowAbstractService {joint-iso-itu-t ds(5) module(1) directoryShadowAbstractService(15) 8} 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 commonProtocolSpecification, directoryAbstractService, directoryOperationalBindingTypes, informationFramework, directoryOSIProtocols, distributedOperations, dsaOperationalAttributeTypes, enhancedSecurity, opBindingManagement FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 8} 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 Rec. ITU-T X.511 | ISO/IEC 9594-3 CommonResultsSeq, ContextSelection, EntryModification, SecurityParameters FROM DirectoryAbstractService directoryAbstractService -- from Rec. ITU-T X.518 | ISO/IEC 9594-4 AccessPoint, dSABind FROM DistributedOperations distributedOperations -- from Rec. ITU-T 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 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