  TYPE
    nat$get_attributes = array [1 .. * ] of
      nat$get_attribute,

    nat$get_attribute = record
{
{ The caller of the interfaces which use this record must initialize the values
{ of certain fields in this record which are used as input parameters.
{
{ The value of the KIND field must be initialized to identify the attribute
{ whose value is to be returned.
{
{ The value of any field of type ^SEQ (*) must be initialized to point to a
{ program variable where the requested attribute value is to be returned.
{ The length of the returned attribute value is returned in the corresponding
{ "length" field. If the size of the requested attribute value exceeds the size
{ of the specified program variable, then an abnormal status is returned.
{
      case kind: {input} nat$connection_attribute_kind of
      = nac$client_identity =
        client_identity: nat$client_identity,
      = nac$connect_data =
        connect_data: {input} ^SEQ ( * ),
        connect_data_length: nat$data_length,
      = nac$connection_state =
        connection_state: nat$connection_state,
      = nac$data_transfer_timeout =
        data_transfer_timeout: nat$wait_time,
      = nac$eoi_message =
        eoi_message: nat$eoi_message,
      = nac$eoi_message_enabled =
        eoi_message_enabled: boolean,
      = nac$eoi_peer_termination =
        eoi_peer_termination: boolean,
      = nac$local_address =
        local_address: nat$sap_identifier,
      = nac$null_attribute =
{ This value indicates that the record is to be ignored. It may be used as a
{ "placeholder" in an array of records.
        ,
      = nac$optimum_transfer_unit_incr =
        optimum_transfer_unit_incr: nat$data_length,
      = nac$optimum_transfer_unit_size =
        optimum_transfer_unit_size: nat$data_length,
      = nac$peer_accounting_information =
        peer_accounting_information: {input} ^SEQ ( * ),
        peer_accounting_info_length: nat$data_length,
      = nac$peer_address =
        peer_address: nat$network_address,
      = nac$peer_connect_data =
        peer_connect_data: {input} ^SEQ ( * ),
        peer_connect_data_length: nat$data_length,
      = nac$peer_termination_data =
        peer_termination_data: {input} ^SEQ ( * ),
        peer_termination_data_length: nat$data_length,
      = nac$protocol =
        protocol: nat$protocol,
      = nac$receive_wait_swapout =
        receive_wait_swapout: boolean,
      = nac$termination_data =
        termination_data: {input} ^SEQ ( * ),
        termination_data_length: nat$data_length,
      = nac$termination_reason =
        termination_reason: nat$termination_reason,
      casend,
    recend;

*copyc nat$client_identity
*copyc nat$connection_attribute_kind
*copyc nat$connection_state
*copyc nat$data_length
*copyc nat$eoi_message
*copyc nat$network_address
*copyc nat$protocol
*copyc nat$sap_identifier
*copyc nat$termination_reason
*copyc nat$wait_time
