
  TYPE
    nat$server_attributes_control = record
      access_control: nlt$access_control,
      server_attributes: ^nat$server_attributes,
    recend,

    nat$server_attributes = record
      access_control: nlt$access_control,
      next_entry: ^nat$server_attributes,
      server: nat$application_name,
      server_status: nat$application_status,
      max_connections: nat$number_of_connections,
      server_titles: ^nat$server_titles_list,
      server_managed_titles: ^nat$title_pattern_list,
      added_titles: ^nat$added_title,
{ Server validation.
      server_capability: ost$name,
      server_ring: ost$ring,
      server_system_privilege: boolean,
{ Other attributes.
      accept_connection: boolean,
      client_validation_capability: ost$name,
      client_info_source: nat$client_info_source,
      client_addresses: ^array [1..*] of nat$client_address,
      reserved_application_id: boolean,
      application_id: nat$generic_sap_identifier,
      sap_open: boolean,
      message_priority: nat$network_message_priority,
      flags: packed record
        nam_accounting: boolean
      recend,
      protocol: nat$protocol,
      connection_count: nat$number_of_connections,
      attempted_connection_count: integer,
      rejected_connection_attempts: integer,
      server_connections_list: ^nat$server_connection_attribute,
      wait_for_connection: ^nat$wait_for_connection,
      assigned_connections_list: ^nat$server_connection_attribute,
      acquire_in_progress: ^nat$server_connection_attribute,
      server_job_list: ^nat$server_job_attributes,
      CASE nam_initiated_server: boolean OF
      = TRUE =
        server_job_validation_source: nat$server_validation_source,
        server_job_max_connections: nat$number_of_connections,
        service_file_defined: boolean,
        server_job_init_pending: boolean,
      = FALSE =
        protocol_activated: boolean,
      CASEND,
    recend,

    nat$server_titles_list = array [1..*] of nat$server_title,
    nat$server_title = record
      title: string (nac$max_title_length),
      distribute_title: boolean,
      priority: nat$directory_priority,
      data_length: nat$directory_data_length,
      data: SEQ (REP nac$max_directory_data_length OF cell),
      directory_id: nat$directory_entry_identifier,
    recend,

    nat$selected_titles_list = array [1..*] of nat$selected_title,
    nat$selected_title = record
      title: string (nac$max_title_length),
      distribute_title: boolean,
      priority: nat$directory_priority,
      data_length: nat$directory_data_length,
      data: SEQ (REP nac$max_directory_data_length OF cell),
    recend,

    nat$added_title = record
      next_title: ^nat$added_title,
      identifier: nat$directory_entry_identifier,
      distribute_title: boolean,
      priority: nat$directory_priority,
      data_length: nat$directory_data_length,
      data: SEQ (REP nac$max_directory_data_length OF cell),
      title: nat$title,
    recend,

    nat$server_job_attributes = record
      next_entry: ^nat$server_job_attributes,
      job_name: jmt$system_supplied_name,
      job_status: nat$server_job_status,
      time_stamp: integer,
      max_connections_per_server_job: nat$number_of_connections,
      connection_count: nat$number_of_connections,
      assigned_connection_count: nat$number_of_connections,
    recend,

    nat$server_job_status = (nac$server_job_initiated, nac$server_job_attached,
      nac$server_job_deactivated),

    nat$server_connection_kind = (nac$owned_by_server, nac$owned_by_job, nac$in_dialog,
      nac$assigned_to_job),
    nat$server_connection_attribute = record
      next_entry: ^nat$server_connection_attribute,
      connection_id: nat$connection_id,
      CASE connection_kind: nat$server_connection_kind OF
      = nac$owned_by_job =
        job_name: jmt$system_supplied_name,
      = nac$assigned_to_job =
        destination_job_name: jmt$system_supplied_name,
        directed_connection: boolean,
        time_stamp: integer,
        terminate_connection: boolean,  { This flag can be set only when acquire connection is in progress}
      CASEND,
    recend,

    nat$client_address = record
      network_id: nat$network_identifier,
      system_kind: nat$client_system_kind,
      system_id: nat$system_identifier {used only if system_kind is nac$any_system_kind},
      reserved_application_id: boolean,
      application_id: nat$internet_sap_identifier {used only for reserved_application_id = TRUE},
    recend,

    nat$client_system_kind = (nac$nosve_system_kind, nac$cdcnet_system_kind, nac$any_system_kind),

    nat$client_info_source = (nac$client_info_via_dialog, nac$client_info_via_conn_data,
       nac$client_info_via_either),
{ *** NOTE: The last two values are not supported

    nat$server_validation_source = (nac$server_job, nac$client),

    nat$wait_for_connection = record
      next_entry: ^nat$wait_for_connection,
      job_name: jmt$system_supplied_name,
      task_id: ost$global_task_id,
      recend,

    nat$max_titles = 0 .. 0ffff(16),
    nat$display_job_attributes = record
      job_name: jmt$system_supplied_name,
      connection_count: nat$number_of_connections,
    recend;

*copyc jmt$system_supplied_name
*copyc nat$connection_id
*copyc nat$application_name
*copyc nat$application_status
*copyc nat$directory_data
*copyc nat$directory_entry_identifier
*copyc nat$directory_priority
*copyc nat$generic_sap_identifier
*copyc nat$internet_sap_identifier
*copyc nat$network_address
*copyc nat$network_message_priority
*copyc nat$number_of_connections
*copyc nat$protocol
*copyc nat$title
*copyc nat$title_pattern
*copyc nat$title_pattern_list
*copyc nlt$access_control
*copyc osd$virtual_address
*copyc ost$global_task_id
