-- Module MTSAbstractService88 (X.411:06/1999)
-- See also ITU-T X.411 (06/1999)
-- See also the index of all ASN.1 assignments needed in this document

MTSAbstractService88 {joint-iso-itu-t mhs(6) mts(3) modules(0)
  mts-abstract-service(1) version-1988(1988)} DEFINITIONS IMPLICIT TAGS ::=
BEGIN

--	Prologue
--	Exports everything
IMPORTS
  -- Remote Operations
  CONTRACT
    --==
    FROM Remote-Operations-Information-Objects {joint-iso-itu-t
      remote-operations(4) informationObjects(5) version1(0)}
  -- MTS Abstract Service Parameters
  operationObject1, ABSTRACT-OPERATION, change-credentials, ContentLength,
    ContentTypes, Controls, control-violates-registration,
    DefaultDeliveryControls, EncodedInformationTypes, message-delivery,
    MHS-OBJECT, mts-connect, PORT, RecipientAssignedAlternateRecipient,
    register-rejected, report-delivery, SecurityLabel, security-error,
    submission, UserAddress, UserName, Waiting
    --==
    FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
      mts-abstract-service(1) version-1999(1)}
  -- Object Identifiers
  id-ct-mts-access, id-ct-mts-forced-access, id-ot-mts, id-ot-mts-user,
    id-pt-administration, id-pt-delivery
    --==
    FROM MTSObjectIdentifiers {joint-iso-itu-t mhs(6) mts(3) modules(0)
      object-identifiers(0) version-1999(1)}
  -- Operation Codes
  op-delivery-control, op-register
    --==
    FROM MTSAccessProtocol {joint-iso-itu-t mhs(6) protocols(0) modules(0)
      mts-access-protocol(1) version-1999(1)}
  -- Upper Bounds
  ub-content-types, ub-labels-and-redirections
    --==
    FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
      upper-bounds(3) version-1999(1)};

--	Objects
mts-88 MHS-OBJECT ::= {
  INITIATES  {mts-forced-access-contract-88}
  RESPONDS   {mts-access-contract-88}
  ID         {id-ot-mts  88}
}

mts-user-88 MHS-OBJECT ::= {
  INITIATES  {mts-access-contract-88}
  RESPONDS   {mts-forced-access-contract-88}
  ID         {id-ot-mts-user  88}
}

-- Contracts
mts-access-contract-88 CONTRACT ::= {
  CONNECTION             mts-connect
  INITIATOR CONSUMER OF  {submission | delivery-88 | administration-88}
  ID                     {id-ct-mts-access  88}
}

mts-forced-access-contract-88 CONTRACT ::= {
  CONNECTION             mts-connect
  RESPONDER CONSUMER OF  {submission | delivery-88 | administration-88}
  ID                     {id-ct-mts-forced-access  88}
}

--	Ports
delivery-88 PORT ::= {
  OPERATIONS
    {operationObject1,
      ...} -- This IOS needs to be extensible for Forward{} of X.880
  CONSUMER INVOKES
    {delivery-control-88,
      ...} -- This IOS needs to be extensible for Forward{} of X.880
  SUPPLIER INVOKES
    {message-delivery | report-delivery,
      ...} -- This IOS needs to be extensible for Forward{} of X.880
  ID                {id-pt-delivery  88}
}

administration-88 PORT ::= {
  OPERATIONS
    {change-credentials,
      ...} -- This IOS needs to be extensible for Forward{} of X.880
  CONSUMER INVOKES
    {register-88,
      ...} -- This IOS needs to be extensible for Forward{} of X.880
  SUPPLIER INVOKES
    {operationObject1,
      ...} -- This IOS needs to be extensible for Forward{} of X.880
  ID                {id-pt-administration  88}
}

--	Delivery Port
delivery-control-88 ABSTRACT-OPERATION ::= {
  ARGUMENT         DeliveryControls88
  RESULT           Waiting
  ERRORS           {control-violates-registration | security-error}
  LINKED
    {operationObject1,
      ...} -- This IOS needs to be extensible for Forward{} of X.880
  INVOKE PRIORITY  {3}
  CODE             op-delivery-control
}

DeliveryControls88 ::= SET {
  COMPONENTS OF
    Controls
      (WITH COMPONENTS {
         ...,
         permissible-encoded-information-types  ABSENT
       }),
  permissible-encoded-information-types-88  EncodedInformationTypes OPTIONAL
}

--	Administration Port
register-88 ABSTRACT-OPERATION ::= {
  ARGUMENT         Register88
  RESULT           NULL
  ERRORS           {register-rejected}
  LINKED           {operationObject1, ...}
  INVOKE PRIORITY  {5}
  CODE             op-register
}

Register88 ::= SET {
  user-name                              UserName OPTIONAL,
  user-address                           [0]  UserAddress OPTIONAL,
  deliverable-encoded-information-types  EncodedInformationTypes OPTIONAL,
  deliverable-maximum-content-length     [1] EXPLICIT ContentLength OPTIONAL,
  default-delivery-controls
    [2] EXPLICIT DefaultDeliveryControls OPTIONAL,
  deliverable-content-types              [3]  ContentTypes OPTIONAL,
  labels-and-redirections
    [4]  SET SIZE (1..ub-labels-and-redirections) OF LabelAndRedirection
      OPTIONAL
}

LabelAndRedirection ::= SET {
  user-security-label                     [0]  UserSecurityLabel OPTIONAL,
  recipient-assigned-alternate-recipient
    [1]  RecipientAssignedAlternateRecipient OPTIONAL
}

UserSecurityLabel ::= SecurityLabel

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