-- Module MhsAcctAsn1Module (X.462:10/1996)
-- See also ITU-T X.462 (10/1996)
-- See also the index of all ASN.1 assignments needed in this document

MhsAcctAsn1Module {joint-iso-itu-t mhs(6) management(9) accounting(3)
  modules(8) asn1-module(1)} DEFINITIONS IMPLICIT TAGS ::=
BEGIN

--  Prologue
--  EXPORTS everything
IMPORTS
  --  MTS abstract service parameters
  AdministrationDomainName, ActualRecipientName, BindTokenEncryptedData,
    BindTokenSignedData, ContentConfidentialityAlgorithmIdentifier,
    ContentIdentifier, ContentIntegrityCheck, ContentLength, ContentType,
    Credentials, DefaultDeliveryControls, DeferredDeliveryTime,
    DeliveryControls, EncodedInformationTypes, ExplicitConversion,
    GlobalDomainIdentifier, InitiatorCredentials, MessageDeliveryEnvelope,
    MessageOriginAuthenticationCheck, MessageSecurityLabel,
    MessageSubmissionEnvelope, MessageToken, MTAName, MTSIdentifier,
    NonDeliveryReasonCode, NonDeliveryDiagnosticCode, ObjectName,
    ORAddressAndOptionalDirectoryName, ORName, OriginatingMTACertificate,
    OriginatorCertificate, OriginatorName, Priority,
    ProbeOriginAuthenticationCheck, ProbeSubmissionEnvelope, ProofOfDelivery,
    ProofOfDeliveryRequest, ProofOfSubmission, ProofOfSubmissionRequest,
    RecipientCertificate, RedirectionReason, ReportDeliveryEnvelope,
    ReportingMTACertificate, ReportOriginAuthenticationCheck,
    ResponderCredentials, SecurityContext, SecurityProblem,
    SubjectSubmissionIdentifier, SubmissionControls, Time, ThisRecipientName,
    UserAddress, UserName
    FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
      mts-abstract-service(1) version-1999(1)}
  LabelAndRedirection
    FROM MTSAbstractService88 {joint-iso-itu-t mhs(6) mts(3) modules(0)
      mts-abstract-service(1) version-1988(1988)}
  --  MTA abstract service parameters 
  InternalTraceInformation, MessageTransferEnvelope, ProbeTransferEnvelope,
    ReportIdentifier, ReportTransferEnvelope, SubjectIdentifier,
    TraceInformation
    FROM MTAAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
      mta-abstract-service(2) version-1999(1)}
  --  MS abstract service
  AlertArgument, AlertResult, AttributeProblem, AttributeType,
    AutoActionRequestProblem, AutoActionType, DeleteArgument, DeleteProblem,
    DeleteResult, FetchArgument, FetchRestrictionProblem, FetchResult,
    ListArgument, ListResult, MS-EITs, RangeProblem, Register-MSArgument,
    Register-MSResult, Restrictions, SequenceNumber, SequenceNumberProblem,
    ServiceProblem, SummarizeArgument, SummarizeResult
    FROM MSAbstractService {joint-iso-itu-t mhs(6) ms(4) modules(0)
      abstract-service(1) version-1999(1)}
  --  MTS upper bounds
  ub-content-types, ub-labels-and-redirections, ub-recipients
    FROM MTSUpperBounds {joint-iso-itu-t mhs(6) mts(3) modules(0)
      upper-bounds(3) version-1999(1)}
  --  MS upper bounds
  ub-attributes-supported, ub-auto-actions, ub-auto-registrations,
    ub-default-registrations, ub-messages, ub-per-entry
    FROM MSUpperBounds {joint-iso-itu-t mhs(6) ms(4) modules(0) upper-bounds(4)
      version-1994(0)}
  EventTypeId, ObjectInstance
    FROM CMIP-1 {joint-iso-itu-t ms(9) cmip(1) modules(0) protocol(3)}
  --  X.721 DMI
  SimpleNameType
    FROM Attribute-ASN1Module {joint-iso-itu-t ms(9) smi(3) part2(2)
      asn1Module(2) 1};

--  In the context of MHS management, the following values are defined for the EventTypeId data type.
affirmation EventTypeId ::=
  localForm:1

alert EventTypeId ::= localForm:2

cancel-deferred-delivery EventTypeId ::= localForm:3

change-credentials EventTypeId ::= localForm:4

delete EventTypeId ::= localForm:5

delivery-control EventTypeId ::= localForm:6

fetch EventTypeId ::= localForm:7

list EventTypeId ::= localForm:8

message-delivery EventTypeId ::= localForm:9

message-indirect-submission EventTypeId ::= localForm:10

message-submission EventTypeId ::= localForm:11

message-transfer-in EventTypeId ::= localForm:12

message-transfer-out EventTypeId ::= localForm:13

ms-bind EventTypeId ::= localForm:14

ms-unbind EventTypeId ::= localForm:15

mta-bind EventTypeId ::= localForm:16

mta-unbind EventTypeId ::= localForm:17

mts-bind EventTypeId ::= localForm:18

mts-unbind EventTypeId ::= localForm:19

non-affirmation EventTypeId ::= localForm:20

non-delivery EventTypeId ::= localForm:21

probe-indirect-submission EventTypeId ::= localForm:22

probe-submission EventTypeId ::= localForm:23

probe-transfer-in EventTypeId ::= localForm:24

probe-transfer-out EventTypeId ::= localForm:25

register EventTypeId ::= localForm:26

register-ms EventTypeId ::= localForm:27

report-delivery EventTypeId ::= localForm:28

report-transfer-in EventTypeId ::= localForm:29

report-transfer-out EventTypeId ::= localForm:30

submission-control EventTypeId ::= localForm:31

summarize EventTypeId ::= localForm:32

AdministrationPortOperations ::= EventTypeId(change-credentials | register)

BindingOperations ::=
  EventTypeId
    (ms-bind | ms-unbind | mta-bind | mta-unbind | mts-bind | mts-unbind)

DeliveryPortOperations ::=
  EventTypeId(delivery-control | message-delivery | report-delivery)

DiscardOperations ::= EventTypeId(affirmation | non-affirmation | non-delivery)

RetrievalPortOperations ::=
  EventTypeId(alert | delete | fetch | list | register-ms | summarize)

SubmissionPortOperations ::=
  EventTypeId
    (message-submission | probe-submission | cancel-deferred-delivery |
     submission-control)

TransferPortOperations ::=
  EventTypeId
    (message-transfer-in | message-transfer-out | probe-transfer-in |
     probe-transfer-out | report-transfer-in | report-transfer-out)

OperationStatus ::= INTEGER {in-progress(0), ok(1), error(2)}

ServiceFlag ::= BOOLEAN

--  Contact attributes
ContactId ::= SimpleNameType

ContactName ::= UniversalString

ContactCompany ::= UniversalString

ContactFunction ::= UniversalString

ContactDetails ::= UniversalString

ElectronicMailAddress ::= ORAddressAndOptionalDirectoryName

TelephoneNumberList ::= SET OF TelephoneNumber

TelephoneNumber ::= UniversalString

--  Customer attributes
CustomerId ::= SimpleNameType

CustomerName ::= UniversalString

--  InterworkingMD attributes
InterworkingMDId ::= SimpleNameType

InterworkingMDName ::= UniversalString

--  Service request attributes
ServiceRequestId ::= SimpleNameType

Status ::= INTEGER {
  indirect-mIS-user-agreement-on-the-request(0),
  mis-provider-agreement-on-the-request(1), request-in-progress(2),
  request-processed(3)}

LimitValidityDate ::= Time

StartUpDate ::= Time

--  Accounting policies
CustomerAcctPolicy ::= CHOICE {
  globalForm  OBJECT IDENTIFIER,
  localForm   INTEGER
}

SettlementPolicy ::= CHOICE {globalForm  OBJECT IDENTIFIER,
                             localForm   INTEGER
}

--  In the context of MHS management, the following values are defined for the
--  SettlementPolicy data type.
d36 SettlementPolicy ::=
  localForm:0

--  In the following descriptions, a number of redefinition of material defined in other
--  modules occurs. This was made inevitable for either one of two reasons:
--  Reason 1: There is no specific type to be imported for the concerned attribute.
--  This often occurs when parameters are of the format "SET SIZE (...) OF ...".
--  In those cases, the corresponding description has been copied textually in
--  module, with a specific mention of its origin. Though this introduces maintenance
--  difficulties, no better solution has been found.
-- Reason 2: The corresponding type is unavailable. For instance, the various
-- operation errors already have assigned numbers, but the module in which this
-- is done (MTSAccessProtocol { joint-iso-ccitt mhs-motis (6) protocols (0) modules (0)
-- mts-access-protocol (1) } in ITU-T Rec. X.419 | ISO/IEC 10021-6) does not export
-- them, so they are not available for use in this module. Correspondingly, there
-- are no single "error" type to import from ITU-T Rec. X.411 | ISO/IEC 10021-4 not
-- ITU-T Rec. X.413 | ISO/IEC 10021-5, this is why they were reproduced here.
-- Though this introduces maintenance difficulties, no better solution has been found.
--  Binding Types
BindingError ::= CHOICE {
  integer
    [0]  INTEGER {busy(0), authentication-error(2),
                  unacceptable-dialogue-mode(3),
                  unacceptable-security-context(4)},
  msbinderror  [1]  MSBindError
}

MSBindError ::= INTEGER

--  Submission Port Types
SubmissionError ::= INTEGER {
  submission-control-violated(1), element-of-service-not-subscribed(2),
  deferred-delivery-cancellation-rejected(3), originator-invalid(4),
  recipient-improperly-specified(5), --  has parameters
  message-submission-identifier-invalid(6), inconsistent-request(7),
  security-error(8), --  has parameters
  unsupported-critical-function(9), remote-bind-error(10)}

CancelDeferredDeliverySubmissionErrors ::=
  SubmissionError
    (deferred-delivery-cancellation-rejected |
     message-submission-identifier-invalid | remote-bind-error)

MessageSubmissionErrors ::=
  SubmissionError
    (submission-control-violated | element-of-service-not-subscribed |
     originator-invalid | recipient-improperly-specified | inconsistent-request
     | security-error | unsupported-critical-function | remote-bind-error)

ProbeSubmissionErrors ::=
  SubmissionError
    (submission-control-violated | element-of-service-not-subscribed |
     originator-invalid | recipient-improperly-specified | inconsistent-request
     | security-error | unsupported-critical-function | remote-bind-error)

SubmissionControlErrors ::= SubmissionError(security-error | remote-bind-error)

--  definition copied from [ITU-T Rec. X.411 | ISO/IEC 10021-4] Figure 2 
ImproperlySpecifiedRecipients ::=
  SEQUENCE SIZE (1..ub-recipients) OF ORAddressAndOptionalDirectoryName

--  Delivery Port Types
DeliveryError ::= INTEGER {
  delivery-control-violation(1), control-violates-registration(2),
  security-error(3), --  has parameters
  unsupported-critical-function(4)}

MessageDeliveryErrors ::=
  DeliveryError
    (delivery-control-violation | security-error |
     unsupported-critical-function)

ReportDeliveryErrors ::= MessageDeliveryErrors

DeliveryControlErrors ::=
  DeliveryError(control-violates-registration | security-error)

--  Retrieval Port Types
RetrievalError ::= INTEGER {
  --  Most of these have parameters
  attribute-error(1), auto-action-request-error(2), delete-error(3),
  fetch-restriction-error(4), invalid-parameter-error(5), range-error(6),
  security-error(7), sequence-number-error(8), service-error(9)}

SummarizeErrors ::=
  RetrievalError
    (attribute-error | invalid-parameter-error | range-error | security-error |
     sequence-number-error | service-error)

ListErrors ::= SummarizeErrors

FetchErrors ::=
  RetrievalError(INCLUDES SummarizeErrors | fetch-restriction-error)

DeleteErrors ::=
  RetrievalError
    (delete-error | invalid-parameter-error | range-error | security-error |
     sequence-number-error | service-error)

RegisterMSErrors ::=
  RetrievalError
    (attribute-error | auto-action-request-error | invalid-parameter-error |
     security-error | service-error)

AlertErrors ::= RetrievalError(security-error)

--  definitions copied from [ITU-T Rec. X.413 | ISO/IEC 10021-5] Annex B 
AttributeError ::= SET {
  problems
    [0]  SET SIZE (1..ub-per-entry) OF
           SET {problem  [0]  AttributeProblem,
                type     [1]  AttributeType}
}

AutoActionRequestError ::= SET {
  problems
    [0]  SET SIZE (1..ub-auto-registrations) OF
           SET {problem  [0]  AutoActionRequestProblem,
                type     [1]  AutoActionType}
}

DeleteError ::= SET {
  problems
    [0]  SET SIZE (1..ub-messages) OF
           SET {problem          [0]  DeleteProblem,
                sequence-number  [1]  SequenceNumber}
}

FetchRestrictionError ::= SET {
  problems
    [0]  SET SIZE (1..ub-default-registrations) OF
           SET {problem      [3]  FetchRestrictionProblem,
                restriction
                  CHOICE {content-type    [0]  ContentType,
                          eit             [1]  MS-EITs,
                          content-length  [2]  ContentLength}}
}

RangeError ::= SET {problem  [0]  RangeProblem
}

SequenceNumberError ::= SET {
  problems
    [1]  SET SIZE (1..ub-messages) OF
           SET {problem          [0]  SequenceNumberProblem,
                sequence-number  [1]  SequenceNumber}
}

ServiceError ::= SET {problem  [0]  ServiceProblem
}

--  Administration Port Types
AdministrationError ::= INTEGER {
  register-rejected(1), new-credentials-unacceptable(2),
  old-credentials-incorrectly-specified(3), remote-bind-error(10)}

RegisterErrors ::= AdministrationError(register-rejected | remote-bind-error)

ChangeCredentialsErrors ::=
  AdministrationError
    (new-credentials-unacceptable | old-credentials-incorrectly-specified |
     remote-bind-error)

--  two definitions copied from [ITU-T Rec. X.411 | ISO/IEC 10021-4] Figure 2 
DeliverableContentTypes ::= SET SIZE (1..ub-content-types) OF ContentType

LabelsAndRedirections ::=
  SET SIZE (1..ub-labels-and-redirections) OF LabelAndRedirection

--  Security-related types
AuthenticationCheck ::= INTEGER {validated(1), failed(2)}

BindAuthenticationCheck ::= AuthenticationCheck

AuthenticationGeneration ::= INTEGER {generated(1), non-generated(2)}

Decipherment ::= INTEGER {success(1), failure(2)}

SignatureCheck ::= INTEGER {valid(1), failed(2)}

SignatureGeneration ::= INTEGER {generated(1), non-generated(2)}

--  Information contained in the notifications
CommonCreationAndDeletionInfo ::= INTEGER {
  unknown(0), ressourceOperation(1), managementOperation(2)}

--  These are types for the processing history-related attributes
ProcessingErrorFlag ::= BOOLEAN

ProcessingSummary ::= BIT STRING {
  idle(0), processed(1), rejected(2), name-resolution(3), dl-expansion(4),
  redirection(5), deferred-delivery(6), conversion(7), securityContextCheck(8)
}

--	at most one of idle, processed, and rejected bits shall be 'one':
--	idle bit 'one' means the MPR is waiting to be processed;
--	processed bit 'one' means the MPR was successfully processed;
--	rejected bit 'one' means that the MTS was not able to deliver the message
--	or the report or affirm the probe.
--	idle, processed, and rejected bits 'zero' means the MPR is
--	currently under process.
--	A 'name-resolution', 'redirection', 'deferred-delivery',
--	'conversion' or 'securityContextCheck' bit one means the corresponding
--	function was performed on the MPR.
--	if idle bit is set to 'one' (MPR idle), dl-expansion, redirection,
--	deferred-delivery and conversion bits shall be set to 'zero'.
ProcessingDetails ::= SEQUENCE OF ProcessingDetail

ProcessingDetail ::= CHOICE {
  name-resolution       [3]  NameResolutionProcessingInfo,
  dl-expansion          [4]  DLExpansionProcessingInfo,
  redirection           [5]  RedirectionProcessingInfo,
  deferred-delivery     [6]  DeferralOfDeliveryProcessingInfo,
  conversion            [7]  ConversionProcessingInfo,
  securityContextCheck  [8]  SecurityProcessingInfo
}

--  These come from X.411: MTS Abstract Service
ProcessingError ::= SET {
  non-delivery-reason       [0]  NonDeliveryReasonCode OPTIONAL,
  non-delivery-diagnostics  [1]  NonDeliveryDiagnosticCode OPTIONAL,
  supplementary-info        [2]  SupplementaryError
}

SupplementaryError ::= UniversalString

ConversionProcessingInfo ::= SET OF EMailFromToEIT

EMailFromToEIT ::= CHOICE {
  explicitConversion  [0]  ExplicitConversion,
  genericConversion   [1]  GenericConversion
}

GenericConversion ::= OBJECT IDENTIFIER

DLExpansionProcessingInfo ::= SEQUENCE {
  dlORName  ORAddressAndOptionalDirectoryName,
  actions   Actions
}

Actions ::= BIT STRING {
  owner-report(0), originator-on-previous-dl(1), secure-dl-operation(2)
}

RedirectionProcessingInfo ::= SET {
  redirection-reason  [0]  RedirectionReason,
  original            [1]  ORName OPTIONAL,
  redirected-to       [2]  ORName OPTIONAL
}

DeferralOfDeliveryProcessingInfo ::= DeferredDeliveryTime

--  Imported from X.411
SecurityProcessingInfo ::= SET {
  action           [0]  SecurityAction,
  security-policy  [1]  OBJECT IDENTIFIER OPTIONAL
}

SecurityAction ::= BIT STRING {
  unspecified(0), origin-authentication(1), security-label-check(2)}

NameResolutionProcessingInfo ::= DirectoryNameAndOptionalORAddress

DirectoryNameAndOptionalORAddress ::= ORName

DeliveryServiceType ::= INTEGER {
  mhs-delivery(0), physical-delivery(1), telex-delivery(2),
  teletex-delivery(3), g3-facsimile-delivery(4), g4-facsimile-delivery(5),
  videotex-delivery(6), telephone-delivery(7), other-delivery(8)}

MessageContentSize ::= INTEGER

RecipientsOnResponsibilityList ::= RecipientName

RecipientName ::= SET OF ORAddressAndOptionalDirectoryName

BindToken ::= CHOICE {
  signed     [0]  BindTokenSignedData,
  encrypted  [1]  BindTokenEncryptedData
}

Encipherment ::= INTEGER {encrypted(1), clear(2)}

MsBindAuthenticationCheck ::= AuthenticationCheck

OperationTime ::= Time

PermissibleSecurityContext ::= SET OF SecurityContext

--  related to ITU-T Rec. D.36
AccessRatePerDeliveryServiceType ::= SET OF REAL

ComponentRatesPerOctetsPerDeliveryServiceType ::= SET OF REAL

Currency ::= PrintableString

DeliveryComponentRateToPrmd ::= REAL

DeliveryComponentRateToUa ::= REAL

DestinationADMD ::= AdministrationDomainName

MessageSize ::= INTEGER

NumberOfAddressedPRMDs ::= INTEGER

NumberOfAddressedUas ::= INTEGER

NumberOfMessagesPerDeliveryServiceType ::= SET OF INTEGER

OriginatingADMD ::= AdministrationDomainName

ProcessingComponentRate ::= REAL

TotalNumberOfORAddresses ::= INTEGER

ConversionStatistics ::= SEQUENCE {
  oldEit  EncodedInformationTypes,
  newEit  EncodedInformationTypes
}

DestinationDomainDeliveryList ::= SET OF DeliveredRecipientField

DeliveredRecipientField ::= SET {
  recipient-name         ORAddressAndOptionalDirectoryName,
  message-delivery-time  Time,
  delivery-service       [1]  DeliveryService OPTIONAL,
  --  absence means no delivery cost incurred
  conversion-statistics  [2]  ConversionStatistics OPTIONAL, --  absence means no conversion cost incurred 
  edirector-name         [5]  ORAddressAndOptionalDirectoryName OPTIONAL
}

DeliveryService ::= SET {
  delivery-service-type       DeliveryServiceType,
  per-message-component-rate  [1]  PerMessageComponentRate OPTIONAL,
  per-octet-component-rate    [2]  PerOctetComponentRate OPTIONAL
}

PerMessageComponentRate ::= INTEGER

PerOctetComponentRate ::= INTEGER

OriginatingDomainTransferOutList ::= SET OF TransferRecipientField

ServiceAccessCharge ::= INTEGER

TransitDomainTransferOutList ::= SET OF TransferRecipientField

TransferRecipientField ::= MTAName

EntryExitMTANames ::= SEQUENCE OF MTAName

EnvelopeType ::= INTEGER {
  message-delivery-envelope(0), message-submission-envelope(1),
  message-transfer-envelope(2), probe-submission-envelope(3),
  probe-transfer-envelope(4), report-delivery-envelope(5),
  report-transfer-envelope(6)}

InternalTrace ::= InternalTraceInformation

Trace ::= TraceInformation

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