//--------------------------------------------------------------------------
// Copyright (C) 2025-2026 Cisco and/or its affiliates. All rights reserved.
//
// This program is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License Version 2 as published
// by the Free Software Foundation.  You may not use, modify or distribute
// this program under any other version of the GNU General Public License.
//
// This program is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
//--------------------------------------------------------------------------

// opcua_msg_service.h author Daniil Kolomiiets <dkolomii@cisco.com>

#ifndef OPCUA_MSG_SERVICE_H
#define OPCUA_MSG_SERVICE_H

// Node Service IDs obtained from
// github.com/OPCFoundation/UA-Nodeset/blob/UA-1.05.04-2024-12-01/Schema/NodeIds.csv
enum OpcuaMsgServiceType
{
    OPCUA_MSG_SERVICE_UNDEFINED = 0,
    OPCUA_MSG_SERVICE_SERVICE_FAULT = 397,
    OPCUA_MSG_SERVICE_FIND_SERVERS_REQUEST = 422,
    OPCUA_MSG_SERVICE_FIND_SERVERS_RESPONSE = 425,
    OPCUA_MSG_SERVICE_GET_ENDPOINTS_REQUEST = 428,
    OPCUA_MSG_SERVICE_GET_ENDPOINTS_RESPONSE = 431,
    OPCUA_MSG_SERVICE_REGISTER_SERVER_REQUEST = 437,
    OPCUA_MSG_SERVICE_REGISTER_SERVER_RESPONSE = 440,
    OPCUA_MSG_SERVICE_OPEN_SECURE_CHANNEL_REQUEST = 446,
    OPCUA_MSG_SERVICE_OPEN_SECURE_CHANNEL_RESPONSE = 449,
    OPCUA_MSG_SERVICE_CLOSE_SECURE_CHANNEL_REQUEST = 452,
    OPCUA_MSG_SERVICE_CLOSE_SECURE_CHANNEL_RESPONSE = 455,
    OPCUA_MSG_SERVICE_CREATE_SESSION_REQUEST = 461,
    OPCUA_MSG_SERVICE_CREATE_SESSION_RESPONSE = 464,
    OPCUA_MSG_SERVICE_ACTIVATE_SESSION_REQUEST = 467,
    OPCUA_MSG_SERVICE_ACTIVATE_SESSION_RESPONSE = 470,
    OPCUA_MSG_SERVICE_CLOSE_SESSION_REQUEST = 473,
    OPCUA_MSG_SERVICE_CLOSE_SESSION_RESPONSE = 476,
    OPCUA_MSG_SERVICE_CANCEL_REQUEST = 479,
    OPCUA_MSG_SERVICE_CANCEL_RESPONSE = 482,
    OPCUA_MSG_SERVICE_ADD_NODES_REQUEST = 488,
    OPCUA_MSG_SERVICE_ADD_NODES_RESPONSE = 491,
    OPCUA_MSG_SERVICE_ADD_REFERENCES_REQUEST = 494,
    OPCUA_MSG_SERVICE_ADD_REFERENCES_RESPONSE = 497,
    OPCUA_MSG_SERVICE_DELETE_NODES_REQUEST = 500,
    OPCUA_MSG_SERVICE_DELETE_NODES_RESPONSE = 503,
    OPCUA_MSG_SERVICE_DELETE_REFERENCES_REQUEST = 506,
    OPCUA_MSG_SERVICE_DELETE_REFERENCES_RESPONSE = 509,
    OPCUA_MSG_SERVICE_BROWSE_REQUEST = 527,
    OPCUA_MSG_SERVICE_BROWSE_RESPONSE = 530,
    OPCUA_MSG_SERVICE_BROWSE_NEXT_REQUEST = 533,
    OPCUA_MSG_SERVICE_BROWSE_NEXT_RESPONSE = 536,
    OPCUA_MSG_SERVICE_TRANSLATE_BROWSE_PATHS_TO_NODE_IDS_REQUEST = 554,
    OPCUA_MSG_SERVICE_TRANSLATE_BROWSE_PATHS_TO_NODE_IDS_RESPONSE = 557,
    OPCUA_MSG_SERVICE_REGISTER_NODES_REQUEST = 560,
    OPCUA_MSG_SERVICE_REGISTER_NODES_RESPONSE = 563,
    OPCUA_MSG_SERVICE_UNREGISTER_NODES_REQUEST = 566,
    OPCUA_MSG_SERVICE_UNREGISTER_NODES_RESPONSE = 569,
    OPCUA_MSG_SERVICE_QUERY_FIRST_REQUEST = 615,
    OPCUA_MSG_SERVICE_QUERY_FIRST_RESPONSE = 618,
    OPCUA_MSG_SERVICE_QUERY_NEXT_REQUEST = 621,
    OPCUA_MSG_SERVICE_QUERY_NEXT_RESPONSE = 624,
    OPCUA_MSG_SERVICE_READ_REQUEST = 631,
    OPCUA_MSG_SERVICE_READ_RESPONSE = 634,
    OPCUA_MSG_SERVICE_HISTORY_READ_REQUEST = 664,
    OPCUA_MSG_SERVICE_HISTORY_READ_RESPONSE = 667,
    OPCUA_MSG_SERVICE_WRITE_REQUEST = 673,
    OPCUA_MSG_SERVICE_WRITE_RESPONSE = 676,
    OPCUA_MSG_SERVICE_HISTORY_UPDATE_REQUEST = 700,
    OPCUA_MSG_SERVICE_HISTORY_UPDATE_RESPONSE = 703,
    OPCUA_MSG_SERVICE_CALL_METHOD_REQUEST = 706,
    OPCUA_MSG_SERVICE_CALL_REQUEST = 712,
    OPCUA_MSG_SERVICE_CALL_RESPONSE = 715,
    OPCUA_MSG_SERVICE_MONITORED_ITEM_CREATE_REQUEST = 745,
    OPCUA_MSG_SERVICE_CREATE_MONITORED_ITEMS_REQUEST = 751,
    OPCUA_MSG_SERVICE_CREATE_MONITORED_ITEMS_RESPONSE = 754,
    OPCUA_MSG_SERVICE_MONITORED_ITEM_MODIFY_REQUEST = 757,
    OPCUA_MSG_SERVICE_MODIFY_MONITORED_ITEMS_REQUEST = 763,
    OPCUA_MSG_SERVICE_MODIFY_MONITORED_ITEMS_RESPONSE = 766,
    OPCUA_MSG_SERVICE_SET_MONITORING_MODE_REQUEST = 769,
    OPCUA_MSG_SERVICE_SET_MONITORING_MODE_RESPONSE = 772,
    OPCUA_MSG_SERVICE_SET_TRIGGERING_REQUEST = 775,
    OPCUA_MSG_SERVICE_SET_TRIGGERING_RESPONSE = 778,
    OPCUA_MSG_SERVICE_DELETE_MONITORED_ITEMS_REQUEST = 781,
    OPCUA_MSG_SERVICE_DELETE_MONITORED_ITEMS_RESPONSE = 784,
    OPCUA_MSG_SERVICE_CREATE_SUBSCRIPTION_REQUEST = 787,
    OPCUA_MSG_SERVICE_CREATE_SUBSCRIPTION_RESPONSE = 790,
    OPCUA_MSG_SERVICE_MODIFY_SUBSCRIPTION_REQUEST = 793,
    OPCUA_MSG_SERVICE_MODIFY_SUBSCRIPTION_RESPONSE = 796,
    OPCUA_MSG_SERVICE_SET_PUBLISHING_MODE_REQUEST = 799,
    OPCUA_MSG_SERVICE_SET_PUBLISHING_MODE_RESPONSE = 802,
    OPCUA_MSG_SERVICE_PUBLISH_REQUEST = 826,
    OPCUA_MSG_SERVICE_PUBLISH_RESPONSE = 829,
    OPCUA_MSG_SERVICE_REPUBLISH_REQUEST = 832,
    OPCUA_MSG_SERVICE_REPUBLISH_RESPONSE = 835,
    OPCUA_MSG_SERVICE_TRANSFER_SUBSCRIPTIONS_REQUEST = 841,
    OPCUA_MSG_SERVICE_TRANSFER_SUBSCRIPTIONS_RESPONSE = 844,
    OPCUA_MSG_SERVICE_DELETE_SUBSCRIPTIONS_REQUEST = 847,
    OPCUA_MSG_SERVICE_DELETE_SUBSCRIPTIONS_RESPONSE = 850,
    OPCUA_MSG_SERVICE_FIND_SERVERS_ON_NETWORK_REQUEST = 12208,
    OPCUA_MSG_SERVICE_FIND_SERVERS_ON_NETWORK_RESPONSE = 12209,
    OPCUA_MSG_SERVICE_REGISTER_SERVER2_REQUEST = 12211,
    OPCUA_MSG_SERVICE_REGISTER_SERVER2_RESPONSE = 12212,
    OPCUA_MSG_SERVICE_SESSIONLESS_INVOKE_REQUEST_TYPE = 15903,
    OPCUA_MSG_SERVICE_SESSIONLESS_INVOKE_RESPONSE_TYPE = 21001,
};

#endif
