-- ASN module extracted from ITU-T X.501 (10/2019)
OperationalBindingManagement
{joint-iso-itu-t ds(5) module(1) opBindingManagement(18) 9}
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
OPTIONALLY-PROTECTED-SEQ
FROM EnhancedSecurity
{joint-iso-itu-t ds(5) modules(1) enhancedSecurity(28) 9} WITH SUCCESSORS
hierarchicalOperationalBinding, nonSpecificHierarchicalOperationalBinding
FROM HierarchicalOperationalBindings
{joint-iso-itu-t ds(5) module(1) hierarchicalOperationalBindings(20) 9}
WITH SUCCESSORS
-- from Rec. ITU-T X.511 | ISO/IEC 9594-3
CommonResultsSeq, securityError, SecurityParameters
FROM DirectoryAbstractService
{joint-iso-itu-t ds(5) module(1) directoryAbstractService(2) 9} 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) 9} WITH SUCCESSORS
-- from Rec. ITU-T X.519 | ISO/IEC 9594-5
id-err-operationalBindingError, id-op-establishOperationalBinding,
id-op-modifyOperationalBinding, id-op-terminateOperationalBinding,
OPERATION, ERROR
FROM CommonProtocolSpecification
{joint-iso-itu-t ds(5) module(1) commonProtocolSpecification(35) 9} WITH SUCCESSORS
APPLICATION-CONTEXT
FROM DirectoryOSIProtocols
{joint-iso-itu-t ds(5) module(1) directoryOSIProtocols(37) 9} WITH SUCCESSORS
-- from Rec. ITU-T X.525 | ISO/IEC 9594-9
shadowOperationalBinding
FROM DirectoryShadowAbstractService
{joint-iso-itu-t ds(5) module(1) directoryShadowAbstractService(15) 9}
WITH SUCCESSORS ;
-- bind and unbind
dSAOperationalBindingManagementBind OPERATION ::= dSABind
OPERATIONAL-BINDING ::= CLASS {
&Agreement ,
&Cooperation OP-BINDING-COOP,
&both OP-BIND-ROLE OPTIONAL,
&roleA OP-BIND-ROLE OPTIONAL,
&roleB OP-BIND-ROLE OPTIONAL,
&id OBJECT IDENTIFIER UNIQUE }
WITH SYNTAX {
AGREEMENT &Agreement
APPLICATION CONTEXTS &Cooperation
[SYMMETRIC &both]
[ASYMMETRIC
[ROLE-A &roleA]
[ROLE-B &roleB]]
ID &id }
OP-BINDING-COOP ::= CLASS {
&applContext APPLICATION-CONTEXT,
&Operations OPERATION OPTIONAL }
WITH SYNTAX {
&applContext
[APPLIES TO &Operations] }
OP-BIND-ROLE ::= CLASS {
&establish BOOLEAN DEFAULT FALSE,
&EstablishParam,
&modify BOOLEAN DEFAULT FALSE,
&ModifyParam OPTIONAL,
&terminate BOOLEAN DEFAULT FALSE,
&TerminateParam OPTIONAL }
WITH SYNTAX {
[ESTABLISHMENT-INITIATOR &establish]
ESTABLISHMENT-PARAMETER &EstablishParam
[MODIFICATION-INITIATOR &modify]
[MODIFICATION-PARAMETER &ModifyParam]
[TERMINATION-INITIATOR &terminate]
[TERMINATION-PARAMETER &TerminateParam] }
-- operations, arguments and results
establishOperationalBinding OPERATION ::= {
ARGUMENT EstablishOperationalBindingArgument
RESULT EstablishOperationalBindingResult
ERRORS {operationalBindingError | securityError}
CODE id-op-establishOperationalBinding }
EstablishOperationalBindingArgument ::=
OPTIONALLY-PROTECTED-SEQ { EstablishOperationalBindingArgumentData }
EstablishOperationalBindingArgumentData ::= SEQUENCE {
bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}),
bindingID [1] OperationalBindingID OPTIONAL,
accessPoint [2] AccessPoint,
-- symmetric, Role A initiates, or Role B initiates
initiator CHOICE {
symmetric [3] OPERATIONAL-BINDING.&both.&EstablishParam
({OpBindingSet}{@bindingType}),
roleA-initiates [4] OPERATIONAL-BINDING.&roleA.&EstablishParam
({OpBindingSet}{@bindingType}),
roleB-initiates [5] OPERATIONAL-BINDING.&roleB.&EstablishParam
({OpBindingSet}{@bindingType})},
agreement [6] OPERATIONAL-BINDING.&Agreement
({OpBindingSet}{@bindingType}),
valid [7] Validity DEFAULT {},
securityParameters [8] SecurityParameters OPTIONAL,
... }
OpBindingSet OPERATIONAL-BINDING ::= {
shadowOperationalBinding |
hierarchicalOperationalBinding |
nonSpecificHierarchicalOperationalBinding }
OperationalBindingID ::= SEQUENCE {
identifier INTEGER,
version INTEGER,
... }
Validity ::= SEQUENCE {
validFrom [0] CHOICE {
now [0] NULL,
time [1] Time,
...} DEFAULT now:NULL,
validUntil [1] CHOICE {
explicitTermination [0] NULL,
time [1] Time,
... } DEFAULT explicitTermination:NULL,
... }
Time ::= CHOICE {
utcTime UTCTime,
generalizedTime GeneralizedTime,
... }
EstablishOperationalBindingResult ::= OPTIONALLY-PROTECTED-SEQ { EstablishOperationalBindingResultData }
EstablishOperationalBindingResultData ::= SEQUENCE {
bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}),
bindingID [1] OperationalBindingID OPTIONAL,
accessPoint [2] AccessPoint,
-- symmetric, Role A replies, or Role B replies
initiator CHOICE {
symmetric [3] OPERATIONAL-BINDING.&both.&EstablishParam
({OpBindingSet}{@bindingType}),
roleA-replies [4] OPERATIONAL-BINDING.&roleA.&EstablishParam
({OpBindingSet}{@bindingType}),
roleB-replies [5] OPERATIONAL-BINDING.&roleB.&EstablishParam
({OpBindingSet}{@bindingType})},
...,
...,
COMPONENTS OF CommonResultsSeq }
modifyOperationalBinding OPERATION ::= {
ARGUMENT ModifyOperationalBindingArgument
RESULT ModifyOperationalBindingResult
ERRORS {operationalBindingError | securityError}
CODE id-op-modifyOperationalBinding }
ModifyOperationalBindingArgument ::=
OPTIONALLY-PROTECTED-SEQ { ModifyOperationalBindingArgumentData }
ModifyOperationalBindingArgumentData ::= SEQUENCE {
bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}),
bindingID [1] OperationalBindingID,
accessPoint [2] AccessPoint OPTIONAL,
-- symmetric, Role A initiates, or Role B initiates
initiator CHOICE {
symmetric [3] OPERATIONAL-BINDING.&both.&ModifyParam
({OpBindingSet}{@bindingType}),
roleA-initiates [4] OPERATIONAL-BINDING.&roleA.&ModifyParam
({OpBindingSet}{@bindingType}),
roleB-initiates [5] OPERATIONAL-BINDING.&roleB.&ModifyParam
({OpBindingSet}{@bindingType})} OPTIONAL,
newBindingID [6] OperationalBindingID,
newAgreement [7] OPERATIONAL-BINDING.&Agreement
({OpBindingSet}{@bindingType}) OPTIONAL,
valid [8] ModifiedValidity OPTIONAL,
securityParameters [9] SecurityParameters OPTIONAL,
...}
ModifiedValidity ::= SEQUENCE {
validFrom [0] CHOICE {
now [0] NULL,
time [1] Time,
...} DEFAULT now:NULL,
validUntil [1] CHOICE {
explicitTermination [0] NULL,
time [1] Time,
unchanged [2] NULL,
... } DEFAULT unchanged:NULL,
... }
ModifyOperationalBindingResult ::= CHOICE {
null NULL,
protected [1] OPTIONALLY-PROTECTED-SEQ{ ModifyOperationalBindingResultData },
... }
ModifyOperationalBindingResultData ::= SEQUENCE {
newBindingID OperationalBindingID,
bindingType OPERATIONAL-BINDING.&id({OpBindingSet}),
newAgreement OPERATIONAL-BINDING.&Agreement ({OpBindingSet}{@.bindingType}),
valid Validity OPTIONAL,
...,
...,
COMPONENTS OF CommonResultsSeq
}
terminateOperationalBinding OPERATION ::= {
ARGUMENT TerminateOperationalBindingArgument
RESULT TerminateOperationalBindingResult
ERRORS {operationalBindingError | securityError}
CODE id-op-terminateOperationalBinding }
TerminateOperationalBindingArgument ::=
OPTIONALLY-PROTECTED-SEQ { TerminateOperationalBindingArgumentData }
TerminateOperationalBindingArgumentData ::= SEQUENCE {
bindingType [0] OPERATIONAL-BINDING.&id({OpBindingSet}),
bindingID [1] OperationalBindingID,
-- symmetric, Role A initiates, or Role B initiates
initiator CHOICE {
symmetric [2] OPERATIONAL-BINDING.&both.&TerminateParam
({OpBindingSet}{@bindingType}),
roleA-initiates [3] OPERATIONAL-BINDING.&roleA.&TerminateParam
({OpBindingSet}{@bindingType}),
roleB-initiates [4] OPERATIONAL-BINDING.&roleB.&TerminateParam
({OpBindingSet}{@bindingType})} OPTIONAL,
terminateAt [5] Time OPTIONAL,
securityParameters [6] SecurityParameters OPTIONAL,
...}
TerminateOperationalBindingResult ::= CHOICE {
null NULL,
protected [1] OPTIONALLY-PROTECTED-SEQ{ TerminateOperationalBindingResultData },
... }
TerminateOperationalBindingResultData ::= SEQUENCE {
bindingID OperationalBindingID,
bindingType OPERATIONAL-BINDING.&id({OpBindingSet}),
terminateAt GeneralizedTime OPTIONAL,
...,
...,
COMPONENTS OF CommonResultsSeq }
-- errors and parameters
operationalBindingError ERROR ::= {
PARAMETER OPTIONALLY-PROTECTED-SEQ {OpBindingErrorParam}
CODE id-err-operationalBindingError }
OpBindingErrorParam ::= SEQUENCE {
problem [0] ENUMERATED {
invalidID (0),
duplicateID (1),
unsupportedBindingType (2),
notAllowedForRole (3),
parametersMissing (4),
roleAssignment (5),
invalidStartTime (6),
invalidEndTime (7),
invalidAgreement (8),
currentlyNotDecidable (9),
modificationNotAllowed (10),
invalidBindingType (11),
invalidNewID (12),
... },
bindingType [1] OPERATIONAL-BINDING.&id({OpBindingSet}) OPTIONAL,
agreementProposal [2] OPERATIONAL-BINDING.&Agreement
({OpBindingSet}{@bindingType}) OPTIONAL,
retryAt [3] Time OPTIONAL,
...,
...,
COMPONENTS OF CommonResultsSeq }
END -- OperationalBindingManagement