etptypes 1.0.1+1.2

Energistics Transport Protocol (ETP) Message types
Documentation
// SPDX-FileCopyrightText: 2023 Geosiris
// SPDX-License-Identifier: Apache-2.0 OR MIT
#![allow(dead_code)]
#![allow(unused_imports)]
#![allow(non_camel_case_types)]
use crate::energistics::etp::v12::datatypes::message_header::MessageHeader;
use crate::helpers::*;
use apache_avro::{AvroResult, Schema};
use bytes;
use derivative::Derivative;
use enum_dispatch::enum_dispatch;
use std::collections::HashMap;
use std::io::Read;
use std::time::SystemTime;

#[enum_dispatch]
#[derive(Debug, PartialEq, Clone, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "PascalCase")]
pub enum ProtocolMessage {
    Core_RequestSession(crate::energistics::etp::v12::protocol::core::request_session::RequestSession),
	Core_OpenSession(crate::energistics::etp::v12::protocol::core::open_session::OpenSession),
	Core_CloseSession(crate::energistics::etp::v12::protocol::core::close_session::CloseSession),
	Core_Authorize(crate::energistics::etp::v12::protocol::core::authorize::Authorize),
	Core_AuthorizeResponse(crate::energistics::etp::v12::protocol::core::authorize_response::AuthorizeResponse),
	Core_Ping(crate::energistics::etp::v12::protocol::core::ping::Ping),
	Core_Pong(crate::energistics::etp::v12::protocol::core::pong::Pong),
	Core_ProtocolException(crate::energistics::etp::v12::protocol::core::protocol_exception::ProtocolException),
	Core_Acknowledge(crate::energistics::etp::v12::protocol::core::acknowledge::Acknowledge),
	ChannelStreaming_ChannelMetadata(crate::energistics::etp::v12::protocol::channel_streaming::channel_metadata::ChannelMetadata),
	ChannelStreaming_ChannelData(crate::energistics::etp::v12::protocol::channel_streaming::channel_data::ChannelData),
	ChannelStreaming_StartStreaming(crate::energistics::etp::v12::protocol::channel_streaming::start_streaming::StartStreaming),
	ChannelStreaming_StopStreaming(crate::energistics::etp::v12::protocol::channel_streaming::stop_streaming::StopStreaming),
	ChannelStreaming_TruncateChannels(crate::energistics::etp::v12::protocol::channel_streaming::truncate_channels::TruncateChannels),
	ChannelDataFrame_GetFrameMetadata(crate::energistics::etp::v12::protocol::channel_data_frame::get_frame_metadata::GetFrameMetadata),
	ChannelDataFrame_GetFrameMetadataResponse(crate::energistics::etp::v12::protocol::channel_data_frame::get_frame_metadata_response::GetFrameMetadataResponse),
	ChannelDataFrame_GetFrame(crate::energistics::etp::v12::protocol::channel_data_frame::get_frame::GetFrame),
	ChannelDataFrame_GetFrameResponseHeader(crate::energistics::etp::v12::protocol::channel_data_frame::get_frame_response_header::GetFrameResponseHeader),
	ChannelDataFrame_CancelGetFrame(crate::energistics::etp::v12::protocol::channel_data_frame::cancel_get_frame::CancelGetFrame),
	ChannelDataFrame_GetFrameResponseRows(crate::energistics::etp::v12::protocol::channel_data_frame::get_frame_response_rows::GetFrameResponseRows),
	Discovery_GetResources(crate::energistics::etp::v12::protocol::discovery::get_resources::GetResources),
	Discovery_GetResourcesResponse(crate::energistics::etp::v12::protocol::discovery::get_resources_response::GetResourcesResponse),
	Discovery_GetDeletedResources(crate::energistics::etp::v12::protocol::discovery::get_deleted_resources::GetDeletedResources),
	Discovery_GetDeletedResourcesResponse(crate::energistics::etp::v12::protocol::discovery::get_deleted_resources_response::GetDeletedResourcesResponse),
	Discovery_GetResourcesEdgesResponse(crate::energistics::etp::v12::protocol::discovery::get_resources_edges_response::GetResourcesEdgesResponse),
	Store_GetDataObjects(crate::energistics::etp::v12::protocol::store::get_data_objects::GetDataObjects),
	Store_PutDataObjects(crate::energistics::etp::v12::protocol::store::put_data_objects::PutDataObjects),
	Store_DeleteDataObjects(crate::energistics::etp::v12::protocol::store::delete_data_objects::DeleteDataObjects),
	Store_GetDataObjectsResponse(crate::energistics::etp::v12::protocol::store::get_data_objects_response::GetDataObjectsResponse),
	Store_Chunk(crate::energistics::etp::v12::protocol::store::chunk::Chunk),
	Store_PutDataObjectsResponse(crate::energistics::etp::v12::protocol::store::put_data_objects_response::PutDataObjectsResponse),
	Store_DeleteDataObjectsResponse(crate::energistics::etp::v12::protocol::store::delete_data_objects_response::DeleteDataObjectsResponse),
	StoreNotification_ObjectChanged(crate::energistics::etp::v12::protocol::store_notification::object_changed::ObjectChanged),
	StoreNotification_ObjectDeleted(crate::energistics::etp::v12::protocol::store_notification::object_deleted::ObjectDeleted),
	StoreNotification_UnsubscribeNotifications(crate::energistics::etp::v12::protocol::store_notification::unsubscribe_notifications::UnsubscribeNotifications),
	StoreNotification_ObjectAccessRevoked(crate::energistics::etp::v12::protocol::store_notification::object_access_revoked::ObjectAccessRevoked),
	StoreNotification_SubscribeNotifications(crate::energistics::etp::v12::protocol::store_notification::subscribe_notifications::SubscribeNotifications),
	StoreNotification_SubscriptionEnded(crate::energistics::etp::v12::protocol::store_notification::subscription_ended::SubscriptionEnded),
	StoreNotification_UnsolicitedStoreNotifications(crate::energistics::etp::v12::protocol::store_notification::unsolicited_store_notifications::UnsolicitedStoreNotifications),
	StoreNotification_Chunk(crate::energistics::etp::v12::protocol::store_notification::chunk::Chunk),
	StoreNotification_SubscribeNotificationsResponse(crate::energistics::etp::v12::protocol::store_notification::subscribe_notifications_response::SubscribeNotificationsResponse),
	StoreNotification_ObjectActiveStatusChanged(crate::energistics::etp::v12::protocol::store_notification::object_active_status_changed::ObjectActiveStatusChanged),
	GrowingObject_DeleteParts(crate::energistics::etp::v12::protocol::growing_object::delete_parts::DeleteParts),
	GrowingObject_GetParts(crate::energistics::etp::v12::protocol::growing_object::get_parts::GetParts),
	GrowingObject_GetPartsByRange(crate::energistics::etp::v12::protocol::growing_object::get_parts_by_range::GetPartsByRange),
	GrowingObject_PutParts(crate::energistics::etp::v12::protocol::growing_object::put_parts::PutParts),
	GrowingObject_GetPartsResponse(crate::energistics::etp::v12::protocol::growing_object::get_parts_response::GetPartsResponse),
	GrowingObject_ReplacePartsByRange(crate::energistics::etp::v12::protocol::growing_object::replace_parts_by_range::ReplacePartsByRange),
	GrowingObject_GetPartsMetadata(crate::energistics::etp::v12::protocol::growing_object::get_parts_metadata::GetPartsMetadata),
	GrowingObject_GetPartsMetadataResponse(crate::energistics::etp::v12::protocol::growing_object::get_parts_metadata_response::GetPartsMetadataResponse),
	GrowingObject_GetPartsByRangeResponse(crate::energistics::etp::v12::protocol::growing_object::get_parts_by_range_response::GetPartsByRangeResponse),
	GrowingObject_DeletePartsResponse(crate::energistics::etp::v12::protocol::growing_object::delete_parts_response::DeletePartsResponse),
	GrowingObject_PutPartsResponse(crate::energistics::etp::v12::protocol::growing_object::put_parts_response::PutPartsResponse),
	GrowingObject_GetGrowingDataObjectsHeader(crate::energistics::etp::v12::protocol::growing_object::get_growing_data_objects_header::GetGrowingDataObjectsHeader),
	GrowingObject_GetGrowingDataObjectsHeaderResponse(crate::energistics::etp::v12::protocol::growing_object::get_growing_data_objects_header_response::GetGrowingDataObjectsHeaderResponse),
	GrowingObject_PutGrowingDataObjectsHeader(crate::energistics::etp::v12::protocol::growing_object::put_growing_data_objects_header::PutGrowingDataObjectsHeader),
	GrowingObject_PutGrowingDataObjectsHeaderResponse(crate::energistics::etp::v12::protocol::growing_object::put_growing_data_objects_header_response::PutGrowingDataObjectsHeaderResponse),
	GrowingObject_ReplacePartsByRangeResponse(crate::energistics::etp::v12::protocol::growing_object::replace_parts_by_range_response::ReplacePartsByRangeResponse),
	GrowingObject_GetChangeAnnotations(crate::energistics::etp::v12::protocol::growing_object::get_change_annotations::GetChangeAnnotations),
	GrowingObject_GetChangeAnnotationsResponse(crate::energistics::etp::v12::protocol::growing_object::get_change_annotations_response::GetChangeAnnotationsResponse),
	GrowingObjectNotification_PartsChanged(crate::energistics::etp::v12::protocol::growing_object_notification::parts_changed::PartsChanged),
	GrowingObjectNotification_PartsDeleted(crate::energistics::etp::v12::protocol::growing_object_notification::parts_deleted::PartsDeleted),
	GrowingObjectNotification_UnsubscribePartNotification(crate::energistics::etp::v12::protocol::growing_object_notification::unsubscribe_part_notification::UnsubscribePartNotification),
	GrowingObjectNotification_PartsReplacedByRange(crate::energistics::etp::v12::protocol::growing_object_notification::parts_replaced_by_range::PartsReplacedByRange),
	GrowingObjectNotification_SubscribePartNotifications(crate::energistics::etp::v12::protocol::growing_object_notification::subscribe_part_notifications::SubscribePartNotifications),
	GrowingObjectNotification_PartSubscriptionEnded(crate::energistics::etp::v12::protocol::growing_object_notification::part_subscription_ended::PartSubscriptionEnded),
	GrowingObjectNotification_UnsolicitedPartNotifications(crate::energistics::etp::v12::protocol::growing_object_notification::unsolicited_part_notifications::UnsolicitedPartNotifications),
	GrowingObjectNotification_SubscribePartNotificationsResponse(crate::energistics::etp::v12::protocol::growing_object_notification::subscribe_part_notifications_response::SubscribePartNotificationsResponse),
	DataArray_GetDataArraysResponse(crate::energistics::etp::v12::protocol::data_array::get_data_arrays_response::GetDataArraysResponse),
	DataArray_GetDataArrays(crate::energistics::etp::v12::protocol::data_array::get_data_arrays::GetDataArrays),
	DataArray_GetDataSubarrays(crate::energistics::etp::v12::protocol::data_array::get_data_subarrays::GetDataSubarrays),
	DataArray_PutDataArrays(crate::energistics::etp::v12::protocol::data_array::put_data_arrays::PutDataArrays),
	DataArray_PutDataSubarrays(crate::energistics::etp::v12::protocol::data_array::put_data_subarrays::PutDataSubarrays),
	DataArray_GetDataArrayMetadata(crate::energistics::etp::v12::protocol::data_array::get_data_array_metadata::GetDataArrayMetadata),
	DataArray_GetDataArrayMetadataResponse(crate::energistics::etp::v12::protocol::data_array::get_data_array_metadata_response::GetDataArrayMetadataResponse),
	DataArray_GetDataSubarraysResponse(crate::energistics::etp::v12::protocol::data_array::get_data_subarrays_response::GetDataSubarraysResponse),
	DataArray_PutUninitializedDataArrays(crate::energistics::etp::v12::protocol::data_array::put_uninitialized_data_arrays::PutUninitializedDataArrays),
	DataArray_PutDataArraysResponse(crate::energistics::etp::v12::protocol::data_array::put_data_arrays_response::PutDataArraysResponse),
	DataArray_PutDataSubarraysResponse(crate::energistics::etp::v12::protocol::data_array::put_data_subarrays_response::PutDataSubarraysResponse),
	DataArray_PutUninitializedDataArraysResponse(crate::energistics::etp::v12::protocol::data_array::put_uninitialized_data_arrays_response::PutUninitializedDataArraysResponse),
	DiscoveryQuery_FindResources(crate::energistics::etp::v12::protocol::discovery_query::find_resources::FindResources),
	DiscoveryQuery_FindResourcesResponse(crate::energistics::etp::v12::protocol::discovery_query::find_resources_response::FindResourcesResponse),
	StoreQuery_FindDataObjects(crate::energistics::etp::v12::protocol::store_query::find_data_objects::FindDataObjects),
	StoreQuery_FindDataObjectsResponse(crate::energistics::etp::v12::protocol::store_query::find_data_objects_response::FindDataObjectsResponse),
	StoreQuery_Chunk(crate::energistics::etp::v12::protocol::store_query::chunk::Chunk),
	GrowingObjectQuery_FindParts(crate::energistics::etp::v12::protocol::growing_object_query::find_parts::FindParts),
	GrowingObjectQuery_FindPartsResponse(crate::energistics::etp::v12::protocol::growing_object_query::find_parts_response::FindPartsResponse),
	Transaction_StartTransaction(crate::energistics::etp::v12::protocol::transaction::start_transaction::StartTransaction),
	Transaction_StartTransactionResponse(crate::energistics::etp::v12::protocol::transaction::start_transaction_response::StartTransactionResponse),
	Transaction_CommitTransaction(crate::energistics::etp::v12::protocol::transaction::commit_transaction::CommitTransaction),
	Transaction_RollbackTransaction(crate::energistics::etp::v12::protocol::transaction::rollback_transaction::RollbackTransaction),
	Transaction_CommitTransactionResponse(crate::energistics::etp::v12::protocol::transaction::commit_transaction_response::CommitTransactionResponse),
	Transaction_RollbackTransactionResponse(crate::energistics::etp::v12::protocol::transaction::rollback_transaction_response::RollbackTransactionResponse),
	ChannelSubscribe_GetChannelMetadata(crate::energistics::etp::v12::protocol::channel_subscribe::get_channel_metadata::GetChannelMetadata),
	ChannelSubscribe_GetChannelMetadataResponse(crate::energistics::etp::v12::protocol::channel_subscribe::get_channel_metadata_response::GetChannelMetadataResponse),
	ChannelSubscribe_SubscribeChannels(crate::energistics::etp::v12::protocol::channel_subscribe::subscribe_channels::SubscribeChannels),
	ChannelSubscribe_ChannelData(crate::energistics::etp::v12::protocol::channel_subscribe::channel_data::ChannelData),
	ChannelSubscribe_RangeReplaced(crate::energistics::etp::v12::protocol::channel_subscribe::range_replaced::RangeReplaced),
	ChannelSubscribe_UnsubscribeChannels(crate::energistics::etp::v12::protocol::channel_subscribe::unsubscribe_channels::UnsubscribeChannels),
	ChannelSubscribe_SubscriptionsStopped(crate::energistics::etp::v12::protocol::channel_subscribe::subscriptions_stopped::SubscriptionsStopped),
	ChannelSubscribe_GetRanges(crate::energistics::etp::v12::protocol::channel_subscribe::get_ranges::GetRanges),
	ChannelSubscribe_GetRangesResponse(crate::energistics::etp::v12::protocol::channel_subscribe::get_ranges_response::GetRangesResponse),
	ChannelSubscribe_CancelGetRanges(crate::energistics::etp::v12::protocol::channel_subscribe::cancel_get_ranges::CancelGetRanges),
	ChannelSubscribe_SubscribeChannelsResponse(crate::energistics::etp::v12::protocol::channel_subscribe::subscribe_channels_response::SubscribeChannelsResponse),
	ChannelSubscribe_ChannelsTruncated(crate::energistics::etp::v12::protocol::channel_subscribe::channels_truncated::ChannelsTruncated),
	ChannelSubscribe_GetChangeAnnotations(crate::energistics::etp::v12::protocol::channel_subscribe::get_change_annotations::GetChangeAnnotations),
	ChannelSubscribe_GetChangeAnnotationsResponse(crate::energistics::etp::v12::protocol::channel_subscribe::get_change_annotations_response::GetChangeAnnotationsResponse),
	ChannelDataLoad_OpenChannels(crate::energistics::etp::v12::protocol::channel_data_load::open_channels::OpenChannels),
	ChannelDataLoad_OpenChannelsResponse(crate::energistics::etp::v12::protocol::channel_data_load::open_channels_response::OpenChannelsResponse),
	ChannelDataLoad_CloseChannels(crate::energistics::etp::v12::protocol::channel_data_load::close_channels::CloseChannels),
	ChannelDataLoad_ChannelData(crate::energistics::etp::v12::protocol::channel_data_load::channel_data::ChannelData),
	ChannelDataLoad_ReplaceRange(crate::energistics::etp::v12::protocol::channel_data_load::replace_range::ReplaceRange),
	ChannelDataLoad_ChannelsClosed(crate::energistics::etp::v12::protocol::channel_data_load::channels_closed::ChannelsClosed),
	ChannelDataLoad_ReplaceRangeResponse(crate::energistics::etp::v12::protocol::channel_data_load::replace_range_response::ReplaceRangeResponse),
	ChannelDataLoad_TruncateChannels(crate::energistics::etp::v12::protocol::channel_data_load::truncate_channels::TruncateChannels),
	ChannelDataLoad_TruncateChannelsResponse(crate::energistics::etp::v12::protocol::channel_data_load::truncate_channels_response::TruncateChannelsResponse),
	Dataspace_GetDataspaces(crate::energistics::etp::v12::protocol::dataspace::get_dataspaces::GetDataspaces),
	Dataspace_GetDataspacesResponse(crate::energistics::etp::v12::protocol::dataspace::get_dataspaces_response::GetDataspacesResponse),
	Dataspace_PutDataspaces(crate::energistics::etp::v12::protocol::dataspace::put_dataspaces::PutDataspaces),
	Dataspace_DeleteDataspaces(crate::energistics::etp::v12::protocol::dataspace::delete_dataspaces::DeleteDataspaces),
	Dataspace_DeleteDataspacesResponse(crate::energistics::etp::v12::protocol::dataspace::delete_dataspaces_response::DeleteDataspacesResponse),
	Dataspace_PutDataspacesResponse(crate::energistics::etp::v12::protocol::dataspace::put_dataspaces_response::PutDataspacesResponse),
	SupportedTypes_GetSupportedTypes(crate::energistics::etp::v12::protocol::supported_types::get_supported_types::GetSupportedTypes),
	SupportedTypes_GetSupportedTypesResponse(crate::energistics::etp::v12::protocol::supported_types::get_supported_types_response::GetSupportedTypesResponse),
	WitsmlSoap_WMLS_AddToStore(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_add_to_store::WMLS_AddToStore),
	WitsmlSoap_WMLS_AddToStoreResponse(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_add_to_store_response::WMLS_AddToStoreResponse),
	WitsmlSoap_WMLS_DeleteFromStore(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_delete_from_store::WMLS_DeleteFromStore),
	WitsmlSoap_WMLS_DeleteFromStoreResponse(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_delete_from_store_response::WMLS_DeleteFromStoreResponse),
	WitsmlSoap_WMLS_GetBaseMsg(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_get_base_msg::WMLS_GetBaseMsg),
	WitsmlSoap_WMLS_GetBaseMsgResponse(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_get_base_msg_response::WMLS_GetBaseMsgResponse),
	WitsmlSoap_WMLS_GetCap(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_get_cap::WMLS_GetCap),
	WitsmlSoap_WMLS_GetCapResponse(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_get_cap_response::WMLS_GetCapResponse),
	WitsmlSoap_WMLS_GetFromStore(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_get_from_store::WMLS_GetFromStore),
	WitsmlSoap_WMLS_GetFromStoreResponse(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_get_from_store_response::WMLS_GetFromStoreResponse),
	WitsmlSoap_WMLS_GetVersion(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_get_version::WMLS_GetVersion),
	WitsmlSoap_WMLS_GetVersionResponse(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_get_version_response::WMLS_GetVersionResponse),
	WitsmlSoap_WMLS_UpdateInStore(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_update_in_store::WMLS_UpdateInStore),
	WitsmlSoap_WMLS_UpdateInStoreResponse(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_update_in_store_response::WMLS_UpdateInStoreResponse),
}

pub fn avro_decode<R: Read>(mh: &MessageHeader, encoded_msg: &mut R) -> Option<ProtocolMessage> {
    return match(mh.protocol, mh.message_type){(0, 1) => Some(ProtocolMessage::Core_RequestSession(crate::energistics::etp::v12::protocol::core::request_session::RequestSession::avro_deserialize(encoded_msg).unwrap())),
        (0, 2) => Some(ProtocolMessage::Core_OpenSession(crate::energistics::etp::v12::protocol::core::open_session::OpenSession::avro_deserialize(encoded_msg).unwrap())),
        (0, 5) => Some(ProtocolMessage::Core_CloseSession(crate::energistics::etp::v12::protocol::core::close_session::CloseSession::avro_deserialize(encoded_msg).unwrap())),
        (0, 6) => Some(ProtocolMessage::Core_Authorize(crate::energistics::etp::v12::protocol::core::authorize::Authorize::avro_deserialize(encoded_msg).unwrap())),
        (0, 7) => Some(ProtocolMessage::Core_AuthorizeResponse(crate::energistics::etp::v12::protocol::core::authorize_response::AuthorizeResponse::avro_deserialize(encoded_msg).unwrap())),
        (0, 8) => Some(ProtocolMessage::Core_Ping(crate::energistics::etp::v12::protocol::core::ping::Ping::avro_deserialize(encoded_msg).unwrap())),
        (0, 9) => Some(ProtocolMessage::Core_Pong(crate::energistics::etp::v12::protocol::core::pong::Pong::avro_deserialize(encoded_msg).unwrap())),
        (0, 1000) => Some(ProtocolMessage::Core_ProtocolException(crate::energistics::etp::v12::protocol::core::protocol_exception::ProtocolException::avro_deserialize(encoded_msg).unwrap())),
        (0, 1001) => Some(ProtocolMessage::Core_Acknowledge(crate::energistics::etp::v12::protocol::core::acknowledge::Acknowledge::avro_deserialize(encoded_msg).unwrap())),
        (1, 1) => Some(ProtocolMessage::ChannelStreaming_ChannelMetadata(crate::energistics::etp::v12::protocol::channel_streaming::channel_metadata::ChannelMetadata::avro_deserialize(encoded_msg).unwrap())),
        (1, 2) => Some(ProtocolMessage::ChannelStreaming_ChannelData(crate::energistics::etp::v12::protocol::channel_streaming::channel_data::ChannelData::avro_deserialize(encoded_msg).unwrap())),
        (1, 3) => Some(ProtocolMessage::ChannelStreaming_StartStreaming(crate::energistics::etp::v12::protocol::channel_streaming::start_streaming::StartStreaming::avro_deserialize(encoded_msg).unwrap())),
        (1, 4) => Some(ProtocolMessage::ChannelStreaming_StopStreaming(crate::energistics::etp::v12::protocol::channel_streaming::stop_streaming::StopStreaming::avro_deserialize(encoded_msg).unwrap())),
        (1, 5) => Some(ProtocolMessage::ChannelStreaming_TruncateChannels(crate::energistics::etp::v12::protocol::channel_streaming::truncate_channels::TruncateChannels::avro_deserialize(encoded_msg).unwrap())),
        (2, 1) => Some(ProtocolMessage::ChannelDataFrame_GetFrameMetadata(crate::energistics::etp::v12::protocol::channel_data_frame::get_frame_metadata::GetFrameMetadata::avro_deserialize(encoded_msg).unwrap())),
        (2, 2) => Some(ProtocolMessage::ChannelDataFrame_GetFrameMetadataResponse(crate::energistics::etp::v12::protocol::channel_data_frame::get_frame_metadata_response::GetFrameMetadataResponse::avro_deserialize(encoded_msg).unwrap())),
        (2, 3) => Some(ProtocolMessage::ChannelDataFrame_GetFrame(crate::energistics::etp::v12::protocol::channel_data_frame::get_frame::GetFrame::avro_deserialize(encoded_msg).unwrap())),
        (2, 4) => Some(ProtocolMessage::ChannelDataFrame_GetFrameResponseHeader(crate::energistics::etp::v12::protocol::channel_data_frame::get_frame_response_header::GetFrameResponseHeader::avro_deserialize(encoded_msg).unwrap())),
        (2, 5) => Some(ProtocolMessage::ChannelDataFrame_CancelGetFrame(crate::energistics::etp::v12::protocol::channel_data_frame::cancel_get_frame::CancelGetFrame::avro_deserialize(encoded_msg).unwrap())),
        (2, 6) => Some(ProtocolMessage::ChannelDataFrame_GetFrameResponseRows(crate::energistics::etp::v12::protocol::channel_data_frame::get_frame_response_rows::GetFrameResponseRows::avro_deserialize(encoded_msg).unwrap())),
        (3, 1) => Some(ProtocolMessage::Discovery_GetResources(crate::energistics::etp::v12::protocol::discovery::get_resources::GetResources::avro_deserialize(encoded_msg).unwrap())),
        (3, 4) => Some(ProtocolMessage::Discovery_GetResourcesResponse(crate::energistics::etp::v12::protocol::discovery::get_resources_response::GetResourcesResponse::avro_deserialize(encoded_msg).unwrap())),
        (3, 5) => Some(ProtocolMessage::Discovery_GetDeletedResources(crate::energistics::etp::v12::protocol::discovery::get_deleted_resources::GetDeletedResources::avro_deserialize(encoded_msg).unwrap())),
        (3, 6) => Some(ProtocolMessage::Discovery_GetDeletedResourcesResponse(crate::energistics::etp::v12::protocol::discovery::get_deleted_resources_response::GetDeletedResourcesResponse::avro_deserialize(encoded_msg).unwrap())),
        (3, 7) => Some(ProtocolMessage::Discovery_GetResourcesEdgesResponse(crate::energistics::etp::v12::protocol::discovery::get_resources_edges_response::GetResourcesEdgesResponse::avro_deserialize(encoded_msg).unwrap())),
        (4, 1) => Some(ProtocolMessage::Store_GetDataObjects(crate::energistics::etp::v12::protocol::store::get_data_objects::GetDataObjects::avro_deserialize(encoded_msg).unwrap())),
        (4, 2) => Some(ProtocolMessage::Store_PutDataObjects(crate::energistics::etp::v12::protocol::store::put_data_objects::PutDataObjects::avro_deserialize(encoded_msg).unwrap())),
        (4, 3) => Some(ProtocolMessage::Store_DeleteDataObjects(crate::energistics::etp::v12::protocol::store::delete_data_objects::DeleteDataObjects::avro_deserialize(encoded_msg).unwrap())),
        (4, 4) => Some(ProtocolMessage::Store_GetDataObjectsResponse(crate::energistics::etp::v12::protocol::store::get_data_objects_response::GetDataObjectsResponse::avro_deserialize(encoded_msg).unwrap())),
        (4, 8) => Some(ProtocolMessage::Store_Chunk(crate::energistics::etp::v12::protocol::store::chunk::Chunk::avro_deserialize(encoded_msg).unwrap())),
        (4, 9) => Some(ProtocolMessage::Store_PutDataObjectsResponse(crate::energistics::etp::v12::protocol::store::put_data_objects_response::PutDataObjectsResponse::avro_deserialize(encoded_msg).unwrap())),
        (4, 10) => Some(ProtocolMessage::Store_DeleteDataObjectsResponse(crate::energistics::etp::v12::protocol::store::delete_data_objects_response::DeleteDataObjectsResponse::avro_deserialize(encoded_msg).unwrap())),
        (5, 2) => Some(ProtocolMessage::StoreNotification_ObjectChanged(crate::energistics::etp::v12::protocol::store_notification::object_changed::ObjectChanged::avro_deserialize(encoded_msg).unwrap())),
        (5, 3) => Some(ProtocolMessage::StoreNotification_ObjectDeleted(crate::energistics::etp::v12::protocol::store_notification::object_deleted::ObjectDeleted::avro_deserialize(encoded_msg).unwrap())),
        (5, 4) => Some(ProtocolMessage::StoreNotification_UnsubscribeNotifications(crate::energistics::etp::v12::protocol::store_notification::unsubscribe_notifications::UnsubscribeNotifications::avro_deserialize(encoded_msg).unwrap())),
        (5, 5) => Some(ProtocolMessage::StoreNotification_ObjectAccessRevoked(crate::energistics::etp::v12::protocol::store_notification::object_access_revoked::ObjectAccessRevoked::avro_deserialize(encoded_msg).unwrap())),
        (5, 6) => Some(ProtocolMessage::StoreNotification_SubscribeNotifications(crate::energistics::etp::v12::protocol::store_notification::subscribe_notifications::SubscribeNotifications::avro_deserialize(encoded_msg).unwrap())),
        (5, 7) => Some(ProtocolMessage::StoreNotification_SubscriptionEnded(crate::energistics::etp::v12::protocol::store_notification::subscription_ended::SubscriptionEnded::avro_deserialize(encoded_msg).unwrap())),
        (5, 8) => Some(ProtocolMessage::StoreNotification_UnsolicitedStoreNotifications(crate::energistics::etp::v12::protocol::store_notification::unsolicited_store_notifications::UnsolicitedStoreNotifications::avro_deserialize(encoded_msg).unwrap())),
        (5, 9) => Some(ProtocolMessage::StoreNotification_Chunk(crate::energistics::etp::v12::protocol::store_notification::chunk::Chunk::avro_deserialize(encoded_msg).unwrap())),
        (5, 10) => Some(ProtocolMessage::StoreNotification_SubscribeNotificationsResponse(crate::energistics::etp::v12::protocol::store_notification::subscribe_notifications_response::SubscribeNotificationsResponse::avro_deserialize(encoded_msg).unwrap())),
        (5, 11) => Some(ProtocolMessage::StoreNotification_ObjectActiveStatusChanged(crate::energistics::etp::v12::protocol::store_notification::object_active_status_changed::ObjectActiveStatusChanged::avro_deserialize(encoded_msg).unwrap())),
        (6, 1) => Some(ProtocolMessage::GrowingObject_DeleteParts(crate::energistics::etp::v12::protocol::growing_object::delete_parts::DeleteParts::avro_deserialize(encoded_msg).unwrap())),
        (6, 3) => Some(ProtocolMessage::GrowingObject_GetParts(crate::energistics::etp::v12::protocol::growing_object::get_parts::GetParts::avro_deserialize(encoded_msg).unwrap())),
        (6, 4) => Some(ProtocolMessage::GrowingObject_GetPartsByRange(crate::energistics::etp::v12::protocol::growing_object::get_parts_by_range::GetPartsByRange::avro_deserialize(encoded_msg).unwrap())),
        (6, 5) => Some(ProtocolMessage::GrowingObject_PutParts(crate::energistics::etp::v12::protocol::growing_object::put_parts::PutParts::avro_deserialize(encoded_msg).unwrap())),
        (6, 6) => Some(ProtocolMessage::GrowingObject_GetPartsResponse(crate::energistics::etp::v12::protocol::growing_object::get_parts_response::GetPartsResponse::avro_deserialize(encoded_msg).unwrap())),
        (6, 7) => Some(ProtocolMessage::GrowingObject_ReplacePartsByRange(crate::energistics::etp::v12::protocol::growing_object::replace_parts_by_range::ReplacePartsByRange::avro_deserialize(encoded_msg).unwrap())),
        (6, 8) => Some(ProtocolMessage::GrowingObject_GetPartsMetadata(crate::energistics::etp::v12::protocol::growing_object::get_parts_metadata::GetPartsMetadata::avro_deserialize(encoded_msg).unwrap())),
        (6, 9) => Some(ProtocolMessage::GrowingObject_GetPartsMetadataResponse(crate::energistics::etp::v12::protocol::growing_object::get_parts_metadata_response::GetPartsMetadataResponse::avro_deserialize(encoded_msg).unwrap())),
        (6, 10) => Some(ProtocolMessage::GrowingObject_GetPartsByRangeResponse(crate::energistics::etp::v12::protocol::growing_object::get_parts_by_range_response::GetPartsByRangeResponse::avro_deserialize(encoded_msg).unwrap())),
        (6, 11) => Some(ProtocolMessage::GrowingObject_DeletePartsResponse(crate::energistics::etp::v12::protocol::growing_object::delete_parts_response::DeletePartsResponse::avro_deserialize(encoded_msg).unwrap())),
        (6, 13) => Some(ProtocolMessage::GrowingObject_PutPartsResponse(crate::energistics::etp::v12::protocol::growing_object::put_parts_response::PutPartsResponse::avro_deserialize(encoded_msg).unwrap())),
        (6, 14) => Some(ProtocolMessage::GrowingObject_GetGrowingDataObjectsHeader(crate::energistics::etp::v12::protocol::growing_object::get_growing_data_objects_header::GetGrowingDataObjectsHeader::avro_deserialize(encoded_msg).unwrap())),
        (6, 15) => Some(ProtocolMessage::GrowingObject_GetGrowingDataObjectsHeaderResponse(crate::energistics::etp::v12::protocol::growing_object::get_growing_data_objects_header_response::GetGrowingDataObjectsHeaderResponse::avro_deserialize(encoded_msg).unwrap())),
        (6, 16) => Some(ProtocolMessage::GrowingObject_PutGrowingDataObjectsHeader(crate::energistics::etp::v12::protocol::growing_object::put_growing_data_objects_header::PutGrowingDataObjectsHeader::avro_deserialize(encoded_msg).unwrap())),
        (6, 17) => Some(ProtocolMessage::GrowingObject_PutGrowingDataObjectsHeaderResponse(crate::energistics::etp::v12::protocol::growing_object::put_growing_data_objects_header_response::PutGrowingDataObjectsHeaderResponse::avro_deserialize(encoded_msg).unwrap())),
        (6, 18) => Some(ProtocolMessage::GrowingObject_ReplacePartsByRangeResponse(crate::energistics::etp::v12::protocol::growing_object::replace_parts_by_range_response::ReplacePartsByRangeResponse::avro_deserialize(encoded_msg).unwrap())),
        (6, 19) => Some(ProtocolMessage::GrowingObject_GetChangeAnnotations(crate::energistics::etp::v12::protocol::growing_object::get_change_annotations::GetChangeAnnotations::avro_deserialize(encoded_msg).unwrap())),
        (6, 20) => Some(ProtocolMessage::GrowingObject_GetChangeAnnotationsResponse(crate::energistics::etp::v12::protocol::growing_object::get_change_annotations_response::GetChangeAnnotationsResponse::avro_deserialize(encoded_msg).unwrap())),
        (7, 2) => Some(ProtocolMessage::GrowingObjectNotification_PartsChanged(crate::energistics::etp::v12::protocol::growing_object_notification::parts_changed::PartsChanged::avro_deserialize(encoded_msg).unwrap())),
        (7, 3) => Some(ProtocolMessage::GrowingObjectNotification_PartsDeleted(crate::energistics::etp::v12::protocol::growing_object_notification::parts_deleted::PartsDeleted::avro_deserialize(encoded_msg).unwrap())),
        (7, 4) => Some(ProtocolMessage::GrowingObjectNotification_UnsubscribePartNotification(crate::energistics::etp::v12::protocol::growing_object_notification::unsubscribe_part_notification::UnsubscribePartNotification::avro_deserialize(encoded_msg).unwrap())),
        (7, 6) => Some(ProtocolMessage::GrowingObjectNotification_PartsReplacedByRange(crate::energistics::etp::v12::protocol::growing_object_notification::parts_replaced_by_range::PartsReplacedByRange::avro_deserialize(encoded_msg).unwrap())),
        (7, 7) => Some(ProtocolMessage::GrowingObjectNotification_SubscribePartNotifications(crate::energistics::etp::v12::protocol::growing_object_notification::subscribe_part_notifications::SubscribePartNotifications::avro_deserialize(encoded_msg).unwrap())),
        (7, 8) => Some(ProtocolMessage::GrowingObjectNotification_PartSubscriptionEnded(crate::energistics::etp::v12::protocol::growing_object_notification::part_subscription_ended::PartSubscriptionEnded::avro_deserialize(encoded_msg).unwrap())),
        (7, 9) => Some(ProtocolMessage::GrowingObjectNotification_UnsolicitedPartNotifications(crate::energistics::etp::v12::protocol::growing_object_notification::unsolicited_part_notifications::UnsolicitedPartNotifications::avro_deserialize(encoded_msg).unwrap())),
        (7, 10) => Some(ProtocolMessage::GrowingObjectNotification_SubscribePartNotificationsResponse(crate::energistics::etp::v12::protocol::growing_object_notification::subscribe_part_notifications_response::SubscribePartNotificationsResponse::avro_deserialize(encoded_msg).unwrap())),
        (9, 1) => Some(ProtocolMessage::DataArray_GetDataArraysResponse(crate::energistics::etp::v12::protocol::data_array::get_data_arrays_response::GetDataArraysResponse::avro_deserialize(encoded_msg).unwrap())),
        (9, 2) => Some(ProtocolMessage::DataArray_GetDataArrays(crate::energistics::etp::v12::protocol::data_array::get_data_arrays::GetDataArrays::avro_deserialize(encoded_msg).unwrap())),
        (9, 3) => Some(ProtocolMessage::DataArray_GetDataSubarrays(crate::energistics::etp::v12::protocol::data_array::get_data_subarrays::GetDataSubarrays::avro_deserialize(encoded_msg).unwrap())),
        (9, 4) => Some(ProtocolMessage::DataArray_PutDataArrays(crate::energistics::etp::v12::protocol::data_array::put_data_arrays::PutDataArrays::avro_deserialize(encoded_msg).unwrap())),
        (9, 5) => Some(ProtocolMessage::DataArray_PutDataSubarrays(crate::energistics::etp::v12::protocol::data_array::put_data_subarrays::PutDataSubarrays::avro_deserialize(encoded_msg).unwrap())),
        (9, 6) => Some(ProtocolMessage::DataArray_GetDataArrayMetadata(crate::energistics::etp::v12::protocol::data_array::get_data_array_metadata::GetDataArrayMetadata::avro_deserialize(encoded_msg).unwrap())),
        (9, 7) => Some(ProtocolMessage::DataArray_GetDataArrayMetadataResponse(crate::energistics::etp::v12::protocol::data_array::get_data_array_metadata_response::GetDataArrayMetadataResponse::avro_deserialize(encoded_msg).unwrap())),
        (9, 8) => Some(ProtocolMessage::DataArray_GetDataSubarraysResponse(crate::energistics::etp::v12::protocol::data_array::get_data_subarrays_response::GetDataSubarraysResponse::avro_deserialize(encoded_msg).unwrap())),
        (9, 9) => Some(ProtocolMessage::DataArray_PutUninitializedDataArrays(crate::energistics::etp::v12::protocol::data_array::put_uninitialized_data_arrays::PutUninitializedDataArrays::avro_deserialize(encoded_msg).unwrap())),
        (9, 10) => Some(ProtocolMessage::DataArray_PutDataArraysResponse(crate::energistics::etp::v12::protocol::data_array::put_data_arrays_response::PutDataArraysResponse::avro_deserialize(encoded_msg).unwrap())),
        (9, 11) => Some(ProtocolMessage::DataArray_PutDataSubarraysResponse(crate::energistics::etp::v12::protocol::data_array::put_data_subarrays_response::PutDataSubarraysResponse::avro_deserialize(encoded_msg).unwrap())),
        (9, 12) => Some(ProtocolMessage::DataArray_PutUninitializedDataArraysResponse(crate::energistics::etp::v12::protocol::data_array::put_uninitialized_data_arrays_response::PutUninitializedDataArraysResponse::avro_deserialize(encoded_msg).unwrap())),
        (13, 1) => Some(ProtocolMessage::DiscoveryQuery_FindResources(crate::energistics::etp::v12::protocol::discovery_query::find_resources::FindResources::avro_deserialize(encoded_msg).unwrap())),
        (13, 2) => Some(ProtocolMessage::DiscoveryQuery_FindResourcesResponse(crate::energistics::etp::v12::protocol::discovery_query::find_resources_response::FindResourcesResponse::avro_deserialize(encoded_msg).unwrap())),
        (14, 1) => Some(ProtocolMessage::StoreQuery_FindDataObjects(crate::energistics::etp::v12::protocol::store_query::find_data_objects::FindDataObjects::avro_deserialize(encoded_msg).unwrap())),
        (14, 2) => Some(ProtocolMessage::StoreQuery_FindDataObjectsResponse(crate::energistics::etp::v12::protocol::store_query::find_data_objects_response::FindDataObjectsResponse::avro_deserialize(encoded_msg).unwrap())),
        (14, 3) => Some(ProtocolMessage::StoreQuery_Chunk(crate::energistics::etp::v12::protocol::store_query::chunk::Chunk::avro_deserialize(encoded_msg).unwrap())),
        (16, 1) => Some(ProtocolMessage::GrowingObjectQuery_FindParts(crate::energistics::etp::v12::protocol::growing_object_query::find_parts::FindParts::avro_deserialize(encoded_msg).unwrap())),
        (16, 2) => Some(ProtocolMessage::GrowingObjectQuery_FindPartsResponse(crate::energistics::etp::v12::protocol::growing_object_query::find_parts_response::FindPartsResponse::avro_deserialize(encoded_msg).unwrap())),
        (18, 1) => Some(ProtocolMessage::Transaction_StartTransaction(crate::energistics::etp::v12::protocol::transaction::start_transaction::StartTransaction::avro_deserialize(encoded_msg).unwrap())),
        (18, 2) => Some(ProtocolMessage::Transaction_StartTransactionResponse(crate::energistics::etp::v12::protocol::transaction::start_transaction_response::StartTransactionResponse::avro_deserialize(encoded_msg).unwrap())),
        (18, 3) => Some(ProtocolMessage::Transaction_CommitTransaction(crate::energistics::etp::v12::protocol::transaction::commit_transaction::CommitTransaction::avro_deserialize(encoded_msg).unwrap())),
        (18, 4) => Some(ProtocolMessage::Transaction_RollbackTransaction(crate::energistics::etp::v12::protocol::transaction::rollback_transaction::RollbackTransaction::avro_deserialize(encoded_msg).unwrap())),
        (18, 5) => Some(ProtocolMessage::Transaction_CommitTransactionResponse(crate::energistics::etp::v12::protocol::transaction::commit_transaction_response::CommitTransactionResponse::avro_deserialize(encoded_msg).unwrap())),
        (18, 6) => Some(ProtocolMessage::Transaction_RollbackTransactionResponse(crate::energistics::etp::v12::protocol::transaction::rollback_transaction_response::RollbackTransactionResponse::avro_deserialize(encoded_msg).unwrap())),
        (21, 1) => Some(ProtocolMessage::ChannelSubscribe_GetChannelMetadata(crate::energistics::etp::v12::protocol::channel_subscribe::get_channel_metadata::GetChannelMetadata::avro_deserialize(encoded_msg).unwrap())),
        (21, 2) => Some(ProtocolMessage::ChannelSubscribe_GetChannelMetadataResponse(crate::energistics::etp::v12::protocol::channel_subscribe::get_channel_metadata_response::GetChannelMetadataResponse::avro_deserialize(encoded_msg).unwrap())),
        (21, 3) => Some(ProtocolMessage::ChannelSubscribe_SubscribeChannels(crate::energistics::etp::v12::protocol::channel_subscribe::subscribe_channels::SubscribeChannels::avro_deserialize(encoded_msg).unwrap())),
        (21, 4) => Some(ProtocolMessage::ChannelSubscribe_ChannelData(crate::energistics::etp::v12::protocol::channel_subscribe::channel_data::ChannelData::avro_deserialize(encoded_msg).unwrap())),
        (21, 6) => Some(ProtocolMessage::ChannelSubscribe_RangeReplaced(crate::energistics::etp::v12::protocol::channel_subscribe::range_replaced::RangeReplaced::avro_deserialize(encoded_msg).unwrap())),
        (21, 7) => Some(ProtocolMessage::ChannelSubscribe_UnsubscribeChannels(crate::energistics::etp::v12::protocol::channel_subscribe::unsubscribe_channels::UnsubscribeChannels::avro_deserialize(encoded_msg).unwrap())),
        (21, 8) => Some(ProtocolMessage::ChannelSubscribe_SubscriptionsStopped(crate::energistics::etp::v12::protocol::channel_subscribe::subscriptions_stopped::SubscriptionsStopped::avro_deserialize(encoded_msg).unwrap())),
        (21, 9) => Some(ProtocolMessage::ChannelSubscribe_GetRanges(crate::energistics::etp::v12::protocol::channel_subscribe::get_ranges::GetRanges::avro_deserialize(encoded_msg).unwrap())),
        (21, 10) => Some(ProtocolMessage::ChannelSubscribe_GetRangesResponse(crate::energistics::etp::v12::protocol::channel_subscribe::get_ranges_response::GetRangesResponse::avro_deserialize(encoded_msg).unwrap())),
        (21, 11) => Some(ProtocolMessage::ChannelSubscribe_CancelGetRanges(crate::energistics::etp::v12::protocol::channel_subscribe::cancel_get_ranges::CancelGetRanges::avro_deserialize(encoded_msg).unwrap())),
        (21, 12) => Some(ProtocolMessage::ChannelSubscribe_SubscribeChannelsResponse(crate::energistics::etp::v12::protocol::channel_subscribe::subscribe_channels_response::SubscribeChannelsResponse::avro_deserialize(encoded_msg).unwrap())),
        (21, 13) => Some(ProtocolMessage::ChannelSubscribe_ChannelsTruncated(crate::energistics::etp::v12::protocol::channel_subscribe::channels_truncated::ChannelsTruncated::avro_deserialize(encoded_msg).unwrap())),
        (21, 14) => Some(ProtocolMessage::ChannelSubscribe_GetChangeAnnotations(crate::energistics::etp::v12::protocol::channel_subscribe::get_change_annotations::GetChangeAnnotations::avro_deserialize(encoded_msg).unwrap())),
        (21, 15) => Some(ProtocolMessage::ChannelSubscribe_GetChangeAnnotationsResponse(crate::energistics::etp::v12::protocol::channel_subscribe::get_change_annotations_response::GetChangeAnnotationsResponse::avro_deserialize(encoded_msg).unwrap())),
        (22, 1) => Some(ProtocolMessage::ChannelDataLoad_OpenChannels(crate::energistics::etp::v12::protocol::channel_data_load::open_channels::OpenChannels::avro_deserialize(encoded_msg).unwrap())),
        (22, 2) => Some(ProtocolMessage::ChannelDataLoad_OpenChannelsResponse(crate::energistics::etp::v12::protocol::channel_data_load::open_channels_response::OpenChannelsResponse::avro_deserialize(encoded_msg).unwrap())),
        (22, 3) => Some(ProtocolMessage::ChannelDataLoad_CloseChannels(crate::energistics::etp::v12::protocol::channel_data_load::close_channels::CloseChannels::avro_deserialize(encoded_msg).unwrap())),
        (22, 4) => Some(ProtocolMessage::ChannelDataLoad_ChannelData(crate::energistics::etp::v12::protocol::channel_data_load::channel_data::ChannelData::avro_deserialize(encoded_msg).unwrap())),
        (22, 6) => Some(ProtocolMessage::ChannelDataLoad_ReplaceRange(crate::energistics::etp::v12::protocol::channel_data_load::replace_range::ReplaceRange::avro_deserialize(encoded_msg).unwrap())),
        (22, 7) => Some(ProtocolMessage::ChannelDataLoad_ChannelsClosed(crate::energistics::etp::v12::protocol::channel_data_load::channels_closed::ChannelsClosed::avro_deserialize(encoded_msg).unwrap())),
        (22, 8) => Some(ProtocolMessage::ChannelDataLoad_ReplaceRangeResponse(crate::energistics::etp::v12::protocol::channel_data_load::replace_range_response::ReplaceRangeResponse::avro_deserialize(encoded_msg).unwrap())),
        (22, 9) => Some(ProtocolMessage::ChannelDataLoad_TruncateChannels(crate::energistics::etp::v12::protocol::channel_data_load::truncate_channels::TruncateChannels::avro_deserialize(encoded_msg).unwrap())),
        (22, 10) => Some(ProtocolMessage::ChannelDataLoad_TruncateChannelsResponse(crate::energistics::etp::v12::protocol::channel_data_load::truncate_channels_response::TruncateChannelsResponse::avro_deserialize(encoded_msg).unwrap())),
        (24, 1) => Some(ProtocolMessage::Dataspace_GetDataspaces(crate::energistics::etp::v12::protocol::dataspace::get_dataspaces::GetDataspaces::avro_deserialize(encoded_msg).unwrap())),
        (24, 2) => Some(ProtocolMessage::Dataspace_GetDataspacesResponse(crate::energistics::etp::v12::protocol::dataspace::get_dataspaces_response::GetDataspacesResponse::avro_deserialize(encoded_msg).unwrap())),
        (24, 3) => Some(ProtocolMessage::Dataspace_PutDataspaces(crate::energistics::etp::v12::protocol::dataspace::put_dataspaces::PutDataspaces::avro_deserialize(encoded_msg).unwrap())),
        (24, 4) => Some(ProtocolMessage::Dataspace_DeleteDataspaces(crate::energistics::etp::v12::protocol::dataspace::delete_dataspaces::DeleteDataspaces::avro_deserialize(encoded_msg).unwrap())),
        (24, 5) => Some(ProtocolMessage::Dataspace_DeleteDataspacesResponse(crate::energistics::etp::v12::protocol::dataspace::delete_dataspaces_response::DeleteDataspacesResponse::avro_deserialize(encoded_msg).unwrap())),
        (24, 6) => Some(ProtocolMessage::Dataspace_PutDataspacesResponse(crate::energistics::etp::v12::protocol::dataspace::put_dataspaces_response::PutDataspacesResponse::avro_deserialize(encoded_msg).unwrap())),
        (25, 1) => Some(ProtocolMessage::SupportedTypes_GetSupportedTypes(crate::energistics::etp::v12::protocol::supported_types::get_supported_types::GetSupportedTypes::avro_deserialize(encoded_msg).unwrap())),
        (25, 2) => Some(ProtocolMessage::SupportedTypes_GetSupportedTypesResponse(crate::energistics::etp::v12::protocol::supported_types::get_supported_types_response::GetSupportedTypesResponse::avro_deserialize(encoded_msg).unwrap())),
        (2100, 1) => Some(ProtocolMessage::WitsmlSoap_WMLS_AddToStore(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_add_to_store::WMLS_AddToStore::avro_deserialize(encoded_msg).unwrap())),
        (2100, 2) => Some(ProtocolMessage::WitsmlSoap_WMLS_AddToStoreResponse(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_add_to_store_response::WMLS_AddToStoreResponse::avro_deserialize(encoded_msg).unwrap())),
        (2100, 3) => Some(ProtocolMessage::WitsmlSoap_WMLS_DeleteFromStore(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_delete_from_store::WMLS_DeleteFromStore::avro_deserialize(encoded_msg).unwrap())),
        (2100, 4) => Some(ProtocolMessage::WitsmlSoap_WMLS_DeleteFromStoreResponse(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_delete_from_store_response::WMLS_DeleteFromStoreResponse::avro_deserialize(encoded_msg).unwrap())),
        (2100, 5) => Some(ProtocolMessage::WitsmlSoap_WMLS_GetBaseMsg(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_get_base_msg::WMLS_GetBaseMsg::avro_deserialize(encoded_msg).unwrap())),
        (2100, 6) => Some(ProtocolMessage::WitsmlSoap_WMLS_GetBaseMsgResponse(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_get_base_msg_response::WMLS_GetBaseMsgResponse::avro_deserialize(encoded_msg).unwrap())),
        (2100, 7) => Some(ProtocolMessage::WitsmlSoap_WMLS_GetCap(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_get_cap::WMLS_GetCap::avro_deserialize(encoded_msg).unwrap())),
        (2100, 8) => Some(ProtocolMessage::WitsmlSoap_WMLS_GetCapResponse(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_get_cap_response::WMLS_GetCapResponse::avro_deserialize(encoded_msg).unwrap())),
        (2100, 9) => Some(ProtocolMessage::WitsmlSoap_WMLS_GetFromStore(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_get_from_store::WMLS_GetFromStore::avro_deserialize(encoded_msg).unwrap())),
        (2100, 10) => Some(ProtocolMessage::WitsmlSoap_WMLS_GetFromStoreResponse(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_get_from_store_response::WMLS_GetFromStoreResponse::avro_deserialize(encoded_msg).unwrap())),
        (2100, 11) => Some(ProtocolMessage::WitsmlSoap_WMLS_GetVersion(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_get_version::WMLS_GetVersion::avro_deserialize(encoded_msg).unwrap())),
        (2100, 12) => Some(ProtocolMessage::WitsmlSoap_WMLS_GetVersionResponse(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_get_version_response::WMLS_GetVersionResponse::avro_deserialize(encoded_msg).unwrap())),
        (2100, 13) => Some(ProtocolMessage::WitsmlSoap_WMLS_UpdateInStore(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_update_in_store::WMLS_UpdateInStore::avro_deserialize(encoded_msg).unwrap())),
        (2100, 14) => Some(ProtocolMessage::WitsmlSoap_WMLS_UpdateInStoreResponse(crate::energistics::etp::v12::private_protocols::witsml_soap::wmls_update_in_store_response::WMLS_UpdateInStoreResponse::avro_deserialize(encoded_msg).unwrap())),
        _ => None
    };
}

trait ProtocolMessageConverter {
    fn as_protocol_message<T>(_value: T) -> ProtocolMessage;
}