-- Module DistributedOperations (X.518:02/2001)
-- See also ITU-T X.518 (02/2001)
-- See also the index of all ASN.1 assignments needed in this document

DistributedOperations {joint-iso-itu-t ds(5) module(1) distributedOperations(3)
  4} DEFINITIONS ::=
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
  basicAccessControl, dap, directoryAbstractService, enhancedSecurity,
    informationFramework, selectedAttributeTypes, serviceAdministration
    FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
      usefulDefinitions(0) 4}
  DistinguishedName, Name, RDNSequence
    FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
      informationFramework(1) 4}
  MRMapping, SearchRuleId
    FROM ServiceAdministration {joint-iso-itu-t ds(5) module(1)
      serviceAdministration(33) 4}
  AuthenticationLevel
    FROM BasicAccessControl {joint-iso-itu-t ds(5) module(1)
      basicAccessControl(24) 4}
  OPTIONALLY-PROTECTED{}
    FROM EnhancedSecurity {joint-iso-itu-t ds(5) module(1) enhancedSecurity(28)
      4}
  -- from ITU-T Rec. X.511 | ISO/IEC 9594-3
  abandon, addEntry, CommonResults, compare, directoryBind, directoryUnbind,
    list, modifyDN, modifyEntry, read, referral, removeEntry, search,
    SecurityParameters
    FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1)
      directoryAbstractService(2) 4}
  -- from ITU-T Rec. X.519 | ISO/IEC 9594-5
  id-errcode-dsaReferral
    FROM DirectoryAccessProtocol {joint-iso-itu-t ds(5) module(1) dap(11) 4}
  -- from ITU-T Rec. X.520 | ISO/IEC 9594-6
  PresentationAddress, ProtocolInformation, UniqueIdentifier
    FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
      selectedAttributeTypes(5) 4}
  -- from ITU-T Rec. X.880 | ISO/IEC 13712-1
  ERROR, OPERATION
    FROM Remote-Operations-Information-Objects {joint-iso-itu-t
      remote-operations(4) informationObjects(5) version1(0)};

-- parameterized type for deriving chained operations 
chained{OPERATION:operation} OPERATION ::= {
  ARGUMENT OPTIONALLY-PROTECTED
    {SET {chainedArgument  ChainingArguments,
          argument         [0]  operation.&ArgumentType}}
  RESULT OPTIONALLY-PROTECTED
    {SET {chainedResult  ChainingResults,
          result         [0]  operation.&ResultType}}
  ERRORS
    {operation.&Errors EXCEPT referral | dsaReferral}
  CODE                           operation.&operationCode
}

--  bind and unbind operations 
dSABind OPERATION ::= directoryBind

dSAUnbind OPERATION ::= directoryUnbind

--  chained operations 
chainedRead OPERATION ::= chained{read}

chainedCompare OPERATION ::= chained{compare}

chainedAbandon OPERATION ::= abandon

chainedList OPERATION ::= chained{list}

chainedSearch OPERATION ::= chained{search}

chainedAddEntry OPERATION ::= chained{addEntry}

chainedRemoveEntry OPERATION ::= chained{removeEntry}

chainedModifyEntry OPERATION ::= chained{modifyEntry}

chainedModifyDN OPERATION ::= chained{modifyDN}

-- errors and parameters 
dsaReferral ERROR ::= {
  PARAMETER OPTIONALLY-PROTECTED
    {SET {reference      [0]  ContinuationReference,
          contextPrefix  [1]  DistinguishedName OPTIONAL,
          COMPONENTS OF CommonResults}}
  CODE                            id-errcode-dsaReferral
}

--  common arguments and results 
ChainingArguments ::= SET {
  originator           [0]  DistinguishedName OPTIONAL,
  targetObject         [1]  DistinguishedName OPTIONAL,
  operationProgress
    [2]  OperationProgress DEFAULT {nameResolutionPhase notStarted},
  traceInformation     [3]  TraceInformation,
  aliasDereferenced    [4]  BOOLEAN DEFAULT FALSE,
  aliasedRDNs          [5]  INTEGER OPTIONAL,
  -- only present in 1988 systems
  returnCrossRefs      [6]  BOOLEAN DEFAULT FALSE,
  referenceType        [7]  ReferenceType DEFAULT superior,
  info                 [8]  DomainInfo OPTIONAL,
  timeLimit            [9]  Time OPTIONAL,
  securityParameters   [10]  SecurityParameters DEFAULT {},
  entryOnly            [11]  BOOLEAN DEFAULT FALSE,
  uniqueIdentifier     [12]  UniqueIdentifier OPTIONAL,
  authenticationLevel  [13]  AuthenticationLevel OPTIONAL,
  exclusions           [14]  Exclusions OPTIONAL,
  excludeShadows       [15]  BOOLEAN DEFAULT FALSE,
  nameResolveOnMaster  [16]  BOOLEAN DEFAULT FALSE,
  operationIdentifier  [17]  INTEGER OPTIONAL,
  searchRuleId         [18]  SearchRuleId OPTIONAL,
  chainedRelaxation    [19]  MRMapping OPTIONAL,
  relatedEntry         [20]  INTEGER OPTIONAL
}

Time ::= CHOICE {utcTime          UTCTime,
                 generalizedTime  GeneralizedTime
}

DomainInfo ::= ABSTRACT-SYNTAX.&Type

ChainingResults ::= SET {
  info                [0]  DomainInfo OPTIONAL,
  crossReferences     [1]  SEQUENCE SIZE (1..MAX) OF CrossReference OPTIONAL,
  securityParameters  [2]  SecurityParameters DEFAULT {},
  alreadySearched     [3]  Exclusions OPTIONAL
}

CrossReference ::= SET {
  contextPrefix  [0]  DistinguishedName,
  accessPoint    [1]  AccessPointInformation
}

OperationProgress ::= SET {
  nameResolutionPhase
    [0]  ENUMERATED {notStarted(1), proceeding(2), completed(3)},
  nextRDNToBeResolved  [1]  INTEGER OPTIONAL
}

TraceInformation ::= SEQUENCE OF TraceItem

TraceItem ::= SET {
  dsa                [0]  Name,
  targetObject       [1]  Name OPTIONAL,
  operationProgress  [2]  OperationProgress
}

ReferenceType ::= ENUMERATED {
  superior(1), subordinate(2), cross(3), nonSpecificSubordinate(4),
  supplier(5), master(6), immediateSuperior(7), self(8)}

AccessPoint ::= SET {
  ae-title             [0]  Name,
  address              [1]  PresentationAddress,
  protocolInformation  [2]  SET SIZE (1..MAX) OF ProtocolInformation OPTIONAL
}

MasterOrShadowAccessPoint ::= SET {
  COMPONENTS OF AccessPoint,
  category          [3]  ENUMERATED {master(0), shadow(1)} DEFAULT master,
  chainingRequired  [5]  BOOLEAN DEFAULT FALSE
}

MasterAndShadowAccessPoints ::= SET SIZE (1..MAX) OF MasterOrShadowAccessPoint

AccessPointInformation ::= SET {
  COMPONENTS OF MasterOrShadowAccessPoint,
  additionalPoints  [4]  MasterAndShadowAccessPoints OPTIONAL
}

Exclusions ::= SET SIZE (1..MAX) OF RDNSequence

ContinuationReference ::= SET {
  targetObject         [0]  Name,
  aliasedRDNs          [1]  INTEGER OPTIONAL, -- only present in 1988 systems
  operationProgress    [2]  OperationProgress,
  rdnsResolved         [3]  INTEGER OPTIONAL,
  referenceType        [4]  ReferenceType,
  accessPoints         [5]  SET OF AccessPointInformation,
  entryOnly            [6]  BOOLEAN DEFAULT FALSE,
  exclusions           [7]  Exclusions OPTIONAL,
  returnToDUA          [8]  BOOLEAN DEFAULT FALSE,
  nameResolveOnMaster  [9]  BOOLEAN DEFAULT FALSE
}

END -- DistributedOperations
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D