diff --git a/include/message.hrl b/include/message.hrl index 6673fa3..fdb9a52 100644 --- a/include/message.hrl +++ b/include/message.hrl @@ -8,13 +8,6 @@ %%%------------------------------------------------------------------- -author("anlicheng"). -%% efka主动发起的消息体类型, 消息大类 --define(PACKET_REQUEST, 16#01). --define(PACKET_RESPONSE, 16#02). - -%% efka主动发起不需要返回的数据 --define(PACKET_CAST, 16#03). - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% 二级分类定义 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -24,11 +17,9 @@ -define(MESSAGE_AUTH_REPLY, 16#02). -define(MESSAGE_COMMAND, 16#03). --define(MESSAGE_DEPLOY, 16#04). -define(MESSAGE_PUB, 16#05). -define(MESSAGE_DATA, 16#06). --define(MESSAGE_EVENT, 16#07). %% efka主动上报的event-stream流, 单向消息,主要是: docker-create的实时处理逻辑上报 -define(MESSAGE_EVENT_STREAM, 16#08). @@ -39,48 +30,3 @@ %%%% 命令类型子分类, 不需要返回值 %% 授权 -define(COMMAND_AUTH, 16#08). - --record(auth_request, { - uuid :: binary(), - username :: binary(), - salt :: binary(), - token :: binary(), - timestamp :: integer() -}). - --record(auth_reply, { - code :: integer(), - payload :: binary() -}). - --record(pub, { - topic :: binary(), - qos = 0 :: integer(), - content :: binary() -}). - --record(command, { - command_type :: integer(), - command :: binary() -}). - --record(jsonrpc_request, { - method :: binary(), - params = <<>> :: any() -}). - --record(jsonrpc_reply, { - result :: any() | undefined, - error :: any() | undefined -}). - --record(data, { - route_key :: binary(), - metric :: binary() -}). - --record(task_event_stream, { - task_id :: integer(), - type :: binary(), - stream :: binary() -}). \ No newline at end of file diff --git a/include/message_pb.hrl b/include/message_pb.hrl new file mode 100644 index 0000000..dd49a4f --- /dev/null +++ b/include/message_pb.hrl @@ -0,0 +1,296 @@ +%% -*- coding: utf-8 -*- +%% Automatically generated, do not edit +%% Generated by gpb_compile version 4.21.7 + +-ifndef(message_pb). +-define(message_pb, true). + +-define(message_pb_gpb_version, "4.21.7"). + + +-ifndef('REQUESTFRAME_PB_H'). +-define('REQUESTFRAME_PB_H', true). +-record('RequestFrame', + {packet_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits + body :: {auth_request, message_pb:'AuthRequest'()} | {rpc_request, message_pb:'RpcRequest'()} | {container_request, message_pb:'ContainerRequest'()} | undefined % oneof + }). +-endif. + +-ifndef('RESPONSEFRAME_PB_H'). +-define('RESPONSEFRAME_PB_H', true). +-record('ResponseFrame', + {packet_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits + body :: {auth_reply, message_pb:'AuthReply'()} | {rpc_reply, message_pb:'RpcReply'()} | undefined % oneof + }). +-endif. + +-ifndef('CASTFRAME_PB_H'). +-define('CASTFRAME_PB_H', true). +-record('CastFrame', + {body :: {pub, message_pb:'Pub'()} | {command, message_pb:'Command'()} | {data, message_pb:'Data'()} | {event_stream, message_pb:'TaskEventStream'()} | undefined % oneof + }). +-endif. + +-ifndef('CONTAINERREF_PB_H'). +-define('CONTAINERREF_PB_H', true). +-record('ContainerRef', + {id = <<>> :: unicode:chardata() | undefined, % = 1, optional + name = <<>> :: unicode:chardata() | undefined % = 2, optional + }). +-endif. + +-ifndef('CONTAINERREQUEST.LIST_PB_H'). +-define('CONTAINERREQUEST.LIST_PB_H', true). +-record('ContainerRequest.List', + {all = false :: boolean() | 0 | 1 | undefined % = 1, optional + }). +-endif. + +-ifndef('CONTAINERREQUEST.DEPLOY_PB_H'). +-define('CONTAINERREQUEST.DEPLOY_PB_H', true). +-record('ContainerRequest.Deploy', + {task_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits + params = undefined :: message_pb:'ContainerDeployParams'() | undefined % = 2, optional + }). +-endif. + +-ifndef('CONTAINERREQUEST.START_PB_H'). +-define('CONTAINERREQUEST.START_PB_H', true). +-record('ContainerRequest.Start', + {target = undefined :: message_pb:'ContainerRef'() | undefined % = 1, optional + }). +-endif. + +-ifndef('CONTAINERREQUEST.STOP_PB_H'). +-define('CONTAINERREQUEST.STOP_PB_H', true). +-record('ContainerRequest.Stop', + {target = undefined :: message_pb:'ContainerRef'() | undefined, % = 1, optional + timeout_seconds = 0 :: non_neg_integer() | undefined % = 2, optional, 32 bits + }). +-endif. + +-ifndef('CONTAINERREQUEST.KILL_PB_H'). +-define('CONTAINERREQUEST.KILL_PB_H', true). +-record('ContainerRequest.Kill', + {target = undefined :: message_pb:'ContainerRef'() | undefined, % = 1, optional + signal = <<>> :: unicode:chardata() | undefined % = 2, optional + }). +-endif. + +-ifndef('CONTAINERREQUEST.REMOVE_PB_H'). +-define('CONTAINERREQUEST.REMOVE_PB_H', true). +-record('ContainerRequest.Remove', + {target = undefined :: message_pb:'ContainerRef'() | undefined, % = 1, optional + force = false :: boolean() | 0 | 1 | undefined, % = 2, optional + remove_volumes = false :: boolean() | 0 | 1 | undefined % = 3, optional + }). +-endif. + +-ifndef('CONTAINERREQUEST.CONFIG_PB_H'). +-define('CONTAINERREQUEST.CONFIG_PB_H', true). +-record('ContainerRequest.Config', + {target = undefined :: message_pb:'ContainerRef'() | undefined, % = 1, optional + config = <<>> :: iodata() | undefined % = 2, optional + }). +-endif. + +-ifndef('CONTAINERREQUEST_PB_H'). +-define('CONTAINERREQUEST_PB_H', true). +-record('ContainerRequest', + {action :: {list, message_pb:'ContainerRequest.List'()} | {deploy, message_pb:'ContainerRequest.Deploy'()} | {start, message_pb:'ContainerRequest.Start'()} | {stop, message_pb:'ContainerRequest.Stop'()} | {kill, message_pb:'ContainerRequest.Kill'()} | {remove, message_pb:'ContainerRequest.Remove'()} | {config, message_pb:'ContainerRequest.Config'()} | undefined % oneof + }). +-endif. + +-ifndef('CONTAINERDEPLOYPARAMS_PB_H'). +-define('CONTAINERDEPLOYPARAMS_PB_H', true). +-record('ContainerDeployParams', + {container_name = <<>> :: unicode:chardata() | undefined, % = 1, optional + container_dir = <<>> :: unicode:chardata() | undefined, % = 2, optional + spec = undefined :: message_pb:'ContainerSpec'() | undefined % = 3, optional + }). +-endif. + +-ifndef('CONTAINERSPEC_PB_H'). +-define('CONTAINERSPEC_PB_H', true). +-record('ContainerSpec', + {image = <<>> :: unicode:chardata() | undefined, % = 1, optional + command = [] :: [unicode:chardata()] | undefined, % = 2, repeated + entrypoint = [] :: [unicode:chardata()] | undefined, % = 3, repeated + env = [] :: [unicode:chardata()] | undefined, % = 4, repeated + labels = [] :: [{unicode:chardata(), unicode:chardata()}] | undefined, % = 5 + volumes = [] :: [message_pb:'VolumeBind'()] | undefined, % = 6, repeated + user = <<>> :: unicode:chardata() | undefined, % = 7, optional + working_dir = <<>> :: unicode:chardata() | undefined, % = 8, optional + hostname = <<>> :: unicode:chardata() | undefined, % = 9, optional + expose = [] :: [message_pb:'PortExpose'()] | undefined, % = 10, repeated + networks = [] :: [unicode:chardata()] | undefined, % = 11, repeated + network_mode = <<>> :: unicode:chardata() | undefined, % = 12, optional + healthcheck = undefined :: message_pb:'Healthcheck'() | undefined, % = 13, optional + restart = undefined :: message_pb:'RestartPolicy'() | undefined, % = 14, optional + privileged = false :: boolean() | 0 | 1 | undefined, % = 15, optional + cap_add = [] :: [unicode:chardata()] | undefined, % = 16, repeated + cap_drop = [] :: [unicode:chardata()] | undefined, % = 17, repeated + devices = [] :: [message_pb:'DeviceMapping'()] | undefined, % = 18, repeated + resources = undefined :: message_pb:'ResourceLimits'() | undefined, % = 19, optional + ulimits = [] :: [message_pb:'Ulimit'()] | undefined, % = 20, repeated + tmpfs = [] :: [message_pb:'TmpfsMount'()] | undefined, % = 21, repeated + sysctls = [] :: [{unicode:chardata(), unicode:chardata()}] | undefined, % = 22 + extra_hosts = [] :: [unicode:chardata()] | undefined % = 23, repeated + }). +-endif. + +-ifndef('VOLUMEBIND_PB_H'). +-define('VOLUMEBIND_PB_H', true). +-record('VolumeBind', + {host_path = <<>> :: unicode:chardata() | undefined, % = 1, optional + container_path = <<>> :: unicode:chardata() | undefined, % = 2, optional + read_only = false :: boolean() | 0 | 1 | undefined % = 3, optional + }). +-endif. + +-ifndef('PORTEXPOSE_PB_H'). +-define('PORTEXPOSE_PB_H', true). +-record('PortExpose', + {container_port = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits + protocol = <<>> :: unicode:chardata() | undefined % = 2, optional + }). +-endif. + +-ifndef('HEALTHCHECK_PB_H'). +-define('HEALTHCHECK_PB_H', true). +-record('Healthcheck', + {test = [] :: [unicode:chardata()] | undefined, % = 1, repeated + interval_ns = 0 :: non_neg_integer() | undefined, % = 2, optional, 64 bits + timeout_ns = 0 :: non_neg_integer() | undefined, % = 3, optional, 64 bits + retries = 0 :: non_neg_integer() | undefined % = 4, optional, 32 bits + }). +-endif. + +-ifndef('RESTARTPOLICY_PB_H'). +-define('RESTARTPOLICY_PB_H', true). +-record('RestartPolicy', + {name = <<>> :: unicode:chardata() | undefined, % = 1, optional + maximum_retry_count = 0 :: non_neg_integer() | undefined % = 2, optional, 32 bits + }). +-endif. + +-ifndef('DEVICEMAPPING_PB_H'). +-define('DEVICEMAPPING_PB_H', true). +-record('DeviceMapping', + {host_path = <<>> :: unicode:chardata() | undefined, % = 1, optional + container_path = <<>> :: unicode:chardata() | undefined, % = 2, optional + cgroup_permissions = <<>> :: unicode:chardata() | undefined % = 3, optional + }). +-endif. + +-ifndef('RESOURCELIMITS_PB_H'). +-define('RESOURCELIMITS_PB_H', true). +-record('ResourceLimits', + {memory_bytes = 0 :: non_neg_integer() | undefined, % = 1, optional, 64 bits + memory_reservation_bytes = 0 :: non_neg_integer() | undefined, % = 2, optional, 64 bits + nano_cpus = 0 :: non_neg_integer() | undefined, % = 3, optional, 64 bits + cpu_shares = 0 :: non_neg_integer() | undefined % = 4, optional, 64 bits + }). +-endif. + +-ifndef('ULIMIT_PB_H'). +-define('ULIMIT_PB_H', true). +-record('Ulimit', + {name = <<>> :: unicode:chardata() | undefined, % = 1, optional + soft = 0 :: non_neg_integer() | undefined, % = 2, optional, 64 bits + hard = 0 :: non_neg_integer() | undefined % = 3, optional, 64 bits + }). +-endif. + +-ifndef('TMPFSMOUNT_PB_H'). +-define('TMPFSMOUNT_PB_H', true). +-record('TmpfsMount', + {path = <<>> :: unicode:chardata() | undefined, % = 1, optional + options = <<>> :: unicode:chardata() | undefined % = 2, optional + }). +-endif. + +-ifndef('AUTHREQUEST_PB_H'). +-define('AUTHREQUEST_PB_H', true). +-record('AuthRequest', + {uuid = <<>> :: iodata() | undefined, % = 1, optional + username = <<>> :: iodata() | undefined, % = 2, optional + salt = <<>> :: iodata() | undefined, % = 3, optional + token = <<>> :: iodata() | undefined, % = 4, optional + timestamp = 0 :: integer() | undefined % = 5, optional, 32 bits + }). +-endif. + +-ifndef('AUTHREPLY_PB_H'). +-define('AUTHREPLY_PB_H', true). +-record('AuthReply', + {code = 0 :: integer() | undefined, % = 1, optional, 32 bits + payload = <<>> :: iodata() | undefined % = 2, optional + }). +-endif. + +-ifndef('PUB_PB_H'). +-define('PUB_PB_H', true). +-record('Pub', + {topic = <<>> :: iodata() | undefined, % = 1, optional + qos = 0 :: integer() | undefined, % = 2, optional, 32 bits + content = <<>> :: iodata() | undefined % = 3, optional + }). +-endif. + +-ifndef('COMMAND_PB_H'). +-define('COMMAND_PB_H', true). +-record('Command', + {command_type = 0 :: integer() | undefined, % = 1, optional, 32 bits + command = <<>> :: iodata() | undefined % = 2, optional + }). +-endif. + +-ifndef('RPCREQUEST_PB_H'). +-define('RPCREQUEST_PB_H', true). +-record('RpcRequest', + {method = <<>> :: iodata() | undefined, % = 1, optional + params = <<>> :: iodata() | undefined % = 2, optional + }). +-endif. + +-ifndef('RPCREPLY.RPCRESULT_PB_H'). +-define('RPCREPLY.RPCRESULT_PB_H', true). +-record('RpcReply.RpcResult', + {data = <<>> :: iodata() | undefined % = 1, optional + }). +-endif. + +-ifndef('RPCREPLY.RPCERROR_PB_H'). +-define('RPCREPLY.RPCERROR_PB_H', true). +-record('RpcReply.RpcError', + {code = 0 :: integer() | undefined, % = 1, optional, 32 bits + message = <<>> :: unicode:chardata() | undefined % = 2, optional + }). +-endif. + +-ifndef('RPCREPLY_PB_H'). +-define('RPCREPLY_PB_H', true). +-record('RpcReply', + {reply :: {result, message_pb:'RpcReply.RpcResult'()} | {error, message_pb:'RpcReply.RpcError'()} | undefined % oneof + }). +-endif. + +-ifndef('DATA_PB_H'). +-define('DATA_PB_H', true). +-record('Data', + {route_key = <<>> :: iodata() | undefined, % = 1, optional + metric = <<>> :: iodata() | undefined % = 2, optional + }). +-endif. + +-ifndef('TASKEVENTSTREAM_PB_H'). +-define('TASKEVENTSTREAM_PB_H', true). +-record('TaskEventStream', + {task_id = 0 :: integer() | undefined, % = 1, optional, 32 bits + type = <<>> :: iodata() | undefined, % = 2, optional + stream = <<>> :: iodata() | undefined % = 3, optional + }). +-endif. + +-endif. diff --git a/include/protocol.hrl b/include/protocol.hrl new file mode 100644 index 0000000..e3e6a5b --- /dev/null +++ b/include/protocol.hrl @@ -0,0 +1,20 @@ +%%%------------------------------------------------------------------- +%%% @author anlicheng +%%% @copyright (C) 2025, +%%% @doc +%%% 传输层协议常量定义 +%%% @end +%%%------------------------------------------------------------------- +-author("anlicheng"). + +%% 一级帧类型 +%% REQUEST: 需要响应的请求帧 +%% RESPONSE: 对 REQUEST 的响应帧 +%% CAST: 单向消息帧,不需要响应 +-define(FRAME_REQUEST, 16#01). +-define(FRAME_RESPONSE, 16#02). +-define(FRAME_CAST, 16#03). + +%%%% 命令类型子分类, 不需要返回值 +%% 授权 +-define(COMMAND_AUTH, 16#08). diff --git a/src/efka_remote_agent.erl b/src/efka_remote_agent.erl index a8f5406..94cd9a8 100644 --- a/src/efka_remote_agent.erl +++ b/src/efka_remote_agent.erl @@ -88,36 +88,30 @@ callback_mode() -> %% 异步发送数据, 连接存在时候直接发送;否则缓存到mnesia handle_event(cast, {metric_data, RouteKey, Metric}, ?STATE_ACTIVATED, State = #state{transport_pid = TransportPid}) -> - Packet = message_codec:encode(?MESSAGE_DATA, #'Data'{ - route_key = RouteKey, - metric = Metric + Packet = message_pb:encode_msg(#'CastFrame'{ + body = {data, #'Data'{route_key = RouteKey, metric = Metric}} }), efka_transport:send(TransportPid, Packet), {keep_state, State}; handle_event(cast, {metric_data, RouteKey, Metric}, _, State) -> - Packet = message_codec:encode(?MESSAGE_DATA, #'Data'{ - route_key = RouteKey, - metric = Metric + Packet = message_pb:encode_msg(#'CastFrame'{ + body = {data, #'Data'{route_key = RouteKey, metric = Metric}} }), ok = cache_model:insert(Packet), {keep_state, State}; handle_event(cast, {task_event_stream, TaskId, Type, Stream}, ?STATE_ACTIVATED, State = #state{transport_pid = TransportPid}) -> logger:debug("[efka_remote_agent] event_stream task_id: ~p, stream: ~ts", [TaskId, Stream]), - EventPacket = message_codec:encode(?MESSAGE_EVENT_STREAM, #'TaskEventStream'{ - task_id = TaskId, - type = Type, - stream = Stream + EventPacket = message_pb:encode_msg(#'CastFrame'{ + body = {event_stream, #'TaskEventStream'{task_id = TaskId, type = Type, stream = Stream}} }), efka_transport:send(TransportPid, EventPacket), {keep_state, State}; handle_event(cast, {close_task_event_stream, TaskId, Reason}, ?STATE_ACTIVATED, State = #state{transport_pid = TransportPid}) -> - EventPacket = message_codec:encode(?MESSAGE_EVENT_STREAM, #'TaskEventStream'{ - task_id = TaskId, - type = <<"close">>, - stream = Reason + EventPacket = message_pb:encode_msg(#'CastFrame'{ + body = {event_stream, #'TaskEventStream'{task_id = TaskId, type = <<"close">>, stream = Reason}} }), efka_transport:send(TransportPid, EventPacket), {keep_state, State}; @@ -144,7 +138,7 @@ handle_event(cast, {task_event_stream, _TaskId, _Stream}, _, State = #state{}) - % memory = Memory, % interfaces = Interfaces % }), -% efka_transport:send(TransportPid, ?METHOD_PING, Ping), +% efka_transport:send(TransportPid, Ping), % {keep_state, State}; %% 异步建立到服务器的连接 @@ -160,44 +154,40 @@ handle_event(info, {timeout, _, create_transport}, ?STATE_DENIED, State) -> handle_event(info, {connect_reply, Reply}, ?STATE_CONNECTING, State = #state{transport_pid = TransportPid}) -> case Reply of ok -> - AuthRequest = auth_request(), - efka_transport:auth_request(TransportPid, AuthRequest), - {next_state, ?STATE_AUTH, State}; + AuthPacket = auth_packet(), + efka_transport:send(TransportPid, AuthPacket), + {next_state, ?STATE_AUTH, State, [{state_timeout, 5000, auth_timeout}]}; {error, Reason} -> logger:debug("[efka_remote_agent] connect failed, error: ~p, pid: ~p", [Reason, TransportPid]), efka_transport:stop(TransportPid), {next_state, ?STATE_DENIED, State#state{transport_pid = undefined}} end; -handle_event(info, {auth_reply, Reply}, ?STATE_AUTH, State = #state{transport_pid = TransportPid}) -> - case Reply of - {ok, #'AuthReply'{code = Code, payload = Message}} -> - case Code of - 0 -> - logger:debug("[efka_remote_agent] auth success, message: ~p", [Message]), - {next_state, ?STATE_ACTIVATED, State, [{next_event, info, flush_cache}]}; - 1 -> - %% 主机在后台的授权未通过;此时agent不能推送数据给云端服务器,但是云端服务器可以推送命令给agent - %% socket的连接状态需要维持 - logger:debug("[efka_remote_agent] auth denied, message: ~p", [Message]), - {next_state, ?STATE_RESTRICTED, State}; - 2 -> - % 其他类型的错误,需要间隔时间重试 - logger:debug("[efka_remote_agent] auth failed, message: ~p", [Message]), - efka_transport:stop(TransportPid), - {next_state, ?STATE_DENIED, State#state{transport_pid = undefined}}; - _ -> - % 其他类型的错误,需要间隔时间重试 - logger:debug("[efka_remote_agent] auth failed, invalid message"), - efka_transport:stop(TransportPid), - {next_state, ?STATE_DENIED, State#state{transport_pid = undefined}} - end; - {error, Reason} -> - logger:debug("[efka_remote_agent] auth_request failed, error: ~p", [Reason]), +handle_event(info, {server_packet, PacketBin}, ?STATE_AUTH, State = #state{transport_pid = TransportPid}) -> + #'ResponseFrame'{packet_id = 1, body = {auth_reply, #'AuthReply'{code = Code, payload = Message}}} = + message_pb:decode_msg(PacketBin, 'ResponseFrame'), + case Code of + 0 -> + logger:debug("[efka_remote_agent] auth success, message: ~p", [Message]), + {next_state, ?STATE_ACTIVATED, State, [{next_event, info, flush_cache}]}; + 1 -> + logger:debug("[efka_remote_agent] auth denied, message: ~p", [Message]), + {next_state, ?STATE_RESTRICTED, State}; + 2 -> + logger:debug("[efka_remote_agent] auth failed, message: ~p", [Message]), + efka_transport:stop(TransportPid), + {next_state, ?STATE_DENIED, State#state{transport_pid = undefined}}; + _ -> + logger:debug("[efka_remote_agent] auth failed, invalid message"), efka_transport:stop(TransportPid), {next_state, ?STATE_DENIED, State#state{transport_pid = undefined}} end; +handle_event(state_timeout, auth_timeout, ?STATE_AUTH, State = #state{transport_pid = TransportPid}) -> + logger:debug("[efka_remote_agent] auth request timeout"), + efka_transport:stop(TransportPid), + {next_state, ?STATE_DENIED, State#state{transport_pid = undefined}}; + %% 将缓存中的数据推送到服务器端 handle_event(info, flush_cache, ?STATE_ACTIVATED, State = #state{transport_pid = TransportPid}) -> case cache_model:fetch_next() of @@ -211,6 +201,30 @@ handle_event(info, flush_cache, ?STATE_ACTIVATED, State = #state{transport_pid = handle_event(info, flush_cache, _, State) -> {keep_state, State}; +handle_event(info, {server_packet, <<8, _/binary>> = PacketBin}, ?STATE_ACTIVATED, State) -> + #'RequestFrame'{packet_id = PacketId, body = {rpc_request, Request}} = + message_pb:decode_msg(PacketBin, 'RequestFrame'), + true = is_integer(PacketId) andalso PacketId > 0, + {keep_state, State, [{next_event, info, {server_rpc, PacketId, Request}}]}; +handle_event(info, {server_packet, <<10, _/binary>> = PacketBin}, ?STATE_ACTIVATED, State) -> + #'CastFrame'{body = {pub, Pub}} = message_pb:decode_msg(PacketBin, 'CastFrame'), + {keep_state, State, [{next_event, info, {server_cast, Pub}}]}; +handle_event(info, {server_packet, <<18, _/binary>> = PacketBin}, ?STATE_ACTIVATED, State) -> + #'CastFrame'{body = {command, Command}} = message_pb:decode_msg(PacketBin, 'CastFrame'), + {keep_state, State, [{next_event, info, {server_cast, Command}}]}; + +handle_event(info, {server_packet, <<8, _/binary>> = PacketBin}, ?STATE_RESTRICTED, State) -> + #'RequestFrame'{packet_id = PacketId, body = {rpc_request, Request}} = + message_pb:decode_msg(PacketBin, 'RequestFrame'), + true = is_integer(PacketId) andalso PacketId > 0, + {keep_state, State, [{next_event, info, {server_rpc, PacketId, Request}}]}; +handle_event(info, {server_packet, <<10, _/binary>> = PacketBin}, ?STATE_RESTRICTED, State) -> + #'CastFrame'{body = {pub, Pub}} = message_pb:decode_msg(PacketBin, 'CastFrame'), + {keep_state, State, [{next_event, info, {server_cast, Pub}}]}; +handle_event(info, {server_packet, <<18, _/binary>> = PacketBin}, ?STATE_RESTRICTED, State) -> + #'CastFrame'{body = {command, Command}} = message_pb:decode_msg(PacketBin, 'CastFrame'), + {keep_state, State, [{next_event, info, {server_cast, Command}}]}; + %% 云端服务器推送了消息 %% 激活消息 @@ -219,9 +233,21 @@ handle_event(info, {server_rpc, PacketId, #'RpcRequest'{method = <<"get_containe %% 短暂的等待,efka_inetd收到消息后就立即返回了 case docker_manager:get_containers() of {ok, Containers} -> - efka_transport:rpc_reply(TransportPid, PacketId, reply_success(Containers)); + Packet = message_pb:encode_msg(#'ResponseFrame'{ + packet_id = PacketId, + body = {rpc_reply, #'RpcReply'{ + reply = {result, #'RpcReply.RpcResult'{data = encode_rpc_payload(Containers)}} + }} + }), + efka_transport:send(TransportPid, Packet); {error, Reason} when is_binary(Reason) -> - efka_transport:rpc_reply(TransportPid, PacketId, reply_error(-1, Reason)) + Packet = message_pb:encode_msg(#'ResponseFrame'{ + packet_id = PacketId, + body = {rpc_reply, #'RpcReply'{ + reply = {error, #'RpcReply.RpcError'{code = -1, message = Reason}} + }} + }), + efka_transport:send(TransportPid, Packet) end, {keep_state, State}; @@ -231,9 +257,21 @@ handle_event(info, {server_rpc, PacketId, #'RpcRequest'{method = <<"deploy">>, p %% 短暂的等待,efka_inetd收到消息后就立即返回了 case docker_manager:deploy(TaskId, Config) of ok -> - efka_transport:rpc_reply(TransportPid, PacketId, reply_success(<<"ok">>)); + Packet = message_pb:encode_msg(#'ResponseFrame'{ + packet_id = PacketId, + body = {rpc_reply, #'RpcReply'{ + reply = {result, #'RpcReply.RpcResult'{data = encode_rpc_payload(<<"ok">>)}} + }} + }), + efka_transport:send(TransportPid, Packet); {error, Reason} when is_binary(Reason) -> - efka_transport:rpc_reply(TransportPid, PacketId, reply_error(-1, Reason)) + Packet = message_pb:encode_msg(#'ResponseFrame'{ + packet_id = PacketId, + body = {rpc_reply, #'RpcReply'{ + reply = {error, #'RpcReply.RpcError'{code = -1, message = Reason}} + }} + }), + efka_transport:send(TransportPid, Packet) end, {keep_state, State}; @@ -243,9 +281,21 @@ handle_event(info, {server_rpc, PacketId, #'RpcRequest'{method = <<"start_contai %% 短暂的等待,efka_inetd收到消息后就立即返回了 case docker_manager:start_container(ContainerName) of ok -> - efka_transport:rpc_reply(TransportPid, PacketId, reply_success(<<"ok">>)); + Packet = message_pb:encode_msg(#'ResponseFrame'{ + packet_id = PacketId, + body = {rpc_reply, #'RpcReply'{ + reply = {result, #'RpcReply.RpcResult'{data = encode_rpc_payload(<<"ok">>)}} + }} + }), + efka_transport:send(TransportPid, Packet); {error, Reason} when is_binary(Reason) -> - efka_transport:rpc_reply(TransportPid, PacketId, reply_error(-1, Reason)) + Packet = message_pb:encode_msg(#'ResponseFrame'{ + packet_id = PacketId, + body = {rpc_reply, #'RpcReply'{ + reply = {error, #'RpcReply.RpcError'{code = -1, message = Reason}} + }} + }), + efka_transport:send(TransportPid, Packet) end, {keep_state, State}; @@ -255,9 +305,21 @@ handle_event(info, {server_rpc, PacketId, #'RpcRequest'{method = <<"stop_contain %% 短暂的等待,efka_inetd收到消息后就立即返回了 case docker_manager:stop_container(ContainerName) of ok -> - efka_transport:rpc_reply(TransportPid, PacketId, reply_success(<<"ok">>)); + Packet = message_pb:encode_msg(#'ResponseFrame'{ + packet_id = PacketId, + body = {rpc_reply, #'RpcReply'{ + reply = {result, #'RpcReply.RpcResult'{data = encode_rpc_payload(<<"ok">>)}} + }} + }), + efka_transport:send(TransportPid, Packet); {error, Reason} when is_binary(Reason) -> - efka_transport:rpc_reply(TransportPid, PacketId, reply_error(-1, Reason)) + Packet = message_pb:encode_msg(#'ResponseFrame'{ + packet_id = PacketId, + body = {rpc_reply, #'RpcReply'{ + reply = {error, #'RpcReply.RpcError'{code = -1, message = Reason}} + }} + }), + efka_transport:send(TransportPid, Packet) end, {keep_state, State}; @@ -266,9 +328,21 @@ handle_event(info, {server_rpc, PacketId, #'RpcRequest'{method = <<"kill_contain %% 短暂的等待,efka_inetd收到消息后就立即返回了 case docker_manager:kill_container(ContainerName) of ok -> - efka_transport:rpc_reply(TransportPid, PacketId, reply_success(<<"ok">>)); + Packet = message_pb:encode_msg(#'ResponseFrame'{ + packet_id = PacketId, + body = {rpc_reply, #'RpcReply'{ + reply = {result, #'RpcReply.RpcResult'{data = encode_rpc_payload(<<"ok">>)}} + }} + }), + efka_transport:send(TransportPid, Packet); {error, Reason} when is_binary(Reason) -> - efka_transport:rpc_reply(TransportPid, PacketId, reply_error(-1, Reason)) + Packet = message_pb:encode_msg(#'ResponseFrame'{ + packet_id = PacketId, + body = {rpc_reply, #'RpcReply'{ + reply = {error, #'RpcReply.RpcError'{code = -1, message = Reason}} + }} + }), + efka_transport:send(TransportPid, Packet) end, {keep_state, State}; @@ -277,9 +351,21 @@ handle_event(info, {server_rpc, PacketId, #'RpcRequest'{method = <<"remove_conta %% 短暂的等待,efka_inetd收到消息后就立即返回了 case docker_manager:remove_container(ContainerName) of ok -> - efka_transport:rpc_reply(TransportPid, PacketId, reply_success(<<"ok">>)); + Packet = message_pb:encode_msg(#'ResponseFrame'{ + packet_id = PacketId, + body = {rpc_reply, #'RpcReply'{ + reply = {result, #'RpcReply.RpcResult'{data = encode_rpc_payload(<<"ok">>)}} + }} + }), + efka_transport:send(TransportPid, Packet); {error, Reason} when is_binary(Reason) -> - efka_transport:rpc_reply(TransportPid, PacketId, reply_error(-1, Reason)) + Packet = message_pb:encode_msg(#'ResponseFrame'{ + packet_id = PacketId, + body = {rpc_reply, #'RpcReply'{ + reply = {error, #'RpcReply.RpcError'{code = -1, message = Reason}} + }} + }), + efka_transport:send(TransportPid, Packet) end, {keep_state, State}; @@ -288,9 +374,21 @@ handle_event(info, {server_rpc, PacketId, #'RpcRequest'{method = <<"config_conta #{<<"container_name">> := ContainerName, <<"config">> := Config} = decode_rpc_payload(ParamsBin), case docker_manager:config_container(ContainerName, Config) of ok -> - efka_transport:rpc_reply(TransportPid, PacketId, reply_success(<<"ok">>)); + Packet = message_pb:encode_msg(#'ResponseFrame'{ + packet_id = PacketId, + body = {rpc_reply, #'RpcReply'{ + reply = {result, #'RpcReply.RpcResult'{data = encode_rpc_payload(<<"ok">>)}} + }} + }), + efka_transport:send(TransportPid, Packet); {error, Reason} -> - efka_transport:rpc_reply(TransportPid, PacketId, reply_error(-1, Reason)) + Packet = message_pb:encode_msg(#'ResponseFrame'{ + packet_id = PacketId, + body = {rpc_reply, #'RpcReply'{ + reply = {error, #'RpcReply.RpcError'{code = -1, message = Reason}} + }} + }), + efka_transport:send(TransportPid, Packet) end, {keep_state, State}; @@ -306,7 +404,7 @@ handle_event(info, {server_rpc, PacketId, #'RpcRequest'{method = <<"config_conta % false -> % #async_call_reply{code = 1, result = <<"[]">>} % end, -% efka_transport:async_call_reply(TransportPid, PacketId, message_pb:encode_msg(Reply)), +% efka_transport:send(TransportPid, message_pb:encode_msg(Reply)), % % {keep_state, State}; @@ -318,9 +416,9 @@ handle_event(info, {server_cast, #'Command'{command_type = ?COMMAND_AUTH, comman {keep_state, State}; {1, ?STATE_DENIED} -> %% 重新激活, 需要重新校验 - AuthRequest = auth_request(), - efka_transport:auth_request(TransportPid, AuthRequest), - {next_state, ?STATE_AUTH, State}; + AuthPacket = auth_packet(), + efka_transport:send(TransportPid, AuthPacket), + {next_state, ?STATE_AUTH, State, [{state_timeout, 5000, auth_timeout}]}; {0, _} -> %% 这个时候的主机应该是受限制的状态,不允许发送消息;但是能够接受服务器推送的消息 {next_state, ?STATE_RESTRICTED, State} @@ -362,33 +460,24 @@ code_change(_OldVsn, StateName, State = #state{}, _Extra) -> %%% Internal functions %%%=================================================================== --spec auth_request() -> message_pb:'AuthRequest'(). -auth_request() -> +-spec auth_packet() -> binary(). +auth_packet() -> + %% 重新激活, 需要重新校验 {ok, AuthInfo} = application:get_env(efka, auth), UUID = proplists:get_value(uuid, AuthInfo), Username = proplists:get_value(username, AuthInfo), Salt = proplists:get_value(salt, AuthInfo), Token = proplists:get_value(token, AuthInfo), - - #'AuthRequest'{ - uuid = unicode:characters_to_binary(UUID), - username = unicode:characters_to_binary(Username), - salt = unicode:characters_to_binary(Salt), - token = unicode:characters_to_binary(Token), - timestamp = efka_util:timestamp() - }. - --spec reply_success(Result :: any()) -> message_pb:'RpcReply'(). -reply_success(Result) -> - #'RpcReply'{ - reply = {result, #'RpcReply.RpcResult'{data = encode_rpc_payload(Result)}} - }. - --spec reply_error(Code :: integer(), Message :: binary()) -> message_pb:'RpcReply'(). -reply_error(Code, Message) when is_integer(Code), is_binary(Message) -> - #'RpcReply'{ - reply = {error, #'RpcReply.RpcError'{code = Code, message = Message}} - }. + message_pb:encode_msg(#'RequestFrame'{ + packet_id = 1, + body = {auth_request, #'AuthRequest'{ + uuid = unicode:characters_to_binary(UUID), + username = unicode:characters_to_binary(Username), + salt = unicode:characters_to_binary(Salt), + token = unicode:characters_to_binary(Token), + timestamp = efka_util:timestamp() + }} + }). -spec decode_rpc_payload(binary()) -> any(). decode_rpc_payload(<<>>) -> diff --git a/src/efka_transport.erl b/src/efka_transport.erl index e482894..22ded0a 100644 --- a/src/efka_transport.erl +++ b/src/efka_transport.erl @@ -8,13 +8,12 @@ %%%------------------------------------------------------------------- -module(efka_transport). -author("anlicheng"). --include("message.hrl"). -behaviour(gen_server). %% API -export([start_monitor/3]). --export([connect/1, auth_request/2, send/2, rpc_reply/3, stop/1]). +-export([connect/1, send/2, stop/1]). %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). @@ -28,14 +27,6 @@ socket :: undefined | ssl:sslsocket() }). -%%%=================================================================== -%%% API -%%%=================================================================== - --spec auth_request(Pid :: pid(), AuthRequest :: any()) -> no_return(). -auth_request(Pid, AuthRequest) when is_pid(Pid) -> - gen_server:cast(Pid, {auth_request, AuthRequest}). - -spec connect(Pid :: pid()) -> no_return(). connect(Pid) when is_pid(Pid) -> gen_server:cast(Pid, connect). @@ -44,12 +35,6 @@ connect(Pid) when is_pid(Pid) -> send(Pid, Packet) when is_pid(Pid), is_binary(Packet) -> gen_server:cast(Pid, {send, Packet}). --spec rpc_reply(Pid :: pid() | undefined, PacketId :: integer(), Response :: any()) -> no_return(). -rpc_reply(undefined, PacketId, _Response) when is_integer(PacketId) -> - ok; -rpc_reply(Pid, PacketId, Reply) when is_pid(Pid), is_integer(PacketId) -> - gen_server:cast(Pid, {rpc_reply, PacketId, Reply}). - %% 关闭的时候不一定能成功,可能关闭的时候;transport进程已经退出了 -spec stop(Pid :: pid() | undefined) -> ok. stop(undefined) -> @@ -111,37 +96,7 @@ handle_cast(connect, State = #state{host = Host, port = Port, parent_pid = Paren {noreply, State#state{socket = undefined}} end; -%% auth校验 -handle_cast({auth_request, AuthRequest}, State = #state{parent_pid = ParentPid, socket = Socket}) -> - PacketId = 1, - Packet = message_codec:encode_request(PacketId, ?MESSAGE_AUTH_REQUEST, AuthRequest), - ok = ssl:send(Socket, Packet), - %% 需要等待auth返回的结果 - receive - {ssl, Socket, ReplyBin} -> - case message_codec:decode_response(ReplyBin) of - {ok, PacketId, Reply} -> - ParentPid ! {auth_reply, {ok, Reply}}; - {ok, ReplyPacketId, _Reply} -> - logger:warning("[efka_transport] get unexpected auth_reply packet_id: ~p", [ReplyPacketId]), - ParentPid ! {auth_reply, {error, invalid_auth_reply}}; - error -> - logger:warning("[efka_transport] get invalid auth_reply: ~p", [ReplyBin]), - ParentPid ! {auth_reply, {error, invalid_auth_reply}} - end, - {noreply, State} - after 5000 -> - ParentPid ! {auth_reply, {error, timeout}}, - {noreply, State} - end; - handle_cast({send, Packet}, State = #state{socket = Socket}) -> - ok = ssl:send(Socket, Packet), - {noreply, State}; - -%% 服务push的消息的回复 -handle_cast({rpc_reply, PacketId, Reply}, State = #state{socket = Socket}) -> - Packet = message_codec:encode_response(PacketId, ?MESSAGE_JSONRPC_REPLY, Reply), ok = ssl:send(Socket, Packet), {noreply, State}. @@ -153,17 +108,7 @@ handle_cast({rpc_reply, PacketId, Reply}, State = #state{socket = Socket}) -> {stop, Reason :: term(), NewState :: #state{}}). %% 服务器主动推送的数据 handle_info({ssl, Socket, PacketBin}, State = #state{socket = Socket, parent_pid = ParentPid}) -> - case message_codec:decode_request(PacketBin) of - {ok, PacketId, Request} -> - ParentPid ! {server_rpc, PacketId, Request}; - error -> - case message_codec:decode_cast(PacketBin) of - {ok, CastRequest} -> - ParentPid ! {server_cast, CastRequest}; - error -> - logger:warning("[efka_transport] get invalid packet: ~p", [PacketBin]) - end - end, + ParentPid ! {server_packet, PacketBin}, {noreply, State}; handle_info({ssl_error, Socket, Reason}, State = #state{socket = Socket}) -> diff --git a/src/message/message_codec.erl b/src/message/message_codec.erl deleted file mode 100644 index 450d10f..0000000 --- a/src/message/message_codec.erl +++ /dev/null @@ -1,130 +0,0 @@ -%%%------------------------------------------------------------------- -%%% @author anlicheng -%%% @copyright (C) 2025, -%%% @doc -%%% -%%% @end -%%% Created : 17. 9月 2025 16:05 -%%%------------------------------------------------------------------- --module(message_codec). --author("anlicheng"). --include("message.hrl"). --include("message_pb.hrl"). - -%% API --export([encode/2, encode_request/3, encode_response/3]). --export([decode_request/1, decode_response/1, decode_cast/1]). - --spec encode(MessageType :: integer(), Message :: any()) -> binary(). -encode(MessageType, Message) when is_integer(MessageType) -> - case frame_for_type(MessageType, Message, 0) of - {request, Frame} -> - message_pb:encode_msg(Frame); - {response, Frame} -> - message_pb:encode_msg(Frame); - {cast, Frame} -> - message_pb:encode_msg(Frame) - end. - --spec encode_request(PacketId :: integer(), MessageType :: integer(), Message :: any()) -> binary(). -encode_request(PacketId, MessageType, Message) when is_integer(PacketId), is_integer(MessageType) -> - case frame_for_type(MessageType, Message, PacketId) of - {request, Frame} -> - message_pb:encode_msg(Frame); - _ -> - erlang:error({unsupported_request_type, MessageType}) - end. - --spec encode_response(PacketId :: integer(), MessageType :: integer(), Message :: any()) -> binary(). -encode_response(PacketId, MessageType, Message) when is_integer(PacketId), is_integer(MessageType) -> - case frame_for_type(MessageType, Message, PacketId) of - {response, Frame} -> - message_pb:encode_msg(Frame); - _ -> - erlang:error({unsupported_response_type, MessageType}) - end. - --spec decode_request(Bin :: binary()) -> {ok, PacketId :: integer(), Message :: any()} | error. -decode_request(Bin) when is_binary(Bin) -> - try - Frame = message_pb:decode_msg(Bin, 'RequestFrame'), - decode_request_frame(Frame) - catch - _:_ -> - error - end. - --spec decode_response(Bin :: binary()) -> {ok, PacketId :: integer(), Message :: any()} | error. -decode_response(Bin) when is_binary(Bin) -> - try - Frame = message_pb:decode_msg(Bin, 'ResponseFrame'), - decode_response_frame(Frame) - catch - _:_ -> - error - end. - --spec decode_cast(Bin :: binary()) -> {ok, Message :: any()} | error. -decode_cast(Bin) when is_binary(Bin) -> - try - Frame = message_pb:decode_msg(Bin, 'CastFrame'), - decode_cast_frame(Frame) - catch - _:_ -> - error - end. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% helper methods -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -frame_for_type(?MESSAGE_AUTH_REQUEST, Message = #'AuthRequest'{}, PacketId) -> - {request, #'RequestFrame'{packet_id = PacketId, body = {auth_request, Message}}}; -frame_for_type(?MESSAGE_JSONRPC_REQUEST, Message = #'RpcRequest'{}, PacketId) -> - {request, #'RequestFrame'{packet_id = PacketId, body = {rpc_request, Message}}}; -frame_for_type(?MESSAGE_AUTH_REPLY, Message = #'AuthReply'{}, PacketId) -> - {response, #'ResponseFrame'{packet_id = PacketId, body = {auth_reply, Message}}}; -frame_for_type(?MESSAGE_JSONRPC_REPLY, Message = #'RpcReply'{}, PacketId) -> - {response, #'ResponseFrame'{packet_id = PacketId, body = {rpc_reply, Message}}}; -frame_for_type(?MESSAGE_PUB, Message = #'Pub'{}, _PacketId) -> - {cast, #'CastFrame'{body = {pub, Message}}}; -frame_for_type(?MESSAGE_COMMAND, Message = #'Command'{}, _PacketId) -> - {cast, #'CastFrame'{body = {command, Message}}}; -frame_for_type(?MESSAGE_DATA, Message = #'Data'{}, _PacketId) -> - {cast, #'CastFrame'{body = {data, Message}}}; -frame_for_type(?MESSAGE_EVENT_STREAM, Message = #'TaskEventStream'{}, _PacketId) -> - {cast, #'CastFrame'{body = {event_stream, Message}}}; -frame_for_type(MessageType, Message, _PacketId) -> - erlang:error({unsupported_message_type, MessageType, Message}). - -decode_request_frame(#'RequestFrame'{packet_id = PacketId, body = {auth_request, Message}}) - when is_integer(PacketId), PacketId > 0 -> - {ok, PacketId, Message}; -decode_request_frame(#'RequestFrame'{packet_id = PacketId, body = {rpc_request, Message}}) - when is_integer(PacketId), PacketId > 0 -> - {ok, PacketId, Message}; -decode_request_frame(#'RequestFrame'{packet_id = PacketId, body = {container_request, Message}}) - when is_integer(PacketId), PacketId > 0 -> - {ok, PacketId, Message}; -decode_request_frame(_) -> - error. - -decode_response_frame(#'ResponseFrame'{packet_id = PacketId, body = {auth_reply, Message}}) - when is_integer(PacketId), PacketId > 0 -> - {ok, PacketId, Message}; -decode_response_frame(#'ResponseFrame'{packet_id = PacketId, body = {rpc_reply, Message}}) - when is_integer(PacketId), PacketId > 0 -> - {ok, PacketId, Message}; -decode_response_frame(_) -> - error. - -decode_cast_frame(#'CastFrame'{body = {pub, Message}}) -> - {ok, Message}; -decode_cast_frame(#'CastFrame'{body = {command, Message}}) -> - {ok, Message}; -decode_cast_frame(#'CastFrame'{body = {data, Message}}) -> - {ok, Message}; -decode_cast_frame(#'CastFrame'{body = {event_stream, Message}}) -> - {ok, Message}; -decode_cast_frame(_) -> - error. diff --git a/src/protobuf/message_pb.erl b/src/protobuf/message_pb.erl new file mode 100644 index 0000000..1506e6f --- /dev/null +++ b/src/protobuf/message_pb.erl @@ -0,0 +1,6101 @@ +%% -*- coding: utf-8 -*- +%% @private +%% Automatically @generated, do not edit +%% Generated by gpb_compile version 4.21.7 +%% Version source: file +-module(message_pb). + +-export([encode_msg/1, encode_msg/2, encode_msg/3]). +-export([decode_msg/2, decode_msg/3]). +-export([merge_msgs/2, merge_msgs/3, merge_msgs/4]). +-export([verify_msg/1, verify_msg/2, verify_msg/3]). +-export([get_msg_defs/0]). +-export([get_msg_names/0]). +-export([get_group_names/0]). +-export([get_msg_or_group_names/0]). +-export([get_enum_names/0]). +-export([find_msg_def/1, fetch_msg_def/1]). +-export([find_enum_def/1, fetch_enum_def/1]). +-export([enum_symbol_by_value/2, enum_value_by_symbol/2]). +-export([get_service_names/0]). +-export([get_service_def/1]). +-export([get_rpc_names/1]). +-export([find_rpc_def/2, fetch_rpc_def/2]). +-export([fqbin_to_service_name/1]). +-export([service_name_to_fqbin/1]). +-export([fqbins_to_service_and_rpc_name/2]). +-export([service_and_rpc_name_to_fqbins/2]). +-export([fqbin_to_msg_name/1]). +-export([msg_name_to_fqbin/1]). +-export([fqbin_to_enum_name/1]). +-export([enum_name_to_fqbin/1]). +-export([get_package_name/0]). +-export([uses_packages/0]). +-export([source_basename/0]). +-export([get_all_source_basenames/0]). +-export([get_all_proto_names/0]). +-export([get_msg_containment/1]). +-export([get_pkg_containment/1]). +-export([get_service_containment/1]). +-export([get_rpc_containment/1]). +-export([get_enum_containment/1]). +-export([get_proto_by_msg_name_as_fqbin/1]). +-export([get_proto_by_service_name_as_fqbin/1]). +-export([get_proto_by_enum_name_as_fqbin/1]). +-export([get_protos_by_pkg_name_as_fqbin/1]). +-export([gpb_version_as_string/0, gpb_version_as_list/0]). +-export([gpb_version_source/0]). + +-include("message_pb.hrl"). +-include_lib("gpb/include/gpb.hrl"). + +%% enumerated types + +-export_type([]). + +%% message types +-type 'RequestFrame'() :: #'RequestFrame'{}. + +-type 'ResponseFrame'() :: #'ResponseFrame'{}. + +-type 'CastFrame'() :: #'CastFrame'{}. + +-type 'ContainerRef'() :: #'ContainerRef'{}. + +-type 'ContainerRequest.List'() :: #'ContainerRequest.List'{}. + +-type 'ContainerRequest.Deploy'() :: #'ContainerRequest.Deploy'{}. + +-type 'ContainerRequest.Start'() :: #'ContainerRequest.Start'{}. + +-type 'ContainerRequest.Stop'() :: #'ContainerRequest.Stop'{}. + +-type 'ContainerRequest.Kill'() :: #'ContainerRequest.Kill'{}. + +-type 'ContainerRequest.Remove'() :: #'ContainerRequest.Remove'{}. + +-type 'ContainerRequest.Config'() :: #'ContainerRequest.Config'{}. + +-type 'ContainerRequest'() :: #'ContainerRequest'{}. + +-type 'ContainerDeployParams'() :: #'ContainerDeployParams'{}. + +-type 'ContainerSpec'() :: #'ContainerSpec'{}. + +-type 'VolumeBind'() :: #'VolumeBind'{}. + +-type 'PortExpose'() :: #'PortExpose'{}. + +-type 'Healthcheck'() :: #'Healthcheck'{}. + +-type 'RestartPolicy'() :: #'RestartPolicy'{}. + +-type 'DeviceMapping'() :: #'DeviceMapping'{}. + +-type 'ResourceLimits'() :: #'ResourceLimits'{}. + +-type 'Ulimit'() :: #'Ulimit'{}. + +-type 'TmpfsMount'() :: #'TmpfsMount'{}. + +-type 'AuthRequest'() :: #'AuthRequest'{}. + +-type 'AuthReply'() :: #'AuthReply'{}. + +-type 'Pub'() :: #'Pub'{}. + +-type 'Command'() :: #'Command'{}. + +-type 'RpcRequest'() :: #'RpcRequest'{}. + +-type 'RpcReply.RpcResult'() :: #'RpcReply.RpcResult'{}. + +-type 'RpcReply.RpcError'() :: #'RpcReply.RpcError'{}. + +-type 'RpcReply'() :: #'RpcReply'{}. + +-type 'Data'() :: #'Data'{}. + +-type 'TaskEventStream'() :: #'TaskEventStream'{}. + +-export_type(['RequestFrame'/0, 'ResponseFrame'/0, 'CastFrame'/0, 'ContainerRef'/0, 'ContainerRequest.List'/0, 'ContainerRequest.Deploy'/0, 'ContainerRequest.Start'/0, 'ContainerRequest.Stop'/0, 'ContainerRequest.Kill'/0, 'ContainerRequest.Remove'/0, 'ContainerRequest.Config'/0, 'ContainerRequest'/0, 'ContainerDeployParams'/0, 'ContainerSpec'/0, 'VolumeBind'/0, 'PortExpose'/0, 'Healthcheck'/0, 'RestartPolicy'/0, 'DeviceMapping'/0, 'ResourceLimits'/0, 'Ulimit'/0, 'TmpfsMount'/0, 'AuthRequest'/0, 'AuthReply'/0, 'Pub'/0, 'Command'/0, 'RpcRequest'/0, 'RpcReply.RpcResult'/0, 'RpcReply.RpcError'/0, 'RpcReply'/0, 'Data'/0, 'TaskEventStream'/0]). +-type '$msg_name'() :: 'RequestFrame' | 'ResponseFrame' | 'CastFrame' | 'ContainerRef' | 'ContainerRequest.List' | 'ContainerRequest.Deploy' | 'ContainerRequest.Start' | 'ContainerRequest.Stop' | 'ContainerRequest.Kill' | 'ContainerRequest.Remove' | 'ContainerRequest.Config' | 'ContainerRequest' | 'ContainerDeployParams' | 'ContainerSpec' | 'VolumeBind' | 'PortExpose' | 'Healthcheck' | 'RestartPolicy' | 'DeviceMapping' | 'ResourceLimits' | 'Ulimit' | 'TmpfsMount' | 'AuthRequest' | 'AuthReply' | 'Pub' | 'Command' | 'RpcRequest' | 'RpcReply.RpcResult' | 'RpcReply.RpcError' | 'RpcReply' | 'Data' | 'TaskEventStream'. +-type '$msg'() :: 'RequestFrame'() | 'ResponseFrame'() | 'CastFrame'() | 'ContainerRef'() | 'ContainerRequest.List'() | 'ContainerRequest.Deploy'() | 'ContainerRequest.Start'() | 'ContainerRequest.Stop'() | 'ContainerRequest.Kill'() | 'ContainerRequest.Remove'() | 'ContainerRequest.Config'() | 'ContainerRequest'() | 'ContainerDeployParams'() | 'ContainerSpec'() | 'VolumeBind'() | 'PortExpose'() | 'Healthcheck'() | 'RestartPolicy'() | 'DeviceMapping'() | 'ResourceLimits'() | 'Ulimit'() | 'TmpfsMount'() | 'AuthRequest'() | 'AuthReply'() | 'Pub'() | 'Command'() | 'RpcRequest'() | 'RpcReply.RpcResult'() | 'RpcReply.RpcError'() | 'RpcReply'() | 'Data'() | 'TaskEventStream'(). +-export_type(['$msg_name'/0, '$msg'/0]). + +-record('map',{key, value}). +-if(?OTP_RELEASE >= 24). +-dialyzer({no_underspecs, encode_msg/1}). +-endif. +-spec encode_msg('$msg'()) -> binary(). +encode_msg(Msg) when tuple_size(Msg) >= 1 -> encode_msg(Msg, element(1, Msg), []). + +-if(?OTP_RELEASE >= 24). +-dialyzer({no_underspecs, encode_msg/2}). +-endif. +-spec encode_msg('$msg'(), '$msg_name'() | list()) -> binary(). +encode_msg(Msg, MsgName) when is_atom(MsgName) -> encode_msg(Msg, MsgName, []); +encode_msg(Msg, Opts) when tuple_size(Msg) >= 1, is_list(Opts) -> encode_msg(Msg, element(1, Msg), Opts). + +-if(?OTP_RELEASE >= 24). +-dialyzer({no_underspecs, encode_msg/3}). +-endif. +-spec encode_msg('$msg'(), '$msg_name'(), list()) -> binary(). +encode_msg(Msg, MsgName, Opts) -> + case proplists:get_bool(verify, Opts) of + true -> verify_msg(Msg, MsgName, Opts); + false -> ok + end, + TrUserData = proplists:get_value(user_data, Opts), + case MsgName of + 'RequestFrame' -> encode_msg_RequestFrame(id(Msg, TrUserData), TrUserData); + 'ResponseFrame' -> encode_msg_ResponseFrame(id(Msg, TrUserData), TrUserData); + 'CastFrame' -> encode_msg_CastFrame(id(Msg, TrUserData), TrUserData); + 'ContainerRef' -> encode_msg_ContainerRef(id(Msg, TrUserData), TrUserData); + 'ContainerRequest.List' -> 'encode_msg_ContainerRequest.List'(id(Msg, TrUserData), TrUserData); + 'ContainerRequest.Deploy' -> 'encode_msg_ContainerRequest.Deploy'(id(Msg, TrUserData), TrUserData); + 'ContainerRequest.Start' -> 'encode_msg_ContainerRequest.Start'(id(Msg, TrUserData), TrUserData); + 'ContainerRequest.Stop' -> 'encode_msg_ContainerRequest.Stop'(id(Msg, TrUserData), TrUserData); + 'ContainerRequest.Kill' -> 'encode_msg_ContainerRequest.Kill'(id(Msg, TrUserData), TrUserData); + 'ContainerRequest.Remove' -> 'encode_msg_ContainerRequest.Remove'(id(Msg, TrUserData), TrUserData); + 'ContainerRequest.Config' -> 'encode_msg_ContainerRequest.Config'(id(Msg, TrUserData), TrUserData); + 'ContainerRequest' -> encode_msg_ContainerRequest(id(Msg, TrUserData), TrUserData); + 'ContainerDeployParams' -> encode_msg_ContainerDeployParams(id(Msg, TrUserData), TrUserData); + 'ContainerSpec' -> encode_msg_ContainerSpec(id(Msg, TrUserData), TrUserData); + 'VolumeBind' -> encode_msg_VolumeBind(id(Msg, TrUserData), TrUserData); + 'PortExpose' -> encode_msg_PortExpose(id(Msg, TrUserData), TrUserData); + 'Healthcheck' -> encode_msg_Healthcheck(id(Msg, TrUserData), TrUserData); + 'RestartPolicy' -> encode_msg_RestartPolicy(id(Msg, TrUserData), TrUserData); + 'DeviceMapping' -> encode_msg_DeviceMapping(id(Msg, TrUserData), TrUserData); + 'ResourceLimits' -> encode_msg_ResourceLimits(id(Msg, TrUserData), TrUserData); + 'Ulimit' -> encode_msg_Ulimit(id(Msg, TrUserData), TrUserData); + 'TmpfsMount' -> encode_msg_TmpfsMount(id(Msg, TrUserData), TrUserData); + 'AuthRequest' -> encode_msg_AuthRequest(id(Msg, TrUserData), TrUserData); + 'AuthReply' -> encode_msg_AuthReply(id(Msg, TrUserData), TrUserData); + 'Pub' -> encode_msg_Pub(id(Msg, TrUserData), TrUserData); + 'Command' -> encode_msg_Command(id(Msg, TrUserData), TrUserData); + 'RpcRequest' -> encode_msg_RpcRequest(id(Msg, TrUserData), TrUserData); + 'RpcReply.RpcResult' -> 'encode_msg_RpcReply.RpcResult'(id(Msg, TrUserData), TrUserData); + 'RpcReply.RpcError' -> 'encode_msg_RpcReply.RpcError'(id(Msg, TrUserData), TrUserData); + 'RpcReply' -> encode_msg_RpcReply(id(Msg, TrUserData), TrUserData); + 'Data' -> encode_msg_Data(id(Msg, TrUserData), TrUserData); + 'TaskEventStream' -> encode_msg_TaskEventStream(id(Msg, TrUserData), TrUserData) + end. + + +encode_msg_RequestFrame(Msg, TrUserData) -> encode_msg_RequestFrame(Msg, <<>>, TrUserData). + + +encode_msg_RequestFrame(#'RequestFrame'{packet_id = F1, body = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= 0 -> Bin; + true -> e_varint(TrF1, <>, TrUserData) + end + end + end, + if F2 =:= undefined -> B1; + true -> + case id(F2, TrUserData) of + {auth_request, TF2} -> begin TrTF2 = id(TF2, TrUserData), e_mfield_RequestFrame_auth_request(TrTF2, <>, TrUserData) end; + {rpc_request, TF2} -> begin TrTF2 = id(TF2, TrUserData), e_mfield_RequestFrame_rpc_request(TrTF2, <>, TrUserData) end; + {container_request, TF2} -> begin TrTF2 = id(TF2, TrUserData), e_mfield_RequestFrame_container_request(TrTF2, <>, TrUserData) end + end + end. + +encode_msg_ResponseFrame(Msg, TrUserData) -> encode_msg_ResponseFrame(Msg, <<>>, TrUserData). + + +encode_msg_ResponseFrame(#'ResponseFrame'{packet_id = F1, body = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= 0 -> Bin; + true -> e_varint(TrF1, <>, TrUserData) + end + end + end, + if F2 =:= undefined -> B1; + true -> + case id(F2, TrUserData) of + {auth_reply, TF2} -> begin TrTF2 = id(TF2, TrUserData), e_mfield_ResponseFrame_auth_reply(TrTF2, <>, TrUserData) end; + {rpc_reply, TF2} -> begin TrTF2 = id(TF2, TrUserData), e_mfield_ResponseFrame_rpc_reply(TrTF2, <>, TrUserData) end + end + end. + +encode_msg_CastFrame(Msg, TrUserData) -> encode_msg_CastFrame(Msg, <<>>, TrUserData). + + +encode_msg_CastFrame(#'CastFrame'{body = F1}, Bin, TrUserData) -> + if F1 =:= undefined -> Bin; + true -> + case id(F1, TrUserData) of + {pub, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_CastFrame_pub(TrTF1, <>, TrUserData) end; + {command, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_CastFrame_command(TrTF1, <>, TrUserData) end; + {data, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_CastFrame_data(TrTF1, <>, TrUserData) end; + {event_stream, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_CastFrame_event_stream(TrTF1, <>, TrUserData) end + end + end. + +encode_msg_ContainerRef(Msg, TrUserData) -> encode_msg_ContainerRef(Msg, <<>>, TrUserData). + + +encode_msg_ContainerRef(#'ContainerRef'{id = F1, name = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case is_empty_string(TrF1) of + true -> Bin; + false -> e_type_string(TrF1, <>, TrUserData) + end + end + end, + if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case is_empty_string(TrF2) of + true -> B1; + false -> e_type_string(TrF2, <>, TrUserData) + end + end + end. + +'encode_msg_ContainerRequest.List'(Msg, TrUserData) -> 'encode_msg_ContainerRequest.List'(Msg, <<>>, TrUserData). + + +'encode_msg_ContainerRequest.List'(#'ContainerRequest.List'{all = F1}, Bin, TrUserData) -> + if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= false -> Bin; + true -> e_type_bool(TrF1, <>, TrUserData) + end + end + end. + +'encode_msg_ContainerRequest.Deploy'(Msg, TrUserData) -> 'encode_msg_ContainerRequest.Deploy'(Msg, <<>>, TrUserData). + + +'encode_msg_ContainerRequest.Deploy'(#'ContainerRequest.Deploy'{task_id = F1, params = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= 0 -> Bin; + true -> e_varint(TrF1, <>, TrUserData) + end + end + end, + if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + if TrF2 =:= undefined -> B1; + true -> 'e_mfield_ContainerRequest.Deploy_params'(TrF2, <>, TrUserData) + end + end + end. + +'encode_msg_ContainerRequest.Start'(Msg, TrUserData) -> 'encode_msg_ContainerRequest.Start'(Msg, <<>>, TrUserData). + + +'encode_msg_ContainerRequest.Start'(#'ContainerRequest.Start'{target = F1}, Bin, TrUserData) -> + if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= undefined -> Bin; + true -> 'e_mfield_ContainerRequest.Start_target'(TrF1, <>, TrUserData) + end + end + end. + +'encode_msg_ContainerRequest.Stop'(Msg, TrUserData) -> 'encode_msg_ContainerRequest.Stop'(Msg, <<>>, TrUserData). + + +'encode_msg_ContainerRequest.Stop'(#'ContainerRequest.Stop'{target = F1, timeout_seconds = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= undefined -> Bin; + true -> 'e_mfield_ContainerRequest.Stop_target'(TrF1, <>, TrUserData) + end + end + end, + if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + if TrF2 =:= 0 -> B1; + true -> e_varint(TrF2, <>, TrUserData) + end + end + end. + +'encode_msg_ContainerRequest.Kill'(Msg, TrUserData) -> 'encode_msg_ContainerRequest.Kill'(Msg, <<>>, TrUserData). + + +'encode_msg_ContainerRequest.Kill'(#'ContainerRequest.Kill'{target = F1, signal = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= undefined -> Bin; + true -> 'e_mfield_ContainerRequest.Kill_target'(TrF1, <>, TrUserData) + end + end + end, + if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case is_empty_string(TrF2) of + true -> B1; + false -> e_type_string(TrF2, <>, TrUserData) + end + end + end. + +'encode_msg_ContainerRequest.Remove'(Msg, TrUserData) -> 'encode_msg_ContainerRequest.Remove'(Msg, <<>>, TrUserData). + + +'encode_msg_ContainerRequest.Remove'(#'ContainerRequest.Remove'{target = F1, force = F2, remove_volumes = F3}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= undefined -> Bin; + true -> 'e_mfield_ContainerRequest.Remove_target'(TrF1, <>, TrUserData) + end + end + end, + B2 = if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + if TrF2 =:= false -> B1; + true -> e_type_bool(TrF2, <>, TrUserData) + end + end + end, + if F3 == undefined -> B2; + true -> + begin + TrF3 = id(F3, TrUserData), + if TrF3 =:= false -> B2; + true -> e_type_bool(TrF3, <>, TrUserData) + end + end + end. + +'encode_msg_ContainerRequest.Config'(Msg, TrUserData) -> 'encode_msg_ContainerRequest.Config'(Msg, <<>>, TrUserData). + + +'encode_msg_ContainerRequest.Config'(#'ContainerRequest.Config'{target = F1, config = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= undefined -> Bin; + true -> 'e_mfield_ContainerRequest.Config_target'(TrF1, <>, TrUserData) + end + end + end, + if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case iolist_size(TrF2) of + 0 -> B1; + _ -> e_type_bytes(TrF2, <>, TrUserData) + end + end + end. + +encode_msg_ContainerRequest(Msg, TrUserData) -> encode_msg_ContainerRequest(Msg, <<>>, TrUserData). + + +encode_msg_ContainerRequest(#'ContainerRequest'{action = F1}, Bin, TrUserData) -> + if F1 =:= undefined -> Bin; + true -> + case id(F1, TrUserData) of + {list, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_ContainerRequest_list(TrTF1, <>, TrUserData) end; + {deploy, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_ContainerRequest_deploy(TrTF1, <>, TrUserData) end; + {start, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_ContainerRequest_start(TrTF1, <>, TrUserData) end; + {stop, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_ContainerRequest_stop(TrTF1, <>, TrUserData) end; + {kill, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_ContainerRequest_kill(TrTF1, <>, TrUserData) end; + {remove, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_ContainerRequest_remove(TrTF1, <>, TrUserData) end; + {config, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_ContainerRequest_config(TrTF1, <>, TrUserData) end + end + end. + +encode_msg_ContainerDeployParams(Msg, TrUserData) -> encode_msg_ContainerDeployParams(Msg, <<>>, TrUserData). + + +encode_msg_ContainerDeployParams(#'ContainerDeployParams'{container_name = F1, container_dir = F2, spec = F3}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case is_empty_string(TrF1) of + true -> Bin; + false -> e_type_string(TrF1, <>, TrUserData) + end + end + end, + B2 = if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case is_empty_string(TrF2) of + true -> B1; + false -> e_type_string(TrF2, <>, TrUserData) + end + end + end, + if F3 == undefined -> B2; + true -> + begin + TrF3 = id(F3, TrUserData), + if TrF3 =:= undefined -> B2; + true -> e_mfield_ContainerDeployParams_spec(TrF3, <>, TrUserData) + end + end + end. + +encode_msg_ContainerSpec(Msg, TrUserData) -> encode_msg_ContainerSpec(Msg, <<>>, TrUserData). + + +encode_msg_ContainerSpec(#'ContainerSpec'{image = F1, command = F2, entrypoint = F3, env = F4, labels = F5, volumes = F6, user = F7, working_dir = F8, hostname = F9, expose = F10, networks = F11, network_mode = F12, healthcheck = F13, restart = F14, + privileged = F15, cap_add = F16, cap_drop = F17, devices = F18, resources = F19, ulimits = F20, tmpfs = F21, sysctls = F22, extra_hosts = F23}, + Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case is_empty_string(TrF1) of + true -> Bin; + false -> e_type_string(TrF1, <>, TrUserData) + end + end + end, + B2 = begin + TrF2 = id(F2, TrUserData), + if TrF2 == [] -> B1; + true -> e_field_ContainerSpec_command(TrF2, B1, TrUserData) + end + end, + B3 = begin + TrF3 = id(F3, TrUserData), + if TrF3 == [] -> B2; + true -> e_field_ContainerSpec_entrypoint(TrF3, B2, TrUserData) + end + end, + B4 = begin + TrF4 = id(F4, TrUserData), + if TrF4 == [] -> B3; + true -> e_field_ContainerSpec_env(TrF4, B3, TrUserData) + end + end, + B5 = begin + TrF5 = id(F5, TrUserData), + if TrF5 == [] -> B4; + true -> e_field_ContainerSpec_labels(TrF5, B4, TrUserData) + end + end, + B6 = begin + TrF6 = id(F6, TrUserData), + if TrF6 == [] -> B5; + true -> e_field_ContainerSpec_volumes(TrF6, B5, TrUserData) + end + end, + B7 = if F7 == undefined -> B6; + true -> + begin + TrF7 = id(F7, TrUserData), + case is_empty_string(TrF7) of + true -> B6; + false -> e_type_string(TrF7, <>, TrUserData) + end + end + end, + B8 = if F8 == undefined -> B7; + true -> + begin + TrF8 = id(F8, TrUserData), + case is_empty_string(TrF8) of + true -> B7; + false -> e_type_string(TrF8, <>, TrUserData) + end + end + end, + B9 = if F9 == undefined -> B8; + true -> + begin + TrF9 = id(F9, TrUserData), + case is_empty_string(TrF9) of + true -> B8; + false -> e_type_string(TrF9, <>, TrUserData) + end + end + end, + B10 = begin + TrF10 = id(F10, TrUserData), + if TrF10 == [] -> B9; + true -> e_field_ContainerSpec_expose(TrF10, B9, TrUserData) + end + end, + B11 = begin + TrF11 = id(F11, TrUserData), + if TrF11 == [] -> B10; + true -> e_field_ContainerSpec_networks(TrF11, B10, TrUserData) + end + end, + B12 = if F12 == undefined -> B11; + true -> + begin + TrF12 = id(F12, TrUserData), + case is_empty_string(TrF12) of + true -> B11; + false -> e_type_string(TrF12, <>, TrUserData) + end + end + end, + B13 = if F13 == undefined -> B12; + true -> + begin + TrF13 = id(F13, TrUserData), + if TrF13 =:= undefined -> B12; + true -> e_mfield_ContainerSpec_healthcheck(TrF13, <>, TrUserData) + end + end + end, + B14 = if F14 == undefined -> B13; + true -> + begin + TrF14 = id(F14, TrUserData), + if TrF14 =:= undefined -> B13; + true -> e_mfield_ContainerSpec_restart(TrF14, <>, TrUserData) + end + end + end, + B15 = if F15 == undefined -> B14; + true -> + begin + TrF15 = id(F15, TrUserData), + if TrF15 =:= false -> B14; + true -> e_type_bool(TrF15, <>, TrUserData) + end + end + end, + B16 = begin + TrF16 = id(F16, TrUserData), + if TrF16 == [] -> B15; + true -> e_field_ContainerSpec_cap_add(TrF16, B15, TrUserData) + end + end, + B17 = begin + TrF17 = id(F17, TrUserData), + if TrF17 == [] -> B16; + true -> e_field_ContainerSpec_cap_drop(TrF17, B16, TrUserData) + end + end, + B18 = begin + TrF18 = id(F18, TrUserData), + if TrF18 == [] -> B17; + true -> e_field_ContainerSpec_devices(TrF18, B17, TrUserData) + end + end, + B19 = if F19 == undefined -> B18; + true -> + begin + TrF19 = id(F19, TrUserData), + if TrF19 =:= undefined -> B18; + true -> e_mfield_ContainerSpec_resources(TrF19, <>, TrUserData) + end + end + end, + B20 = begin + TrF20 = id(F20, TrUserData), + if TrF20 == [] -> B19; + true -> e_field_ContainerSpec_ulimits(TrF20, B19, TrUserData) + end + end, + B21 = begin + TrF21 = id(F21, TrUserData), + if TrF21 == [] -> B20; + true -> e_field_ContainerSpec_tmpfs(TrF21, B20, TrUserData) + end + end, + B22 = begin + TrF22 = id(F22, TrUserData), + if TrF22 == [] -> B21; + true -> e_field_ContainerSpec_sysctls(TrF22, B21, TrUserData) + end + end, + begin + TrF23 = id(F23, TrUserData), + if TrF23 == [] -> B22; + true -> e_field_ContainerSpec_extra_hosts(TrF23, B22, TrUserData) + end + end. + +encode_msg_VolumeBind(Msg, TrUserData) -> encode_msg_VolumeBind(Msg, <<>>, TrUserData). + + +encode_msg_VolumeBind(#'VolumeBind'{host_path = F1, container_path = F2, read_only = F3}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case is_empty_string(TrF1) of + true -> Bin; + false -> e_type_string(TrF1, <>, TrUserData) + end + end + end, + B2 = if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case is_empty_string(TrF2) of + true -> B1; + false -> e_type_string(TrF2, <>, TrUserData) + end + end + end, + if F3 == undefined -> B2; + true -> + begin + TrF3 = id(F3, TrUserData), + if TrF3 =:= false -> B2; + true -> e_type_bool(TrF3, <>, TrUserData) + end + end + end. + +encode_msg_PortExpose(Msg, TrUserData) -> encode_msg_PortExpose(Msg, <<>>, TrUserData). + + +encode_msg_PortExpose(#'PortExpose'{container_port = F1, protocol = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= 0 -> Bin; + true -> e_varint(TrF1, <>, TrUserData) + end + end + end, + if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case is_empty_string(TrF2) of + true -> B1; + false -> e_type_string(TrF2, <>, TrUserData) + end + end + end. + +encode_msg_Healthcheck(Msg, TrUserData) -> encode_msg_Healthcheck(Msg, <<>>, TrUserData). + + +encode_msg_Healthcheck(#'Healthcheck'{test = F1, interval_ns = F2, timeout_ns = F3, retries = F4}, Bin, TrUserData) -> + B1 = begin + TrF1 = id(F1, TrUserData), + if TrF1 == [] -> Bin; + true -> e_field_Healthcheck_test(TrF1, Bin, TrUserData) + end + end, + B2 = if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + if TrF2 =:= 0 -> B1; + true -> e_varint(TrF2, <>, TrUserData) + end + end + end, + B3 = if F3 == undefined -> B2; + true -> + begin + TrF3 = id(F3, TrUserData), + if TrF3 =:= 0 -> B2; + true -> e_varint(TrF3, <>, TrUserData) + end + end + end, + if F4 == undefined -> B3; + true -> + begin + TrF4 = id(F4, TrUserData), + if TrF4 =:= 0 -> B3; + true -> e_varint(TrF4, <>, TrUserData) + end + end + end. + +encode_msg_RestartPolicy(Msg, TrUserData) -> encode_msg_RestartPolicy(Msg, <<>>, TrUserData). + + +encode_msg_RestartPolicy(#'RestartPolicy'{name = F1, maximum_retry_count = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case is_empty_string(TrF1) of + true -> Bin; + false -> e_type_string(TrF1, <>, TrUserData) + end + end + end, + if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + if TrF2 =:= 0 -> B1; + true -> e_varint(TrF2, <>, TrUserData) + end + end + end. + +encode_msg_DeviceMapping(Msg, TrUserData) -> encode_msg_DeviceMapping(Msg, <<>>, TrUserData). + + +encode_msg_DeviceMapping(#'DeviceMapping'{host_path = F1, container_path = F2, cgroup_permissions = F3}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case is_empty_string(TrF1) of + true -> Bin; + false -> e_type_string(TrF1, <>, TrUserData) + end + end + end, + B2 = if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case is_empty_string(TrF2) of + true -> B1; + false -> e_type_string(TrF2, <>, TrUserData) + end + end + end, + if F3 == undefined -> B2; + true -> + begin + TrF3 = id(F3, TrUserData), + case is_empty_string(TrF3) of + true -> B2; + false -> e_type_string(TrF3, <>, TrUserData) + end + end + end. + +encode_msg_ResourceLimits(Msg, TrUserData) -> encode_msg_ResourceLimits(Msg, <<>>, TrUserData). + + +encode_msg_ResourceLimits(#'ResourceLimits'{memory_bytes = F1, memory_reservation_bytes = F2, nano_cpus = F3, cpu_shares = F4}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= 0 -> Bin; + true -> e_varint(TrF1, <>, TrUserData) + end + end + end, + B2 = if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + if TrF2 =:= 0 -> B1; + true -> e_varint(TrF2, <>, TrUserData) + end + end + end, + B3 = if F3 == undefined -> B2; + true -> + begin + TrF3 = id(F3, TrUserData), + if TrF3 =:= 0 -> B2; + true -> e_varint(TrF3, <>, TrUserData) + end + end + end, + if F4 == undefined -> B3; + true -> + begin + TrF4 = id(F4, TrUserData), + if TrF4 =:= 0 -> B3; + true -> e_varint(TrF4, <>, TrUserData) + end + end + end. + +encode_msg_Ulimit(Msg, TrUserData) -> encode_msg_Ulimit(Msg, <<>>, TrUserData). + + +encode_msg_Ulimit(#'Ulimit'{name = F1, soft = F2, hard = F3}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case is_empty_string(TrF1) of + true -> Bin; + false -> e_type_string(TrF1, <>, TrUserData) + end + end + end, + B2 = if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + if TrF2 =:= 0 -> B1; + true -> e_varint(TrF2, <>, TrUserData) + end + end + end, + if F3 == undefined -> B2; + true -> + begin + TrF3 = id(F3, TrUserData), + if TrF3 =:= 0 -> B2; + true -> e_varint(TrF3, <>, TrUserData) + end + end + end. + +encode_msg_TmpfsMount(Msg, TrUserData) -> encode_msg_TmpfsMount(Msg, <<>>, TrUserData). + + +encode_msg_TmpfsMount(#'TmpfsMount'{path = F1, options = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case is_empty_string(TrF1) of + true -> Bin; + false -> e_type_string(TrF1, <>, TrUserData) + end + end + end, + if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case is_empty_string(TrF2) of + true -> B1; + false -> e_type_string(TrF2, <>, TrUserData) + end + end + end. + +encode_msg_AuthRequest(Msg, TrUserData) -> encode_msg_AuthRequest(Msg, <<>>, TrUserData). + + +encode_msg_AuthRequest(#'AuthRequest'{uuid = F1, username = F2, salt = F3, token = F4, timestamp = F5}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case iolist_size(TrF1) of + 0 -> Bin; + _ -> e_type_bytes(TrF1, <>, TrUserData) + end + end + end, + B2 = if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case iolist_size(TrF2) of + 0 -> B1; + _ -> e_type_bytes(TrF2, <>, TrUserData) + end + end + end, + B3 = if F3 == undefined -> B2; + true -> + begin + TrF3 = id(F3, TrUserData), + case iolist_size(TrF3) of + 0 -> B2; + _ -> e_type_bytes(TrF3, <>, TrUserData) + end + end + end, + B4 = if F4 == undefined -> B3; + true -> + begin + TrF4 = id(F4, TrUserData), + case iolist_size(TrF4) of + 0 -> B3; + _ -> e_type_bytes(TrF4, <>, TrUserData) + end + end + end, + if F5 == undefined -> B4; + true -> + begin + TrF5 = id(F5, TrUserData), + if TrF5 =:= 0 -> B4; + true -> e_type_int32(TrF5, <>, TrUserData) + end + end + end. + +encode_msg_AuthReply(Msg, TrUserData) -> encode_msg_AuthReply(Msg, <<>>, TrUserData). + + +encode_msg_AuthReply(#'AuthReply'{code = F1, payload = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= 0 -> Bin; + true -> e_type_int32(TrF1, <>, TrUserData) + end + end + end, + if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case iolist_size(TrF2) of + 0 -> B1; + _ -> e_type_bytes(TrF2, <>, TrUserData) + end + end + end. + +encode_msg_Pub(Msg, TrUserData) -> encode_msg_Pub(Msg, <<>>, TrUserData). + + +encode_msg_Pub(#'Pub'{topic = F1, qos = F2, content = F3}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case iolist_size(TrF1) of + 0 -> Bin; + _ -> e_type_bytes(TrF1, <>, TrUserData) + end + end + end, + B2 = if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + if TrF2 =:= 0 -> B1; + true -> e_type_int32(TrF2, <>, TrUserData) + end + end + end, + if F3 == undefined -> B2; + true -> + begin + TrF3 = id(F3, TrUserData), + case iolist_size(TrF3) of + 0 -> B2; + _ -> e_type_bytes(TrF3, <>, TrUserData) + end + end + end. + +encode_msg_Command(Msg, TrUserData) -> encode_msg_Command(Msg, <<>>, TrUserData). + + +encode_msg_Command(#'Command'{command_type = F1, command = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= 0 -> Bin; + true -> e_type_int32(TrF1, <>, TrUserData) + end + end + end, + if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case iolist_size(TrF2) of + 0 -> B1; + _ -> e_type_bytes(TrF2, <>, TrUserData) + end + end + end. + +encode_msg_RpcRequest(Msg, TrUserData) -> encode_msg_RpcRequest(Msg, <<>>, TrUserData). + + +encode_msg_RpcRequest(#'RpcRequest'{method = F1, params = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case iolist_size(TrF1) of + 0 -> Bin; + _ -> e_type_bytes(TrF1, <>, TrUserData) + end + end + end, + if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case iolist_size(TrF2) of + 0 -> B1; + _ -> e_type_bytes(TrF2, <>, TrUserData) + end + end + end. + +'encode_msg_RpcReply.RpcResult'(Msg, TrUserData) -> 'encode_msg_RpcReply.RpcResult'(Msg, <<>>, TrUserData). + + +'encode_msg_RpcReply.RpcResult'(#'RpcReply.RpcResult'{data = F1}, Bin, TrUserData) -> + if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case iolist_size(TrF1) of + 0 -> Bin; + _ -> e_type_bytes(TrF1, <>, TrUserData) + end + end + end. + +'encode_msg_RpcReply.RpcError'(Msg, TrUserData) -> 'encode_msg_RpcReply.RpcError'(Msg, <<>>, TrUserData). + + +'encode_msg_RpcReply.RpcError'(#'RpcReply.RpcError'{code = F1, message = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= 0 -> Bin; + true -> e_type_int32(TrF1, <>, TrUserData) + end + end + end, + if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case is_empty_string(TrF2) of + true -> B1; + false -> e_type_string(TrF2, <>, TrUserData) + end + end + end. + +encode_msg_RpcReply(Msg, TrUserData) -> encode_msg_RpcReply(Msg, <<>>, TrUserData). + + +encode_msg_RpcReply(#'RpcReply'{reply = F1}, Bin, TrUserData) -> + if F1 =:= undefined -> Bin; + true -> + case id(F1, TrUserData) of + {result, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_RpcReply_result(TrTF1, <>, TrUserData) end; + {error, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_RpcReply_error(TrTF1, <>, TrUserData) end + end + end. + +encode_msg_Data(Msg, TrUserData) -> encode_msg_Data(Msg, <<>>, TrUserData). + + +encode_msg_Data(#'Data'{route_key = F1, metric = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case iolist_size(TrF1) of + 0 -> Bin; + _ -> e_type_bytes(TrF1, <>, TrUserData) + end + end + end, + if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case iolist_size(TrF2) of + 0 -> B1; + _ -> e_type_bytes(TrF2, <>, TrUserData) + end + end + end. + +encode_msg_TaskEventStream(Msg, TrUserData) -> encode_msg_TaskEventStream(Msg, <<>>, TrUserData). + + +encode_msg_TaskEventStream(#'TaskEventStream'{task_id = F1, type = F2, stream = F3}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= 0 -> Bin; + true -> e_type_int32(TrF1, <>, TrUserData) + end + end + end, + B2 = if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case iolist_size(TrF2) of + 0 -> B1; + _ -> e_type_bytes(TrF2, <>, TrUserData) + end + end + end, + if F3 == undefined -> B2; + true -> + begin + TrF3 = id(F3, TrUserData), + case iolist_size(TrF3) of + 0 -> B2; + _ -> e_type_bytes(TrF3, <>, TrUserData) + end + end + end. + +e_mfield_RequestFrame_auth_request(Msg, Bin, TrUserData) -> + SubBin = encode_msg_AuthRequest(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_RequestFrame_rpc_request(Msg, Bin, TrUserData) -> + SubBin = encode_msg_RpcRequest(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_RequestFrame_container_request(Msg, Bin, TrUserData) -> + SubBin = encode_msg_ContainerRequest(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_ResponseFrame_auth_reply(Msg, Bin, TrUserData) -> + SubBin = encode_msg_AuthReply(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_ResponseFrame_rpc_reply(Msg, Bin, TrUserData) -> + SubBin = encode_msg_RpcReply(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_CastFrame_pub(Msg, Bin, TrUserData) -> + SubBin = encode_msg_Pub(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_CastFrame_command(Msg, Bin, TrUserData) -> + SubBin = encode_msg_Command(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_CastFrame_data(Msg, Bin, TrUserData) -> + SubBin = encode_msg_Data(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_CastFrame_event_stream(Msg, Bin, TrUserData) -> + SubBin = encode_msg_TaskEventStream(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +'e_mfield_ContainerRequest.Deploy_params'(Msg, Bin, TrUserData) -> + SubBin = encode_msg_ContainerDeployParams(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +'e_mfield_ContainerRequest.Start_target'(Msg, Bin, TrUserData) -> + SubBin = encode_msg_ContainerRef(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +'e_mfield_ContainerRequest.Stop_target'(Msg, Bin, TrUserData) -> + SubBin = encode_msg_ContainerRef(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +'e_mfield_ContainerRequest.Kill_target'(Msg, Bin, TrUserData) -> + SubBin = encode_msg_ContainerRef(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +'e_mfield_ContainerRequest.Remove_target'(Msg, Bin, TrUserData) -> + SubBin = encode_msg_ContainerRef(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +'e_mfield_ContainerRequest.Config_target'(Msg, Bin, TrUserData) -> + SubBin = encode_msg_ContainerRef(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_ContainerRequest_list(Msg, Bin, TrUserData) -> + SubBin = 'encode_msg_ContainerRequest.List'(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_ContainerRequest_deploy(Msg, Bin, TrUserData) -> + SubBin = 'encode_msg_ContainerRequest.Deploy'(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_ContainerRequest_start(Msg, Bin, TrUserData) -> + SubBin = 'encode_msg_ContainerRequest.Start'(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_ContainerRequest_stop(Msg, Bin, TrUserData) -> + SubBin = 'encode_msg_ContainerRequest.Stop'(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_ContainerRequest_kill(Msg, Bin, TrUserData) -> + SubBin = 'encode_msg_ContainerRequest.Kill'(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_ContainerRequest_remove(Msg, Bin, TrUserData) -> + SubBin = 'encode_msg_ContainerRequest.Remove'(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_ContainerRequest_config(Msg, Bin, TrUserData) -> + SubBin = 'encode_msg_ContainerRequest.Config'(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_ContainerDeployParams_spec(Msg, Bin, TrUserData) -> + SubBin = encode_msg_ContainerSpec(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_field_ContainerSpec_command([Elem | Rest], Bin, TrUserData) -> + Bin2 = <>, + Bin3 = e_type_string(id(Elem, TrUserData), Bin2, TrUserData), + e_field_ContainerSpec_command(Rest, Bin3, TrUserData); +e_field_ContainerSpec_command([], Bin, _TrUserData) -> Bin. + +e_field_ContainerSpec_entrypoint([Elem | Rest], Bin, TrUserData) -> + Bin2 = <>, + Bin3 = e_type_string(id(Elem, TrUserData), Bin2, TrUserData), + e_field_ContainerSpec_entrypoint(Rest, Bin3, TrUserData); +e_field_ContainerSpec_entrypoint([], Bin, _TrUserData) -> Bin. + +e_field_ContainerSpec_env([Elem | Rest], Bin, TrUserData) -> + Bin2 = <>, + Bin3 = e_type_string(id(Elem, TrUserData), Bin2, TrUserData), + e_field_ContainerSpec_env(Rest, Bin3, TrUserData); +e_field_ContainerSpec_env([], Bin, _TrUserData) -> Bin. + +e_mfield_ContainerSpec_labels(Msg, Bin, TrUserData) -> + SubBin = 'encode_msg_map'(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_field_ContainerSpec_labels([Elem | Rest], Bin, TrUserData) -> + Bin2 = <>, + Bin3 = e_mfield_ContainerSpec_labels('tr_encode_ContainerSpec.labels[x]'(Elem, TrUserData), Bin2, TrUserData), + e_field_ContainerSpec_labels(Rest, Bin3, TrUserData); +e_field_ContainerSpec_labels([], Bin, _TrUserData) -> Bin. + +e_mfield_ContainerSpec_volumes(Msg, Bin, TrUserData) -> + SubBin = encode_msg_VolumeBind(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_field_ContainerSpec_volumes([Elem | Rest], Bin, TrUserData) -> + Bin2 = <>, + Bin3 = e_mfield_ContainerSpec_volumes(id(Elem, TrUserData), Bin2, TrUserData), + e_field_ContainerSpec_volumes(Rest, Bin3, TrUserData); +e_field_ContainerSpec_volumes([], Bin, _TrUserData) -> Bin. + +e_mfield_ContainerSpec_expose(Msg, Bin, TrUserData) -> + SubBin = encode_msg_PortExpose(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_field_ContainerSpec_expose([Elem | Rest], Bin, TrUserData) -> + Bin2 = <>, + Bin3 = e_mfield_ContainerSpec_expose(id(Elem, TrUserData), Bin2, TrUserData), + e_field_ContainerSpec_expose(Rest, Bin3, TrUserData); +e_field_ContainerSpec_expose([], Bin, _TrUserData) -> Bin. + +e_field_ContainerSpec_networks([Elem | Rest], Bin, TrUserData) -> + Bin2 = <>, + Bin3 = e_type_string(id(Elem, TrUserData), Bin2, TrUserData), + e_field_ContainerSpec_networks(Rest, Bin3, TrUserData); +e_field_ContainerSpec_networks([], Bin, _TrUserData) -> Bin. + +e_mfield_ContainerSpec_healthcheck(Msg, Bin, TrUserData) -> + SubBin = encode_msg_Healthcheck(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_ContainerSpec_restart(Msg, Bin, TrUserData) -> + SubBin = encode_msg_RestartPolicy(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_field_ContainerSpec_cap_add([Elem | Rest], Bin, TrUserData) -> + Bin2 = <>, + Bin3 = e_type_string(id(Elem, TrUserData), Bin2, TrUserData), + e_field_ContainerSpec_cap_add(Rest, Bin3, TrUserData); +e_field_ContainerSpec_cap_add([], Bin, _TrUserData) -> Bin. + +e_field_ContainerSpec_cap_drop([Elem | Rest], Bin, TrUserData) -> + Bin2 = <>, + Bin3 = e_type_string(id(Elem, TrUserData), Bin2, TrUserData), + e_field_ContainerSpec_cap_drop(Rest, Bin3, TrUserData); +e_field_ContainerSpec_cap_drop([], Bin, _TrUserData) -> Bin. + +e_mfield_ContainerSpec_devices(Msg, Bin, TrUserData) -> + SubBin = encode_msg_DeviceMapping(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_field_ContainerSpec_devices([Elem | Rest], Bin, TrUserData) -> + Bin2 = <>, + Bin3 = e_mfield_ContainerSpec_devices(id(Elem, TrUserData), Bin2, TrUserData), + e_field_ContainerSpec_devices(Rest, Bin3, TrUserData); +e_field_ContainerSpec_devices([], Bin, _TrUserData) -> Bin. + +e_mfield_ContainerSpec_resources(Msg, Bin, TrUserData) -> + SubBin = encode_msg_ResourceLimits(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_ContainerSpec_ulimits(Msg, Bin, TrUserData) -> + SubBin = encode_msg_Ulimit(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_field_ContainerSpec_ulimits([Elem | Rest], Bin, TrUserData) -> + Bin2 = <>, + Bin3 = e_mfield_ContainerSpec_ulimits(id(Elem, TrUserData), Bin2, TrUserData), + e_field_ContainerSpec_ulimits(Rest, Bin3, TrUserData); +e_field_ContainerSpec_ulimits([], Bin, _TrUserData) -> Bin. + +e_mfield_ContainerSpec_tmpfs(Msg, Bin, TrUserData) -> + SubBin = encode_msg_TmpfsMount(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_field_ContainerSpec_tmpfs([Elem | Rest], Bin, TrUserData) -> + Bin2 = <>, + Bin3 = e_mfield_ContainerSpec_tmpfs(id(Elem, TrUserData), Bin2, TrUserData), + e_field_ContainerSpec_tmpfs(Rest, Bin3, TrUserData); +e_field_ContainerSpec_tmpfs([], Bin, _TrUserData) -> Bin. + +e_mfield_ContainerSpec_sysctls(Msg, Bin, TrUserData) -> + SubBin = 'encode_msg_map'(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_field_ContainerSpec_sysctls([Elem | Rest], Bin, TrUserData) -> + Bin2 = <>, + Bin3 = e_mfield_ContainerSpec_sysctls('tr_encode_ContainerSpec.sysctls[x]'(Elem, TrUserData), Bin2, TrUserData), + e_field_ContainerSpec_sysctls(Rest, Bin3, TrUserData); +e_field_ContainerSpec_sysctls([], Bin, _TrUserData) -> Bin. + +e_field_ContainerSpec_extra_hosts([Elem | Rest], Bin, TrUserData) -> + Bin2 = <>, + Bin3 = e_type_string(id(Elem, TrUserData), Bin2, TrUserData), + e_field_ContainerSpec_extra_hosts(Rest, Bin3, TrUserData); +e_field_ContainerSpec_extra_hosts([], Bin, _TrUserData) -> Bin. + +e_field_Healthcheck_test([Elem | Rest], Bin, TrUserData) -> + Bin2 = <>, + Bin3 = e_type_string(id(Elem, TrUserData), Bin2, TrUserData), + e_field_Healthcheck_test(Rest, Bin3, TrUserData); +e_field_Healthcheck_test([], Bin, _TrUserData) -> Bin. + +e_mfield_RpcReply_result(Msg, Bin, TrUserData) -> + SubBin = 'encode_msg_RpcReply.RpcResult'(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +e_mfield_RpcReply_error(Msg, Bin, TrUserData) -> + SubBin = 'encode_msg_RpcReply.RpcError'(Msg, <<>>, TrUserData), + Bin2 = e_varint(byte_size(SubBin), Bin), + <>. + +'encode_msg_map'(#'map'{key = F1, value = F2}, Bin, TrUserData) -> + B1 = begin TrF1 = id(F1, TrUserData), e_type_string(TrF1, <>, TrUserData) end, + begin TrF2 = id(F2, TrUserData), e_type_string(TrF2, <>, TrUserData) end. + +-compile({nowarn_unused_function,e_type_sint/3}). +e_type_sint(Value, Bin, _TrUserData) when Value >= 0 -> e_varint(Value * 2, Bin); +e_type_sint(Value, Bin, _TrUserData) -> e_varint(Value * -2 - 1, Bin). + +-compile({nowarn_unused_function,e_type_int32/3}). +e_type_int32(Value, Bin, _TrUserData) when 0 =< Value, Value =< 127 -> <>; +e_type_int32(Value, Bin, _TrUserData) -> + <> = <>, + e_varint(N, Bin). + +-compile({nowarn_unused_function,e_type_int64/3}). +e_type_int64(Value, Bin, _TrUserData) when 0 =< Value, Value =< 127 -> <>; +e_type_int64(Value, Bin, _TrUserData) -> + <> = <>, + e_varint(N, Bin). + +-compile({nowarn_unused_function,e_type_bool/3}). +e_type_bool(true, Bin, _TrUserData) -> <>; +e_type_bool(false, Bin, _TrUserData) -> <>; +e_type_bool(1, Bin, _TrUserData) -> <>; +e_type_bool(0, Bin, _TrUserData) -> <>. + +-compile({nowarn_unused_function,e_type_string/3}). +e_type_string(S, Bin, _TrUserData) -> + Utf8 = unicode:characters_to_binary(S), + Bin2 = e_varint(byte_size(Utf8), Bin), + <>. + +-compile({nowarn_unused_function,e_type_bytes/3}). +e_type_bytes(Bytes, Bin, _TrUserData) when is_binary(Bytes) -> + Bin2 = e_varint(byte_size(Bytes), Bin), + <>; +e_type_bytes(Bytes, Bin, _TrUserData) when is_list(Bytes) -> + BytesBin = iolist_to_binary(Bytes), + Bin2 = e_varint(byte_size(BytesBin), Bin), + <>. + +-compile({nowarn_unused_function,e_type_fixed32/3}). +e_type_fixed32(Value, Bin, _TrUserData) -> <>. + +-compile({nowarn_unused_function,e_type_sfixed32/3}). +e_type_sfixed32(Value, Bin, _TrUserData) -> <>. + +-compile({nowarn_unused_function,e_type_fixed64/3}). +e_type_fixed64(Value, Bin, _TrUserData) -> <>. + +-compile({nowarn_unused_function,e_type_sfixed64/3}). +e_type_sfixed64(Value, Bin, _TrUserData) -> <>. + +-compile({nowarn_unused_function,e_type_float/3}). +e_type_float(V, Bin, _) when is_number(V) -> <>; +e_type_float(infinity, Bin, _) -> <>; +e_type_float('-infinity', Bin, _) -> <>; +e_type_float(nan, Bin, _) -> <>. + +-compile({nowarn_unused_function,e_type_double/3}). +e_type_double(V, Bin, _) when is_number(V) -> <>; +e_type_double(infinity, Bin, _) -> <>; +e_type_double('-infinity', Bin, _) -> <>; +e_type_double(nan, Bin, _) -> <>. + +-compile({nowarn_unused_function,e_unknown_elems/2}). +e_unknown_elems([Elem | Rest], Bin) -> + BinR = case Elem of + {varint, FNum, N} -> + BinF = e_varint(FNum bsl 3, Bin), + e_varint(N, BinF); + {length_delimited, FNum, Data} -> + BinF = e_varint(FNum bsl 3 bor 2, Bin), + BinL = e_varint(byte_size(Data), BinF), + <>; + {group, FNum, GroupFields} -> + Bin1 = e_varint(FNum bsl 3 bor 3, Bin), + Bin2 = e_unknown_elems(GroupFields, Bin1), + e_varint(FNum bsl 3 bor 4, Bin2); + {fixed32, FNum, V} -> + BinF = e_varint(FNum bsl 3 bor 5, Bin), + <>; + {fixed64, FNum, V} -> + BinF = e_varint(FNum bsl 3 bor 1, Bin), + <> + end, + e_unknown_elems(Rest, BinR); +e_unknown_elems([], Bin) -> Bin. + +-compile({nowarn_unused_function,e_varint/3}). +e_varint(N, Bin, _TrUserData) -> e_varint(N, Bin). + +-compile({nowarn_unused_function,e_varint/2}). +e_varint(N, Bin) when N =< 127 -> <>; +e_varint(N, Bin) -> + Bin2 = <>, + e_varint(N bsr 7, Bin2). + +is_empty_string("") -> true; +is_empty_string(<<>>) -> true; +is_empty_string(L) when is_list(L) -> not string_has_chars(L); +is_empty_string(B) when is_binary(B) -> false. + +string_has_chars([C | _]) when is_integer(C) -> true; +string_has_chars([H | T]) -> + case string_has_chars(H) of + true -> true; + false -> string_has_chars(T) + end; +string_has_chars(B) when is_binary(B), byte_size(B) =/= 0 -> true; +string_has_chars(C) when is_integer(C) -> true; +string_has_chars(<<>>) -> false; +string_has_chars([]) -> false. + + +decode_msg(Bin, MsgName) when is_binary(Bin) -> decode_msg(Bin, MsgName, []). + +decode_msg(Bin, MsgName, Opts) when is_binary(Bin) -> + TrUserData = proplists:get_value(user_data, Opts), + decode_msg_1_catch(Bin, MsgName, TrUserData). + +-ifdef('OTP_RELEASE'). +decode_msg_1_catch(Bin, MsgName, TrUserData) -> + try decode_msg_2_doit(MsgName, Bin, TrUserData) + catch + error:{gpb_error,_}=Reason:StackTrace -> + erlang:raise(error, Reason, StackTrace); + Class:Reason:StackTrace -> error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) + end. +-else. +decode_msg_1_catch(Bin, MsgName, TrUserData) -> + try decode_msg_2_doit(MsgName, Bin, TrUserData) + catch + error:{gpb_error,_}=Reason -> + erlang:raise(error, Reason, + erlang:get_stacktrace()); + Class:Reason -> + StackTrace = erlang:get_stacktrace(), + error({gpb_error,{decoding_failure, {Bin, MsgName, {Class, Reason, StackTrace}}}}) + end. +-endif. + +decode_msg_2_doit('RequestFrame', Bin, TrUserData) -> id(decode_msg_RequestFrame(Bin, TrUserData), TrUserData); +decode_msg_2_doit('ResponseFrame', Bin, TrUserData) -> id(decode_msg_ResponseFrame(Bin, TrUserData), TrUserData); +decode_msg_2_doit('CastFrame', Bin, TrUserData) -> id(decode_msg_CastFrame(Bin, TrUserData), TrUserData); +decode_msg_2_doit('ContainerRef', Bin, TrUserData) -> id(decode_msg_ContainerRef(Bin, TrUserData), TrUserData); +decode_msg_2_doit('ContainerRequest.List', Bin, TrUserData) -> id('decode_msg_ContainerRequest.List'(Bin, TrUserData), TrUserData); +decode_msg_2_doit('ContainerRequest.Deploy', Bin, TrUserData) -> id('decode_msg_ContainerRequest.Deploy'(Bin, TrUserData), TrUserData); +decode_msg_2_doit('ContainerRequest.Start', Bin, TrUserData) -> id('decode_msg_ContainerRequest.Start'(Bin, TrUserData), TrUserData); +decode_msg_2_doit('ContainerRequest.Stop', Bin, TrUserData) -> id('decode_msg_ContainerRequest.Stop'(Bin, TrUserData), TrUserData); +decode_msg_2_doit('ContainerRequest.Kill', Bin, TrUserData) -> id('decode_msg_ContainerRequest.Kill'(Bin, TrUserData), TrUserData); +decode_msg_2_doit('ContainerRequest.Remove', Bin, TrUserData) -> id('decode_msg_ContainerRequest.Remove'(Bin, TrUserData), TrUserData); +decode_msg_2_doit('ContainerRequest.Config', Bin, TrUserData) -> id('decode_msg_ContainerRequest.Config'(Bin, TrUserData), TrUserData); +decode_msg_2_doit('ContainerRequest', Bin, TrUserData) -> id(decode_msg_ContainerRequest(Bin, TrUserData), TrUserData); +decode_msg_2_doit('ContainerDeployParams', Bin, TrUserData) -> id(decode_msg_ContainerDeployParams(Bin, TrUserData), TrUserData); +decode_msg_2_doit('ContainerSpec', Bin, TrUserData) -> id(decode_msg_ContainerSpec(Bin, TrUserData), TrUserData); +decode_msg_2_doit('VolumeBind', Bin, TrUserData) -> id(decode_msg_VolumeBind(Bin, TrUserData), TrUserData); +decode_msg_2_doit('PortExpose', Bin, TrUserData) -> id(decode_msg_PortExpose(Bin, TrUserData), TrUserData); +decode_msg_2_doit('Healthcheck', Bin, TrUserData) -> id(decode_msg_Healthcheck(Bin, TrUserData), TrUserData); +decode_msg_2_doit('RestartPolicy', Bin, TrUserData) -> id(decode_msg_RestartPolicy(Bin, TrUserData), TrUserData); +decode_msg_2_doit('DeviceMapping', Bin, TrUserData) -> id(decode_msg_DeviceMapping(Bin, TrUserData), TrUserData); +decode_msg_2_doit('ResourceLimits', Bin, TrUserData) -> id(decode_msg_ResourceLimits(Bin, TrUserData), TrUserData); +decode_msg_2_doit('Ulimit', Bin, TrUserData) -> id(decode_msg_Ulimit(Bin, TrUserData), TrUserData); +decode_msg_2_doit('TmpfsMount', Bin, TrUserData) -> id(decode_msg_TmpfsMount(Bin, TrUserData), TrUserData); +decode_msg_2_doit('AuthRequest', Bin, TrUserData) -> id(decode_msg_AuthRequest(Bin, TrUserData), TrUserData); +decode_msg_2_doit('AuthReply', Bin, TrUserData) -> id(decode_msg_AuthReply(Bin, TrUserData), TrUserData); +decode_msg_2_doit('Pub', Bin, TrUserData) -> id(decode_msg_Pub(Bin, TrUserData), TrUserData); +decode_msg_2_doit('Command', Bin, TrUserData) -> id(decode_msg_Command(Bin, TrUserData), TrUserData); +decode_msg_2_doit('RpcRequest', Bin, TrUserData) -> id(decode_msg_RpcRequest(Bin, TrUserData), TrUserData); +decode_msg_2_doit('RpcReply.RpcResult', Bin, TrUserData) -> id('decode_msg_RpcReply.RpcResult'(Bin, TrUserData), TrUserData); +decode_msg_2_doit('RpcReply.RpcError', Bin, TrUserData) -> id('decode_msg_RpcReply.RpcError'(Bin, TrUserData), TrUserData); +decode_msg_2_doit('RpcReply', Bin, TrUserData) -> id(decode_msg_RpcReply(Bin, TrUserData), TrUserData); +decode_msg_2_doit('Data', Bin, TrUserData) -> id(decode_msg_Data(Bin, TrUserData), TrUserData); +decode_msg_2_doit('TaskEventStream', Bin, TrUserData) -> id(decode_msg_TaskEventStream(Bin, TrUserData), TrUserData). + + + +decode_msg_RequestFrame(Bin, TrUserData) -> dfp_read_field_def_RequestFrame(Bin, 0, 0, 0, id(0, TrUserData), id(undefined, TrUserData), TrUserData). + +dfp_read_field_def_RequestFrame(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_RequestFrame_packet_id(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_RequestFrame(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_RequestFrame_auth_request(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_RequestFrame(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_RequestFrame_rpc_request(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_RequestFrame(<<34, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_RequestFrame_container_request(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_RequestFrame(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'RequestFrame'{packet_id = F@_1, body = F@_2}; +dfp_read_field_def_RequestFrame(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_RequestFrame(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_RequestFrame(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_RequestFrame(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_RequestFrame(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 8 -> d_field_RequestFrame_packet_id(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> d_field_RequestFrame_auth_request(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 26 -> d_field_RequestFrame_rpc_request(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 34 -> d_field_RequestFrame_container_request(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_RequestFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_RequestFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_RequestFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_RequestFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_RequestFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +dg_read_field_def_RequestFrame(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'RequestFrame'{packet_id = F@_1, body = F@_2}. + +d_field_RequestFrame_packet_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_RequestFrame_packet_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_RequestFrame_packet_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, + dfp_read_field_def_RequestFrame(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_RequestFrame_auth_request(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_RequestFrame_auth_request(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_RequestFrame_auth_request(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_AuthRequest(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_RequestFrame(RestF, + 0, + 0, + F, + F@_1, + case Prev of + undefined -> id({auth_request, NewFValue}, TrUserData); + {auth_request, MVPrev} -> id({auth_request, merge_msg_AuthRequest(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({auth_request, NewFValue}, TrUserData) + end, + TrUserData). + +d_field_RequestFrame_rpc_request(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_RequestFrame_rpc_request(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_RequestFrame_rpc_request(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_RpcRequest(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_RequestFrame(RestF, + 0, + 0, + F, + F@_1, + case Prev of + undefined -> id({rpc_request, NewFValue}, TrUserData); + {rpc_request, MVPrev} -> id({rpc_request, merge_msg_RpcRequest(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({rpc_request, NewFValue}, TrUserData) + end, + TrUserData). + +d_field_RequestFrame_container_request(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_RequestFrame_container_request(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_RequestFrame_container_request(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_ContainerRequest(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_RequestFrame(RestF, + 0, + 0, + F, + F@_1, + case Prev of + undefined -> id({container_request, NewFValue}, TrUserData); + {container_request, MVPrev} -> id({container_request, merge_msg_ContainerRequest(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({container_request, NewFValue}, TrUserData) + end, + TrUserData). + +skip_varint_RequestFrame(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_RequestFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_RequestFrame(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_RequestFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_RequestFrame(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_RequestFrame(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_RequestFrame(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_RequestFrame(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +skip_group_RequestFrame(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_RequestFrame(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_RequestFrame(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_RequestFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_RequestFrame(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_RequestFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +decode_msg_ResponseFrame(Bin, TrUserData) -> dfp_read_field_def_ResponseFrame(Bin, 0, 0, 0, id(0, TrUserData), id(undefined, TrUserData), TrUserData). + +dfp_read_field_def_ResponseFrame(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ResponseFrame_packet_id(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_ResponseFrame(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ResponseFrame_auth_reply(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_ResponseFrame(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ResponseFrame_rpc_reply(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_ResponseFrame(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ResponseFrame'{packet_id = F@_1, body = F@_2}; +dfp_read_field_def_ResponseFrame(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_ResponseFrame(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_ResponseFrame(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_ResponseFrame(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_ResponseFrame(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 8 -> d_field_ResponseFrame_packet_id(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> d_field_ResponseFrame_auth_reply(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 26 -> d_field_ResponseFrame_rpc_reply(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_ResponseFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_ResponseFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_ResponseFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_ResponseFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_ResponseFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +dg_read_field_def_ResponseFrame(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ResponseFrame'{packet_id = F@_1, body = F@_2}. + +d_field_ResponseFrame_packet_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ResponseFrame_packet_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_ResponseFrame_packet_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, + dfp_read_field_def_ResponseFrame(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_ResponseFrame_auth_reply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ResponseFrame_auth_reply(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_ResponseFrame_auth_reply(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_AuthReply(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ResponseFrame(RestF, + 0, + 0, + F, + F@_1, + case Prev of + undefined -> id({auth_reply, NewFValue}, TrUserData); + {auth_reply, MVPrev} -> id({auth_reply, merge_msg_AuthReply(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({auth_reply, NewFValue}, TrUserData) + end, + TrUserData). + +d_field_ResponseFrame_rpc_reply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ResponseFrame_rpc_reply(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_ResponseFrame_rpc_reply(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_RpcReply(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ResponseFrame(RestF, + 0, + 0, + F, + F@_1, + case Prev of + undefined -> id({rpc_reply, NewFValue}, TrUserData); + {rpc_reply, MVPrev} -> id({rpc_reply, merge_msg_RpcReply(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({rpc_reply, NewFValue}, TrUserData) + end, + TrUserData). + +skip_varint_ResponseFrame(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_ResponseFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_ResponseFrame(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ResponseFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_ResponseFrame(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_ResponseFrame(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_ResponseFrame(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_ResponseFrame(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +skip_group_ResponseFrame(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_ResponseFrame(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_ResponseFrame(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ResponseFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_ResponseFrame(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ResponseFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +decode_msg_CastFrame(Bin, TrUserData) -> dfp_read_field_def_CastFrame(Bin, 0, 0, 0, id(undefined, TrUserData), TrUserData). + +dfp_read_field_def_CastFrame(<<10, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_CastFrame_pub(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_CastFrame(<<18, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_CastFrame_command(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_CastFrame(<<26, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_CastFrame_data(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_CastFrame(<<34, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_CastFrame_event_stream(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_CastFrame(<<>>, 0, 0, _, F@_1, _) -> #'CastFrame'{body = F@_1}; +dfp_read_field_def_CastFrame(Other, Z1, Z2, F, F@_1, TrUserData) -> dg_read_field_def_CastFrame(Other, Z1, Z2, F, F@_1, TrUserData). + +dg_read_field_def_CastFrame(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 32 - 7 -> dg_read_field_def_CastFrame(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +dg_read_field_def_CastFrame(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_CastFrame_pub(Rest, 0, 0, 0, F@_1, TrUserData); + 18 -> d_field_CastFrame_command(Rest, 0, 0, 0, F@_1, TrUserData); + 26 -> d_field_CastFrame_data(Rest, 0, 0, 0, F@_1, TrUserData); + 34 -> d_field_CastFrame_event_stream(Rest, 0, 0, 0, F@_1, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_CastFrame(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 1 -> skip_64_CastFrame(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 2 -> skip_length_delimited_CastFrame(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 3 -> skip_group_CastFrame(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 5 -> skip_32_CastFrame(Rest, 0, 0, Key bsr 3, F@_1, TrUserData) + end + end; +dg_read_field_def_CastFrame(<<>>, 0, 0, _, F@_1, _) -> #'CastFrame'{body = F@_1}. + +d_field_CastFrame_pub(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_CastFrame_pub(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_CastFrame_pub(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_Pub(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_CastFrame(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({pub, NewFValue}, TrUserData); + {pub, MVPrev} -> id({pub, merge_msg_Pub(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({pub, NewFValue}, TrUserData) + end, + TrUserData). + +d_field_CastFrame_command(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_CastFrame_command(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_CastFrame_command(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_Command(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_CastFrame(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({command, NewFValue}, TrUserData); + {command, MVPrev} -> id({command, merge_msg_Command(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({command, NewFValue}, TrUserData) + end, + TrUserData). + +d_field_CastFrame_data(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_CastFrame_data(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_CastFrame_data(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_Data(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_CastFrame(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({data, NewFValue}, TrUserData); + {data, MVPrev} -> id({data, merge_msg_Data(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({data, NewFValue}, TrUserData) + end, + TrUserData). + +d_field_CastFrame_event_stream(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_CastFrame_event_stream(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_CastFrame_event_stream(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_TaskEventStream(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_CastFrame(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({event_stream, NewFValue}, TrUserData); + {event_stream, MVPrev} -> id({event_stream, merge_msg_TaskEventStream(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({event_stream, NewFValue}, TrUserData) + end, + TrUserData). + +skip_varint_CastFrame(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> skip_varint_CastFrame(Rest, Z1, Z2, F, F@_1, TrUserData); +skip_varint_CastFrame(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_CastFrame(Rest, Z1, Z2, F, F@_1, TrUserData). + +skip_length_delimited_CastFrame(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> skip_length_delimited_CastFrame(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +skip_length_delimited_CastFrame(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_CastFrame(Rest2, 0, 0, F, F@_1, TrUserData). + +skip_group_CastFrame(Bin, _, Z2, FNum, F@_1, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_CastFrame(Rest, 0, Z2, FNum, F@_1, TrUserData). + +skip_32_CastFrame(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_CastFrame(Rest, Z1, Z2, F, F@_1, TrUserData). + +skip_64_CastFrame(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_CastFrame(Rest, Z1, Z2, F, F@_1, TrUserData). + +decode_msg_ContainerRef(Bin, TrUserData) -> dfp_read_field_def_ContainerRef(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). + +dfp_read_field_def_ContainerRef(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ContainerRef_id(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_ContainerRef(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ContainerRef_name(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_ContainerRef(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ContainerRef'{id = F@_1, name = F@_2}; +dfp_read_field_def_ContainerRef(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_ContainerRef(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_ContainerRef(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_ContainerRef(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_ContainerRef(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_ContainerRef_id(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> d_field_ContainerRef_name(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_ContainerRef(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_ContainerRef(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_ContainerRef(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_ContainerRef(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_ContainerRef(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +dg_read_field_def_ContainerRef(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ContainerRef'{id = F@_1, name = F@_2}. + +d_field_ContainerRef_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ContainerRef_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_ContainerRef_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ContainerRef(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_ContainerRef_name(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ContainerRef_name(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_ContainerRef_name(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ContainerRef(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +skip_varint_ContainerRef(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_ContainerRef(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_ContainerRef(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ContainerRef(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_ContainerRef(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_ContainerRef(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_ContainerRef(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_ContainerRef(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +skip_group_ContainerRef(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_ContainerRef(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_ContainerRef(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ContainerRef(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_ContainerRef(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ContainerRef(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'decode_msg_ContainerRequest.List'(Bin, TrUserData) -> 'dfp_read_field_def_ContainerRequest.List'(Bin, 0, 0, 0, id(false, TrUserData), TrUserData). + +'dfp_read_field_def_ContainerRequest.List'(<<8, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'd_field_ContainerRequest.List_all'(Rest, Z1, Z2, F, F@_1, TrUserData); +'dfp_read_field_def_ContainerRequest.List'(<<>>, 0, 0, _, F@_1, _) -> #'ContainerRequest.List'{all = F@_1}; +'dfp_read_field_def_ContainerRequest.List'(Other, Z1, Z2, F, F@_1, TrUserData) -> 'dg_read_field_def_ContainerRequest.List'(Other, Z1, Z2, F, F@_1, TrUserData). + +'dg_read_field_def_ContainerRequest.List'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_ContainerRequest.List'(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +'dg_read_field_def_ContainerRequest.List'(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 8 -> 'd_field_ContainerRequest.List_all'(Rest, 0, 0, 0, F@_1, TrUserData); + _ -> + case Key band 7 of + 0 -> 'skip_varint_ContainerRequest.List'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 1 -> 'skip_64_ContainerRequest.List'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 2 -> 'skip_length_delimited_ContainerRequest.List'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 3 -> 'skip_group_ContainerRequest.List'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 5 -> 'skip_32_ContainerRequest.List'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData) + end + end; +'dg_read_field_def_ContainerRequest.List'(<<>>, 0, 0, _, F@_1, _) -> #'ContainerRequest.List'{all = F@_1}. + +'d_field_ContainerRequest.List_all'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> 'd_field_ContainerRequest.List_all'(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +'d_field_ContainerRequest.List_all'(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, TrUserData) -> + {NewFValue, RestF} = {id(X bsl N + Acc =/= 0, TrUserData), Rest}, + 'dfp_read_field_def_ContainerRequest.List'(RestF, 0, 0, F, NewFValue, TrUserData). + +'skip_varint_ContainerRequest.List'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'skip_varint_ContainerRequest.List'(Rest, Z1, Z2, F, F@_1, TrUserData); +'skip_varint_ContainerRequest.List'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'dfp_read_field_def_ContainerRequest.List'(Rest, Z1, Z2, F, F@_1, TrUserData). + +'skip_length_delimited_ContainerRequest.List'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> 'skip_length_delimited_ContainerRequest.List'(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +'skip_length_delimited_ContainerRequest.List'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + 'dfp_read_field_def_ContainerRequest.List'(Rest2, 0, 0, F, F@_1, TrUserData). + +'skip_group_ContainerRequest.List'(Bin, _, Z2, FNum, F@_1, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + 'dfp_read_field_def_ContainerRequest.List'(Rest, 0, Z2, FNum, F@_1, TrUserData). + +'skip_32_ContainerRequest.List'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'dfp_read_field_def_ContainerRequest.List'(Rest, Z1, Z2, F, F@_1, TrUserData). + +'skip_64_ContainerRequest.List'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'dfp_read_field_def_ContainerRequest.List'(Rest, Z1, Z2, F, F@_1, TrUserData). + +'decode_msg_ContainerRequest.Deploy'(Bin, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Deploy'(Bin, 0, 0, 0, id(0, TrUserData), id(undefined, TrUserData), TrUserData). + +'dfp_read_field_def_ContainerRequest.Deploy'(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_ContainerRequest.Deploy_task_id'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_ContainerRequest.Deploy'(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_ContainerRequest.Deploy_params'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_ContainerRequest.Deploy'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ContainerRequest.Deploy'{task_id = F@_1, params = F@_2}; +'dfp_read_field_def_ContainerRequest.Deploy'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dg_read_field_def_ContainerRequest.Deploy'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'dg_read_field_def_ContainerRequest.Deploy'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_ContainerRequest.Deploy'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'dg_read_field_def_ContainerRequest.Deploy'(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 8 -> 'd_field_ContainerRequest.Deploy_task_id'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> 'd_field_ContainerRequest.Deploy_params'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> 'skip_varint_ContainerRequest.Deploy'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> 'skip_64_ContainerRequest.Deploy'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> 'skip_length_delimited_ContainerRequest.Deploy'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> 'skip_group_ContainerRequest.Deploy'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> 'skip_32_ContainerRequest.Deploy'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +'dg_read_field_def_ContainerRequest.Deploy'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ContainerRequest.Deploy'{task_id = F@_1, params = F@_2}. + +'d_field_ContainerRequest.Deploy_task_id'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_ContainerRequest.Deploy_task_id'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_ContainerRequest.Deploy_task_id'(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, + 'dfp_read_field_def_ContainerRequest.Deploy'(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +'d_field_ContainerRequest.Deploy_params'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_ContainerRequest.Deploy_params'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_ContainerRequest.Deploy_params'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_ContainerDeployParams(Bs, TrUserData), TrUserData), Rest2} end, + 'dfp_read_field_def_ContainerRequest.Deploy'(RestF, + 0, + 0, + F, + F@_1, + if Prev == undefined -> NewFValue; + true -> merge_msg_ContainerDeployParams(Prev, NewFValue, TrUserData) + end, + TrUserData). + +'skip_varint_ContainerRequest.Deploy'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'skip_varint_ContainerRequest.Deploy'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'skip_varint_ContainerRequest.Deploy'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Deploy'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'skip_length_delimited_ContainerRequest.Deploy'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'skip_length_delimited_ContainerRequest.Deploy'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'skip_length_delimited_ContainerRequest.Deploy'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + 'dfp_read_field_def_ContainerRequest.Deploy'(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +'skip_group_ContainerRequest.Deploy'(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + 'dfp_read_field_def_ContainerRequest.Deploy'(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +'skip_32_ContainerRequest.Deploy'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Deploy'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'skip_64_ContainerRequest.Deploy'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Deploy'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'decode_msg_ContainerRequest.Start'(Bin, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Start'(Bin, 0, 0, 0, id(undefined, TrUserData), TrUserData). + +'dfp_read_field_def_ContainerRequest.Start'(<<10, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'd_field_ContainerRequest.Start_target'(Rest, Z1, Z2, F, F@_1, TrUserData); +'dfp_read_field_def_ContainerRequest.Start'(<<>>, 0, 0, _, F@_1, _) -> #'ContainerRequest.Start'{target = F@_1}; +'dfp_read_field_def_ContainerRequest.Start'(Other, Z1, Z2, F, F@_1, TrUserData) -> 'dg_read_field_def_ContainerRequest.Start'(Other, Z1, Z2, F, F@_1, TrUserData). + +'dg_read_field_def_ContainerRequest.Start'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_ContainerRequest.Start'(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +'dg_read_field_def_ContainerRequest.Start'(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> 'd_field_ContainerRequest.Start_target'(Rest, 0, 0, 0, F@_1, TrUserData); + _ -> + case Key band 7 of + 0 -> 'skip_varint_ContainerRequest.Start'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 1 -> 'skip_64_ContainerRequest.Start'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 2 -> 'skip_length_delimited_ContainerRequest.Start'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 3 -> 'skip_group_ContainerRequest.Start'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 5 -> 'skip_32_ContainerRequest.Start'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData) + end + end; +'dg_read_field_def_ContainerRequest.Start'(<<>>, 0, 0, _, F@_1, _) -> #'ContainerRequest.Start'{target = F@_1}. + +'d_field_ContainerRequest.Start_target'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> 'd_field_ContainerRequest.Start_target'(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +'d_field_ContainerRequest.Start_target'(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_ContainerRef(Bs, TrUserData), TrUserData), Rest2} end, + 'dfp_read_field_def_ContainerRequest.Start'(RestF, + 0, + 0, + F, + if Prev == undefined -> NewFValue; + true -> merge_msg_ContainerRef(Prev, NewFValue, TrUserData) + end, + TrUserData). + +'skip_varint_ContainerRequest.Start'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'skip_varint_ContainerRequest.Start'(Rest, Z1, Z2, F, F@_1, TrUserData); +'skip_varint_ContainerRequest.Start'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Start'(Rest, Z1, Z2, F, F@_1, TrUserData). + +'skip_length_delimited_ContainerRequest.Start'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> 'skip_length_delimited_ContainerRequest.Start'(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +'skip_length_delimited_ContainerRequest.Start'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + 'dfp_read_field_def_ContainerRequest.Start'(Rest2, 0, 0, F, F@_1, TrUserData). + +'skip_group_ContainerRequest.Start'(Bin, _, Z2, FNum, F@_1, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + 'dfp_read_field_def_ContainerRequest.Start'(Rest, 0, Z2, FNum, F@_1, TrUserData). + +'skip_32_ContainerRequest.Start'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Start'(Rest, Z1, Z2, F, F@_1, TrUserData). + +'skip_64_ContainerRequest.Start'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Start'(Rest, Z1, Z2, F, F@_1, TrUserData). + +'decode_msg_ContainerRequest.Stop'(Bin, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Stop'(Bin, 0, 0, 0, id(undefined, TrUserData), id(0, TrUserData), TrUserData). + +'dfp_read_field_def_ContainerRequest.Stop'(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_ContainerRequest.Stop_target'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_ContainerRequest.Stop'(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_ContainerRequest.Stop_timeout_seconds'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_ContainerRequest.Stop'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ContainerRequest.Stop'{target = F@_1, timeout_seconds = F@_2}; +'dfp_read_field_def_ContainerRequest.Stop'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dg_read_field_def_ContainerRequest.Stop'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'dg_read_field_def_ContainerRequest.Stop'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_ContainerRequest.Stop'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'dg_read_field_def_ContainerRequest.Stop'(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> 'd_field_ContainerRequest.Stop_target'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 16 -> 'd_field_ContainerRequest.Stop_timeout_seconds'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> 'skip_varint_ContainerRequest.Stop'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> 'skip_64_ContainerRequest.Stop'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> 'skip_length_delimited_ContainerRequest.Stop'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> 'skip_group_ContainerRequest.Stop'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> 'skip_32_ContainerRequest.Stop'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +'dg_read_field_def_ContainerRequest.Stop'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ContainerRequest.Stop'{target = F@_1, timeout_seconds = F@_2}. + +'d_field_ContainerRequest.Stop_target'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_ContainerRequest.Stop_target'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_ContainerRequest.Stop_target'(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, F@_2, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_ContainerRef(Bs, TrUserData), TrUserData), Rest2} end, + 'dfp_read_field_def_ContainerRequest.Stop'(RestF, + 0, + 0, + F, + if Prev == undefined -> NewFValue; + true -> merge_msg_ContainerRef(Prev, NewFValue, TrUserData) + end, + F@_2, + TrUserData). + +'d_field_ContainerRequest.Stop_timeout_seconds'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_ContainerRequest.Stop_timeout_seconds'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_ContainerRequest.Stop_timeout_seconds'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, + 'dfp_read_field_def_ContainerRequest.Stop'(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +'skip_varint_ContainerRequest.Stop'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'skip_varint_ContainerRequest.Stop'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'skip_varint_ContainerRequest.Stop'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Stop'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'skip_length_delimited_ContainerRequest.Stop'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'skip_length_delimited_ContainerRequest.Stop'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'skip_length_delimited_ContainerRequest.Stop'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + 'dfp_read_field_def_ContainerRequest.Stop'(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +'skip_group_ContainerRequest.Stop'(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + 'dfp_read_field_def_ContainerRequest.Stop'(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +'skip_32_ContainerRequest.Stop'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Stop'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'skip_64_ContainerRequest.Stop'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Stop'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'decode_msg_ContainerRequest.Kill'(Bin, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Kill'(Bin, 0, 0, 0, id(undefined, TrUserData), id(<<>>, TrUserData), TrUserData). + +'dfp_read_field_def_ContainerRequest.Kill'(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_ContainerRequest.Kill_target'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_ContainerRequest.Kill'(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_ContainerRequest.Kill_signal'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_ContainerRequest.Kill'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ContainerRequest.Kill'{target = F@_1, signal = F@_2}; +'dfp_read_field_def_ContainerRequest.Kill'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dg_read_field_def_ContainerRequest.Kill'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'dg_read_field_def_ContainerRequest.Kill'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_ContainerRequest.Kill'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'dg_read_field_def_ContainerRequest.Kill'(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> 'd_field_ContainerRequest.Kill_target'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> 'd_field_ContainerRequest.Kill_signal'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> 'skip_varint_ContainerRequest.Kill'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> 'skip_64_ContainerRequest.Kill'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> 'skip_length_delimited_ContainerRequest.Kill'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> 'skip_group_ContainerRequest.Kill'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> 'skip_32_ContainerRequest.Kill'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +'dg_read_field_def_ContainerRequest.Kill'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ContainerRequest.Kill'{target = F@_1, signal = F@_2}. + +'d_field_ContainerRequest.Kill_target'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_ContainerRequest.Kill_target'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_ContainerRequest.Kill_target'(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, F@_2, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_ContainerRef(Bs, TrUserData), TrUserData), Rest2} end, + 'dfp_read_field_def_ContainerRequest.Kill'(RestF, + 0, + 0, + F, + if Prev == undefined -> NewFValue; + true -> merge_msg_ContainerRef(Prev, NewFValue, TrUserData) + end, + F@_2, + TrUserData). + +'d_field_ContainerRequest.Kill_signal'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_ContainerRequest.Kill_signal'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_ContainerRequest.Kill_signal'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + 'dfp_read_field_def_ContainerRequest.Kill'(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +'skip_varint_ContainerRequest.Kill'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'skip_varint_ContainerRequest.Kill'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'skip_varint_ContainerRequest.Kill'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Kill'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'skip_length_delimited_ContainerRequest.Kill'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'skip_length_delimited_ContainerRequest.Kill'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'skip_length_delimited_ContainerRequest.Kill'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + 'dfp_read_field_def_ContainerRequest.Kill'(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +'skip_group_ContainerRequest.Kill'(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + 'dfp_read_field_def_ContainerRequest.Kill'(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +'skip_32_ContainerRequest.Kill'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Kill'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'skip_64_ContainerRequest.Kill'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Kill'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'decode_msg_ContainerRequest.Remove'(Bin, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Remove'(Bin, 0, 0, 0, id(undefined, TrUserData), id(false, TrUserData), id(false, TrUserData), TrUserData). + +'dfp_read_field_def_ContainerRequest.Remove'(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'd_field_ContainerRequest.Remove_target'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +'dfp_read_field_def_ContainerRequest.Remove'(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'd_field_ContainerRequest.Remove_force'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +'dfp_read_field_def_ContainerRequest.Remove'(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'd_field_ContainerRequest.Remove_remove_volumes'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +'dfp_read_field_def_ContainerRequest.Remove'(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'ContainerRequest.Remove'{target = F@_1, force = F@_2, remove_volumes = F@_3}; +'dfp_read_field_def_ContainerRequest.Remove'(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'dg_read_field_def_ContainerRequest.Remove'(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +'dg_read_field_def_ContainerRequest.Remove'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_ContainerRequest.Remove'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +'dg_read_field_def_ContainerRequest.Remove'(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> 'd_field_ContainerRequest.Remove_target'(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 16 -> 'd_field_ContainerRequest.Remove_force'(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 24 -> 'd_field_ContainerRequest.Remove_remove_volumes'(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + _ -> + case Key band 7 of + 0 -> 'skip_varint_ContainerRequest.Remove'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> 'skip_64_ContainerRequest.Remove'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> 'skip_length_delimited_ContainerRequest.Remove'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> 'skip_group_ContainerRequest.Remove'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> 'skip_32_ContainerRequest.Remove'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) + end + end; +'dg_read_field_def_ContainerRequest.Remove'(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'ContainerRequest.Remove'{target = F@_1, force = F@_2, remove_volumes = F@_3}. + +'d_field_ContainerRequest.Remove_target'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> 'd_field_ContainerRequest.Remove_target'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +'d_field_ContainerRequest.Remove_target'(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, F@_2, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_ContainerRef(Bs, TrUserData), TrUserData), Rest2} end, + 'dfp_read_field_def_ContainerRequest.Remove'(RestF, + 0, + 0, + F, + if Prev == undefined -> NewFValue; + true -> merge_msg_ContainerRef(Prev, NewFValue, TrUserData) + end, + F@_2, + F@_3, + TrUserData). + +'d_field_ContainerRequest.Remove_force'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> 'd_field_ContainerRequest.Remove_force'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +'d_field_ContainerRequest.Remove_force'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> + {NewFValue, RestF} = {id(X bsl N + Acc =/= 0, TrUserData), Rest}, + 'dfp_read_field_def_ContainerRequest.Remove'(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). + +'d_field_ContainerRequest.Remove_remove_volumes'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> 'd_field_ContainerRequest.Remove_remove_volumes'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +'d_field_ContainerRequest.Remove_remove_volumes'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> + {NewFValue, RestF} = {id(X bsl N + Acc =/= 0, TrUserData), Rest}, + 'dfp_read_field_def_ContainerRequest.Remove'(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). + +'skip_varint_ContainerRequest.Remove'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'skip_varint_ContainerRequest.Remove'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +'skip_varint_ContainerRequest.Remove'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Remove'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +'skip_length_delimited_ContainerRequest.Remove'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> 'skip_length_delimited_ContainerRequest.Remove'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +'skip_length_delimited_ContainerRequest.Remove'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + 'dfp_read_field_def_ContainerRequest.Remove'(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). + +'skip_group_ContainerRequest.Remove'(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + 'dfp_read_field_def_ContainerRequest.Remove'(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). + +'skip_32_ContainerRequest.Remove'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Remove'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +'skip_64_ContainerRequest.Remove'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Remove'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +'decode_msg_ContainerRequest.Config'(Bin, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Config'(Bin, 0, 0, 0, id(undefined, TrUserData), id(<<>>, TrUserData), TrUserData). + +'dfp_read_field_def_ContainerRequest.Config'(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_ContainerRequest.Config_target'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_ContainerRequest.Config'(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_ContainerRequest.Config_config'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_ContainerRequest.Config'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ContainerRequest.Config'{target = F@_1, config = F@_2}; +'dfp_read_field_def_ContainerRequest.Config'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dg_read_field_def_ContainerRequest.Config'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'dg_read_field_def_ContainerRequest.Config'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_ContainerRequest.Config'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'dg_read_field_def_ContainerRequest.Config'(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> 'd_field_ContainerRequest.Config_target'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> 'd_field_ContainerRequest.Config_config'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> 'skip_varint_ContainerRequest.Config'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> 'skip_64_ContainerRequest.Config'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> 'skip_length_delimited_ContainerRequest.Config'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> 'skip_group_ContainerRequest.Config'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> 'skip_32_ContainerRequest.Config'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +'dg_read_field_def_ContainerRequest.Config'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ContainerRequest.Config'{target = F@_1, config = F@_2}. + +'d_field_ContainerRequest.Config_target'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_ContainerRequest.Config_target'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_ContainerRequest.Config_target'(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, F@_2, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_ContainerRef(Bs, TrUserData), TrUserData), Rest2} end, + 'dfp_read_field_def_ContainerRequest.Config'(RestF, + 0, + 0, + F, + if Prev == undefined -> NewFValue; + true -> merge_msg_ContainerRef(Prev, NewFValue, TrUserData) + end, + F@_2, + TrUserData). + +'d_field_ContainerRequest.Config_config'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_ContainerRequest.Config_config'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_ContainerRequest.Config_config'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + 'dfp_read_field_def_ContainerRequest.Config'(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +'skip_varint_ContainerRequest.Config'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'skip_varint_ContainerRequest.Config'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'skip_varint_ContainerRequest.Config'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Config'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'skip_length_delimited_ContainerRequest.Config'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'skip_length_delimited_ContainerRequest.Config'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'skip_length_delimited_ContainerRequest.Config'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + 'dfp_read_field_def_ContainerRequest.Config'(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +'skip_group_ContainerRequest.Config'(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + 'dfp_read_field_def_ContainerRequest.Config'(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +'skip_32_ContainerRequest.Config'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Config'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'skip_64_ContainerRequest.Config'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_ContainerRequest.Config'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +decode_msg_ContainerRequest(Bin, TrUserData) -> dfp_read_field_def_ContainerRequest(Bin, 0, 0, 0, id(undefined, TrUserData), TrUserData). + +dfp_read_field_def_ContainerRequest(<<82, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_ContainerRequest_list(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_ContainerRequest(<<90, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_ContainerRequest_deploy(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_ContainerRequest(<<98, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_ContainerRequest_start(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_ContainerRequest(<<106, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_ContainerRequest_stop(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_ContainerRequest(<<114, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_ContainerRequest_kill(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_ContainerRequest(<<122, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_ContainerRequest_remove(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_ContainerRequest(<<130, 1, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_ContainerRequest_config(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_ContainerRequest(<<>>, 0, 0, _, F@_1, _) -> #'ContainerRequest'{action = F@_1}; +dfp_read_field_def_ContainerRequest(Other, Z1, Z2, F, F@_1, TrUserData) -> dg_read_field_def_ContainerRequest(Other, Z1, Z2, F, F@_1, TrUserData). + +dg_read_field_def_ContainerRequest(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 32 - 7 -> dg_read_field_def_ContainerRequest(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +dg_read_field_def_ContainerRequest(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 82 -> d_field_ContainerRequest_list(Rest, 0, 0, 0, F@_1, TrUserData); + 90 -> d_field_ContainerRequest_deploy(Rest, 0, 0, 0, F@_1, TrUserData); + 98 -> d_field_ContainerRequest_start(Rest, 0, 0, 0, F@_1, TrUserData); + 106 -> d_field_ContainerRequest_stop(Rest, 0, 0, 0, F@_1, TrUserData); + 114 -> d_field_ContainerRequest_kill(Rest, 0, 0, 0, F@_1, TrUserData); + 122 -> d_field_ContainerRequest_remove(Rest, 0, 0, 0, F@_1, TrUserData); + 130 -> d_field_ContainerRequest_config(Rest, 0, 0, 0, F@_1, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_ContainerRequest(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 1 -> skip_64_ContainerRequest(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 2 -> skip_length_delimited_ContainerRequest(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 3 -> skip_group_ContainerRequest(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 5 -> skip_32_ContainerRequest(Rest, 0, 0, Key bsr 3, F@_1, TrUserData) + end + end; +dg_read_field_def_ContainerRequest(<<>>, 0, 0, _, F@_1, _) -> #'ContainerRequest'{action = F@_1}. + +d_field_ContainerRequest_list(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_ContainerRequest_list(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_ContainerRequest_list(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_ContainerRequest.List'(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerRequest(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({list, NewFValue}, TrUserData); + {list, MVPrev} -> id({list, 'merge_msg_ContainerRequest.List'(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({list, NewFValue}, TrUserData) + end, + TrUserData). + +d_field_ContainerRequest_deploy(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_ContainerRequest_deploy(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_ContainerRequest_deploy(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_ContainerRequest.Deploy'(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerRequest(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({deploy, NewFValue}, TrUserData); + {deploy, MVPrev} -> id({deploy, 'merge_msg_ContainerRequest.Deploy'(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({deploy, NewFValue}, TrUserData) + end, + TrUserData). + +d_field_ContainerRequest_start(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_ContainerRequest_start(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_ContainerRequest_start(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_ContainerRequest.Start'(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerRequest(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({start, NewFValue}, TrUserData); + {start, MVPrev} -> id({start, 'merge_msg_ContainerRequest.Start'(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({start, NewFValue}, TrUserData) + end, + TrUserData). + +d_field_ContainerRequest_stop(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_ContainerRequest_stop(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_ContainerRequest_stop(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_ContainerRequest.Stop'(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerRequest(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({stop, NewFValue}, TrUserData); + {stop, MVPrev} -> id({stop, 'merge_msg_ContainerRequest.Stop'(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({stop, NewFValue}, TrUserData) + end, + TrUserData). + +d_field_ContainerRequest_kill(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_ContainerRequest_kill(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_ContainerRequest_kill(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_ContainerRequest.Kill'(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerRequest(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({kill, NewFValue}, TrUserData); + {kill, MVPrev} -> id({kill, 'merge_msg_ContainerRequest.Kill'(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({kill, NewFValue}, TrUserData) + end, + TrUserData). + +d_field_ContainerRequest_remove(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_ContainerRequest_remove(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_ContainerRequest_remove(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_ContainerRequest.Remove'(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerRequest(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({remove, NewFValue}, TrUserData); + {remove, MVPrev} -> id({remove, 'merge_msg_ContainerRequest.Remove'(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({remove, NewFValue}, TrUserData) + end, + TrUserData). + +d_field_ContainerRequest_config(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_ContainerRequest_config(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_ContainerRequest_config(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_ContainerRequest.Config'(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerRequest(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({config, NewFValue}, TrUserData); + {config, MVPrev} -> id({config, 'merge_msg_ContainerRequest.Config'(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({config, NewFValue}, TrUserData) + end, + TrUserData). + +skip_varint_ContainerRequest(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> skip_varint_ContainerRequest(Rest, Z1, Z2, F, F@_1, TrUserData); +skip_varint_ContainerRequest(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_ContainerRequest(Rest, Z1, Z2, F, F@_1, TrUserData). + +skip_length_delimited_ContainerRequest(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> skip_length_delimited_ContainerRequest(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +skip_length_delimited_ContainerRequest(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_ContainerRequest(Rest2, 0, 0, F, F@_1, TrUserData). + +skip_group_ContainerRequest(Bin, _, Z2, FNum, F@_1, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_ContainerRequest(Rest, 0, Z2, FNum, F@_1, TrUserData). + +skip_32_ContainerRequest(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_ContainerRequest(Rest, Z1, Z2, F, F@_1, TrUserData). + +skip_64_ContainerRequest(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_ContainerRequest(Rest, Z1, Z2, F, F@_1, TrUserData). + +decode_msg_ContainerDeployParams(Bin, TrUserData) -> dfp_read_field_def_ContainerDeployParams(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(undefined, TrUserData), TrUserData). + +dfp_read_field_def_ContainerDeployParams(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_ContainerDeployParams_container_name(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_ContainerDeployParams(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_ContainerDeployParams_container_dir(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_ContainerDeployParams(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_ContainerDeployParams_spec(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_ContainerDeployParams(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'ContainerDeployParams'{container_name = F@_1, container_dir = F@_2, spec = F@_3}; +dfp_read_field_def_ContainerDeployParams(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_ContainerDeployParams(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +dg_read_field_def_ContainerDeployParams(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_ContainerDeployParams(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_ContainerDeployParams(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_ContainerDeployParams_container_name(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 18 -> d_field_ContainerDeployParams_container_dir(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 26 -> d_field_ContainerDeployParams_spec(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_ContainerDeployParams(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_ContainerDeployParams(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_ContainerDeployParams(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_ContainerDeployParams(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_ContainerDeployParams(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) + end + end; +dg_read_field_def_ContainerDeployParams(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'ContainerDeployParams'{container_name = F@_1, container_dir = F@_2, spec = F@_3}. + +d_field_ContainerDeployParams_container_name(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_ContainerDeployParams_container_name(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_ContainerDeployParams_container_name(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ContainerDeployParams(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). + +d_field_ContainerDeployParams_container_dir(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_ContainerDeployParams_container_dir(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_ContainerDeployParams_container_dir(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ContainerDeployParams(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). + +d_field_ContainerDeployParams_spec(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_ContainerDeployParams_spec(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_ContainerDeployParams_spec(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_ContainerSpec(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerDeployParams(RestF, + 0, + 0, + F, + F@_1, + F@_2, + if Prev == undefined -> NewFValue; + true -> merge_msg_ContainerSpec(Prev, NewFValue, TrUserData) + end, + TrUserData). + +skip_varint_ContainerDeployParams(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_ContainerDeployParams(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_ContainerDeployParams(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_ContainerDeployParams(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_length_delimited_ContainerDeployParams(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_ContainerDeployParams(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_ContainerDeployParams(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_ContainerDeployParams(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). + +skip_group_ContainerDeployParams(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_ContainerDeployParams(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). + +skip_32_ContainerDeployParams(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_ContainerDeployParams(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_64_ContainerDeployParams(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_ContainerDeployParams(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +decode_msg_ContainerSpec(Bin, TrUserData) -> + dfp_read_field_def_ContainerSpec(Bin, + 0, + 0, + 0, + id(<<>>, TrUserData), + id([], TrUserData), + id([], TrUserData), + id([], TrUserData), + 'tr_decode_init_default_ContainerSpec.labels'([], TrUserData), + id([], TrUserData), + id(<<>>, TrUserData), + id(<<>>, TrUserData), + id(<<>>, TrUserData), + id([], TrUserData), + id([], TrUserData), + id(<<>>, TrUserData), + id(undefined, TrUserData), + id(undefined, TrUserData), + id(false, TrUserData), + id([], TrUserData), + id([], TrUserData), + id([], TrUserData), + id(undefined, TrUserData), + id([], TrUserData), + id([], TrUserData), + 'tr_decode_init_default_ContainerSpec.sysctls'([], TrUserData), + id([], TrUserData), + TrUserData). + +dfp_read_field_def_ContainerSpec(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_image(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_command(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_entrypoint(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<34, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_env(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<42, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_labels(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<50, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_volumes(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<58, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_user(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<66, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_working_dir(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<74, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_hostname(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<82, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_expose(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<90, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_networks(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<98, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_network_mode(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<106, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_healthcheck(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<114, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_restart(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<120, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_privileged(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<130, 1, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_cap_add(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<138, 1, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_cap_drop(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<146, 1, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_devices(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<154, 1, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_resources(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<162, 1, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_ulimits(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<170, 1, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_tmpfs(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<178, 1, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_sysctls(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<186, 1, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + d_field_ContainerSpec_extra_hosts(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dfp_read_field_def_ContainerSpec(<<>>, 0, 0, _, F@_1, R1, R2, R3, R4, R5, F@_7, F@_8, F@_9, R6, R7, F@_12, F@_13, F@_14, F@_15, R8, R9, R10, F@_19, R11, R12, R13, R14, TrUserData) -> + #'ContainerSpec'{image = F@_1, command = lists_reverse(R1, TrUserData), entrypoint = lists_reverse(R2, TrUserData), env = lists_reverse(R3, TrUserData), labels = 'tr_decode_repeated_finalize_ContainerSpec.labels'(R4, TrUserData), + volumes = lists_reverse(R5, TrUserData), user = F@_7, working_dir = F@_8, hostname = F@_9, expose = lists_reverse(R6, TrUserData), networks = lists_reverse(R7, TrUserData), network_mode = F@_12, healthcheck = F@_13, restart = F@_14, + privileged = F@_15, cap_add = lists_reverse(R8, TrUserData), cap_drop = lists_reverse(R9, TrUserData), devices = lists_reverse(R10, TrUserData), resources = F@_19, ulimits = lists_reverse(R11, TrUserData), tmpfs = lists_reverse(R12, TrUserData), + sysctls = 'tr_decode_repeated_finalize_ContainerSpec.sysctls'(R13, TrUserData), extra_hosts = lists_reverse(R14, TrUserData)}; +dfp_read_field_def_ContainerSpec(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + dg_read_field_def_ContainerSpec(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +dg_read_field_def_ContainerSpec(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) + when N < 32 - 7 -> + dg_read_field_def_ContainerSpec(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +dg_read_field_def_ContainerSpec(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_ContainerSpec_image(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 18 -> d_field_ContainerSpec_command(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 26 -> d_field_ContainerSpec_entrypoint(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 34 -> d_field_ContainerSpec_env(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 42 -> d_field_ContainerSpec_labels(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 50 -> d_field_ContainerSpec_volumes(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 58 -> d_field_ContainerSpec_user(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 66 -> d_field_ContainerSpec_working_dir(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 74 -> d_field_ContainerSpec_hostname(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 82 -> d_field_ContainerSpec_expose(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 90 -> d_field_ContainerSpec_networks(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 98 -> d_field_ContainerSpec_network_mode(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 106 -> d_field_ContainerSpec_healthcheck(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 114 -> d_field_ContainerSpec_restart(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 120 -> d_field_ContainerSpec_privileged(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 130 -> d_field_ContainerSpec_cap_add(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 138 -> d_field_ContainerSpec_cap_drop(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 146 -> d_field_ContainerSpec_devices(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 154 -> d_field_ContainerSpec_resources(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 162 -> d_field_ContainerSpec_ulimits(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 170 -> d_field_ContainerSpec_tmpfs(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 178 -> d_field_ContainerSpec_sysctls(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 186 -> d_field_ContainerSpec_extra_hosts(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_ContainerSpec(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 1 -> skip_64_ContainerSpec(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 2 -> skip_length_delimited_ContainerSpec(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 3 -> skip_group_ContainerSpec(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); + 5 -> skip_32_ContainerSpec(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) + end + end; +dg_read_field_def_ContainerSpec(<<>>, 0, 0, _, F@_1, R1, R2, R3, R4, R5, F@_7, F@_8, F@_9, R6, R7, F@_12, F@_13, F@_14, F@_15, R8, R9, R10, F@_19, R11, R12, R13, R14, TrUserData) -> + #'ContainerSpec'{image = F@_1, command = lists_reverse(R1, TrUserData), entrypoint = lists_reverse(R2, TrUserData), env = lists_reverse(R3, TrUserData), labels = 'tr_decode_repeated_finalize_ContainerSpec.labels'(R4, TrUserData), + volumes = lists_reverse(R5, TrUserData), user = F@_7, working_dir = F@_8, hostname = F@_9, expose = lists_reverse(R6, TrUserData), networks = lists_reverse(R7, TrUserData), network_mode = F@_12, healthcheck = F@_13, restart = F@_14, + privileged = F@_15, cap_add = lists_reverse(R8, TrUserData), cap_drop = lists_reverse(R9, TrUserData), devices = lists_reverse(R10, TrUserData), resources = F@_19, ulimits = lists_reverse(R11, TrUserData), tmpfs = lists_reverse(R12, TrUserData), + sysctls = 'tr_decode_repeated_finalize_ContainerSpec.sysctls'(R13, TrUserData), extra_hosts = lists_reverse(R14, TrUserData)}. + +d_field_ContainerSpec_image(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_image(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_image(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_command(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_command(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_command(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, Prev, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, cons(NewFValue, Prev, TrUserData), F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_entrypoint(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_entrypoint(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_entrypoint(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, Prev, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, F@_2, cons(NewFValue, Prev, TrUserData), F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_env(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_env(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_env(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, Prev, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, F@_2, F@_3, cons(NewFValue, Prev, TrUserData), F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_labels(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_labels(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_labels(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, Prev, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_map'(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, + 0, + 0, + F, + F@_1, + F@_2, + F@_3, + F@_4, + 'tr_decode_repeated_add_elem_ContainerSpec.labels'(NewFValue, Prev, TrUserData), + F@_6, + F@_7, + F@_8, + F@_9, + F@_10, + F@_11, + F@_12, + F@_13, + F@_14, + F@_15, + F@_16, + F@_17, + F@_18, + F@_19, + F@_20, + F@_21, + F@_22, + F@_23, + TrUserData). + +d_field_ContainerSpec_volumes(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_volumes(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_volumes(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, Prev, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_VolumeBind(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, cons(NewFValue, Prev, TrUserData), F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_user(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_user(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_user(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, _, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, NewFValue, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_working_dir(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_working_dir(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_working_dir(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, _, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, NewFValue, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_hostname(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_hostname(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_hostname(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, _, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, NewFValue, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_expose(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_expose(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_expose(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, Prev, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_PortExpose(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, cons(NewFValue, Prev, TrUserData), F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_networks(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_networks(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_networks(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, Prev, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, cons(NewFValue, Prev, TrUserData), F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_network_mode(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) + when N < 57 -> + d_field_ContainerSpec_network_mode(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_network_mode(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, _, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, NewFValue, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_healthcheck(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_healthcheck(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_healthcheck(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, Prev, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_Healthcheck(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, + 0, + 0, + F, + F@_1, + F@_2, + F@_3, + F@_4, + F@_5, + F@_6, + F@_7, + F@_8, + F@_9, + F@_10, + F@_11, + F@_12, + if Prev == undefined -> NewFValue; + true -> merge_msg_Healthcheck(Prev, NewFValue, TrUserData) + end, + F@_14, + F@_15, + F@_16, + F@_17, + F@_18, + F@_19, + F@_20, + F@_21, + F@_22, + F@_23, + TrUserData). + +d_field_ContainerSpec_restart(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_restart(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_restart(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, Prev, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_RestartPolicy(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, + 0, + 0, + F, + F@_1, + F@_2, + F@_3, + F@_4, + F@_5, + F@_6, + F@_7, + F@_8, + F@_9, + F@_10, + F@_11, + F@_12, + F@_13, + if Prev == undefined -> NewFValue; + true -> merge_msg_RestartPolicy(Prev, NewFValue, TrUserData) + end, + F@_15, + F@_16, + F@_17, + F@_18, + F@_19, + F@_20, + F@_21, + F@_22, + F@_23, + TrUserData). + +d_field_ContainerSpec_privileged(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_privileged(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_privileged(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, _, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = {id(X bsl N + Acc =/= 0, TrUserData), Rest}, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, NewFValue, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_cap_add(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_cap_add(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_cap_add(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, Prev, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, cons(NewFValue, Prev, TrUserData), F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_cap_drop(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_cap_drop(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_cap_drop(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, Prev, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, cons(NewFValue, Prev, TrUserData), F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_devices(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_devices(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_devices(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, Prev, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_DeviceMapping(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, cons(NewFValue, Prev, TrUserData), F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_resources(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_resources(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_resources(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, Prev, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_ResourceLimits(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, + 0, + 0, + F, + F@_1, + F@_2, + F@_3, + F@_4, + F@_5, + F@_6, + F@_7, + F@_8, + F@_9, + F@_10, + F@_11, + F@_12, + F@_13, + F@_14, + F@_15, + F@_16, + F@_17, + F@_18, + if Prev == undefined -> NewFValue; + true -> merge_msg_ResourceLimits(Prev, NewFValue, TrUserData) + end, + F@_20, + F@_21, + F@_22, + F@_23, + TrUserData). + +d_field_ContainerSpec_ulimits(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_ulimits(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_ulimits(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, Prev, F@_21, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_Ulimit(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, cons(NewFValue, Prev, TrUserData), F@_21, F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_tmpfs(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_tmpfs(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_tmpfs(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, Prev, F@_22, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_TmpfsMount(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, cons(NewFValue, Prev, TrUserData), F@_22, F@_23, TrUserData). + +d_field_ContainerSpec_sysctls(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_sysctls(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_sysctls(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, Prev, F@_23, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_map'(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, + 0, + 0, + F, + F@_1, + F@_2, + F@_3, + F@_4, + F@_5, + F@_6, + F@_7, + F@_8, + F@_9, + F@_10, + F@_11, + F@_12, + F@_13, + F@_14, + F@_15, + F@_16, + F@_17, + F@_18, + F@_19, + F@_20, + F@_21, + 'tr_decode_repeated_add_elem_ContainerSpec.sysctls'(NewFValue, Prev, TrUserData), + F@_23, + TrUserData). + +d_field_ContainerSpec_extra_hosts(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) when N < 57 -> + d_field_ContainerSpec_extra_hosts(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +d_field_ContainerSpec_extra_hosts(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ContainerSpec(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, cons(NewFValue, Prev, TrUserData), TrUserData). + +skip_varint_ContainerSpec(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + skip_varint_ContainerSpec(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +skip_varint_ContainerSpec(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + dfp_read_field_def_ContainerSpec(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +skip_length_delimited_ContainerSpec(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) + when N < 57 -> + skip_length_delimited_ContainerSpec(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData); +skip_length_delimited_ContainerSpec(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_ContainerSpec(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +skip_group_ContainerSpec(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_ContainerSpec(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +skip_32_ContainerSpec(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + dfp_read_field_def_ContainerSpec(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +skip_64_ContainerSpec(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData) -> + dfp_read_field_def_ContainerSpec(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, F@_14, F@_15, F@_16, F@_17, F@_18, F@_19, F@_20, F@_21, F@_22, F@_23, TrUserData). + +decode_msg_VolumeBind(Bin, TrUserData) -> dfp_read_field_def_VolumeBind(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(false, TrUserData), TrUserData). + +dfp_read_field_def_VolumeBind(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_VolumeBind_host_path(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_VolumeBind(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_VolumeBind_container_path(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_VolumeBind(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_VolumeBind_read_only(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_VolumeBind(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'VolumeBind'{host_path = F@_1, container_path = F@_2, read_only = F@_3}; +dfp_read_field_def_VolumeBind(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_VolumeBind(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +dg_read_field_def_VolumeBind(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_VolumeBind(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_VolumeBind(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_VolumeBind_host_path(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 18 -> d_field_VolumeBind_container_path(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 24 -> d_field_VolumeBind_read_only(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_VolumeBind(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_VolumeBind(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_VolumeBind(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_VolumeBind(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_VolumeBind(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) + end + end; +dg_read_field_def_VolumeBind(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'VolumeBind'{host_path = F@_1, container_path = F@_2, read_only = F@_3}. + +d_field_VolumeBind_host_path(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_VolumeBind_host_path(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_VolumeBind_host_path(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_VolumeBind(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). + +d_field_VolumeBind_container_path(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_VolumeBind_container_path(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_VolumeBind_container_path(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_VolumeBind(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). + +d_field_VolumeBind_read_only(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_VolumeBind_read_only(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_VolumeBind_read_only(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> + {NewFValue, RestF} = {id(X bsl N + Acc =/= 0, TrUserData), Rest}, + dfp_read_field_def_VolumeBind(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). + +skip_varint_VolumeBind(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_VolumeBind(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_VolumeBind(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_VolumeBind(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_length_delimited_VolumeBind(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_VolumeBind(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_VolumeBind(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_VolumeBind(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). + +skip_group_VolumeBind(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_VolumeBind(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). + +skip_32_VolumeBind(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_VolumeBind(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_64_VolumeBind(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_VolumeBind(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +decode_msg_PortExpose(Bin, TrUserData) -> dfp_read_field_def_PortExpose(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), TrUserData). + +dfp_read_field_def_PortExpose(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_PortExpose_container_port(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_PortExpose(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_PortExpose_protocol(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_PortExpose(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'PortExpose'{container_port = F@_1, protocol = F@_2}; +dfp_read_field_def_PortExpose(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_PortExpose(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_PortExpose(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_PortExpose(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_PortExpose(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 8 -> d_field_PortExpose_container_port(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> d_field_PortExpose_protocol(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_PortExpose(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_PortExpose(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_PortExpose(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_PortExpose(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_PortExpose(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +dg_read_field_def_PortExpose(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'PortExpose'{container_port = F@_1, protocol = F@_2}. + +d_field_PortExpose_container_port(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_PortExpose_container_port(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_PortExpose_container_port(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, + dfp_read_field_def_PortExpose(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_PortExpose_protocol(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_PortExpose_protocol(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_PortExpose_protocol(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_PortExpose(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +skip_varint_PortExpose(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_PortExpose(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_PortExpose(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_PortExpose(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_PortExpose(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_PortExpose(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_PortExpose(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_PortExpose(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +skip_group_PortExpose(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_PortExpose(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_PortExpose(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_PortExpose(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_PortExpose(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_PortExpose(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +decode_msg_Healthcheck(Bin, TrUserData) -> dfp_read_field_def_Healthcheck(Bin, 0, 0, 0, id([], TrUserData), id(0, TrUserData), id(0, TrUserData), id(0, TrUserData), TrUserData). + +dfp_read_field_def_Healthcheck(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_Healthcheck_test(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +dfp_read_field_def_Healthcheck(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_Healthcheck_interval_ns(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +dfp_read_field_def_Healthcheck(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_Healthcheck_timeout_ns(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +dfp_read_field_def_Healthcheck(<<32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_Healthcheck_retries(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +dfp_read_field_def_Healthcheck(<<>>, 0, 0, _, R1, F@_2, F@_3, F@_4, TrUserData) -> #'Healthcheck'{test = lists_reverse(R1, TrUserData), interval_ns = F@_2, timeout_ns = F@_3, retries = F@_4}; +dfp_read_field_def_Healthcheck(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dg_read_field_def_Healthcheck(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). + +dg_read_field_def_Healthcheck(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 32 - 7 -> dg_read_field_def_Healthcheck(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +dg_read_field_def_Healthcheck(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_Healthcheck_test(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); + 16 -> d_field_Healthcheck_interval_ns(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); + 24 -> d_field_Healthcheck_timeout_ns(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); + 32 -> d_field_Healthcheck_retries(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_Healthcheck(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); + 1 -> skip_64_Healthcheck(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); + 2 -> skip_length_delimited_Healthcheck(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); + 3 -> skip_group_Healthcheck(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); + 5 -> skip_32_Healthcheck(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData) + end + end; +dg_read_field_def_Healthcheck(<<>>, 0, 0, _, R1, F@_2, F@_3, F@_4, TrUserData) -> #'Healthcheck'{test = lists_reverse(R1, TrUserData), interval_ns = F@_2, timeout_ns = F@_3, retries = F@_4}. + +d_field_Healthcheck_test(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_Healthcheck_test(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +d_field_Healthcheck_test(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, F@_2, F@_3, F@_4, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Healthcheck(RestF, 0, 0, F, cons(NewFValue, Prev, TrUserData), F@_2, F@_3, F@_4, TrUserData). + +d_field_Healthcheck_interval_ns(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_Healthcheck_interval_ns(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +d_field_Healthcheck_interval_ns(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 18446744073709551615, TrUserData), Rest}, + dfp_read_field_def_Healthcheck(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, TrUserData). + +d_field_Healthcheck_timeout_ns(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_Healthcheck_timeout_ns(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +d_field_Healthcheck_timeout_ns(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 18446744073709551615, TrUserData), Rest}, + dfp_read_field_def_Healthcheck(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, TrUserData). + +d_field_Healthcheck_retries(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_Healthcheck_retries(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +d_field_Healthcheck_retries(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, + dfp_read_field_def_Healthcheck(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, TrUserData). + +skip_varint_Healthcheck(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> skip_varint_Healthcheck(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +skip_varint_Healthcheck(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_Healthcheck(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). + +skip_length_delimited_Healthcheck(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> skip_length_delimited_Healthcheck(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +skip_length_delimited_Healthcheck(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_Healthcheck(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, TrUserData). + +skip_group_Healthcheck(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_Healthcheck(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData). + +skip_32_Healthcheck(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_Healthcheck(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). + +skip_64_Healthcheck(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_Healthcheck(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). + +decode_msg_RestartPolicy(Bin, TrUserData) -> dfp_read_field_def_RestartPolicy(Bin, 0, 0, 0, id(<<>>, TrUserData), id(0, TrUserData), TrUserData). + +dfp_read_field_def_RestartPolicy(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_RestartPolicy_name(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_RestartPolicy(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_RestartPolicy_maximum_retry_count(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_RestartPolicy(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'RestartPolicy'{name = F@_1, maximum_retry_count = F@_2}; +dfp_read_field_def_RestartPolicy(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_RestartPolicy(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_RestartPolicy(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_RestartPolicy(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_RestartPolicy(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_RestartPolicy_name(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 16 -> d_field_RestartPolicy_maximum_retry_count(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_RestartPolicy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_RestartPolicy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_RestartPolicy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_RestartPolicy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_RestartPolicy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +dg_read_field_def_RestartPolicy(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'RestartPolicy'{name = F@_1, maximum_retry_count = F@_2}. + +d_field_RestartPolicy_name(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_RestartPolicy_name(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_RestartPolicy_name(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_RestartPolicy(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_RestartPolicy_maximum_retry_count(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_RestartPolicy_maximum_retry_count(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_RestartPolicy_maximum_retry_count(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, + dfp_read_field_def_RestartPolicy(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +skip_varint_RestartPolicy(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_RestartPolicy(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_RestartPolicy(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_RestartPolicy(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_RestartPolicy(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_RestartPolicy(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_RestartPolicy(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_RestartPolicy(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +skip_group_RestartPolicy(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_RestartPolicy(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_RestartPolicy(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_RestartPolicy(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_RestartPolicy(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_RestartPolicy(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +decode_msg_DeviceMapping(Bin, TrUserData) -> dfp_read_field_def_DeviceMapping(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). + +dfp_read_field_def_DeviceMapping(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_DeviceMapping_host_path(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_DeviceMapping(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_DeviceMapping_container_path(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_DeviceMapping(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_DeviceMapping_cgroup_permissions(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_DeviceMapping(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'DeviceMapping'{host_path = F@_1, container_path = F@_2, cgroup_permissions = F@_3}; +dfp_read_field_def_DeviceMapping(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_DeviceMapping(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +dg_read_field_def_DeviceMapping(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_DeviceMapping(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_DeviceMapping(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_DeviceMapping_host_path(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 18 -> d_field_DeviceMapping_container_path(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 26 -> d_field_DeviceMapping_cgroup_permissions(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_DeviceMapping(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_DeviceMapping(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_DeviceMapping(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_DeviceMapping(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_DeviceMapping(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) + end + end; +dg_read_field_def_DeviceMapping(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'DeviceMapping'{host_path = F@_1, container_path = F@_2, cgroup_permissions = F@_3}. + +d_field_DeviceMapping_host_path(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_DeviceMapping_host_path(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_DeviceMapping_host_path(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_DeviceMapping(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). + +d_field_DeviceMapping_container_path(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_DeviceMapping_container_path(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_DeviceMapping_container_path(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_DeviceMapping(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). + +d_field_DeviceMapping_cgroup_permissions(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_DeviceMapping_cgroup_permissions(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_DeviceMapping_cgroup_permissions(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_DeviceMapping(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). + +skip_varint_DeviceMapping(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_DeviceMapping(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_DeviceMapping(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_DeviceMapping(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_length_delimited_DeviceMapping(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_DeviceMapping(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_DeviceMapping(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_DeviceMapping(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). + +skip_group_DeviceMapping(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_DeviceMapping(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). + +skip_32_DeviceMapping(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_DeviceMapping(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_64_DeviceMapping(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_DeviceMapping(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +decode_msg_ResourceLimits(Bin, TrUserData) -> dfp_read_field_def_ResourceLimits(Bin, 0, 0, 0, id(0, TrUserData), id(0, TrUserData), id(0, TrUserData), id(0, TrUserData), TrUserData). + +dfp_read_field_def_ResourceLimits(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_ResourceLimits_memory_bytes(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +dfp_read_field_def_ResourceLimits(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_ResourceLimits_memory_reservation_bytes(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +dfp_read_field_def_ResourceLimits(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_ResourceLimits_nano_cpus(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +dfp_read_field_def_ResourceLimits(<<32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_ResourceLimits_cpu_shares(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +dfp_read_field_def_ResourceLimits(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #'ResourceLimits'{memory_bytes = F@_1, memory_reservation_bytes = F@_2, nano_cpus = F@_3, cpu_shares = F@_4}; +dfp_read_field_def_ResourceLimits(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dg_read_field_def_ResourceLimits(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). + +dg_read_field_def_ResourceLimits(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 32 - 7 -> dg_read_field_def_ResourceLimits(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +dg_read_field_def_ResourceLimits(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 8 -> d_field_ResourceLimits_memory_bytes(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); + 16 -> d_field_ResourceLimits_memory_reservation_bytes(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); + 24 -> d_field_ResourceLimits_nano_cpus(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); + 32 -> d_field_ResourceLimits_cpu_shares(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_ResourceLimits(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); + 1 -> skip_64_ResourceLimits(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); + 2 -> skip_length_delimited_ResourceLimits(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); + 3 -> skip_group_ResourceLimits(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); + 5 -> skip_32_ResourceLimits(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData) + end + end; +dg_read_field_def_ResourceLimits(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #'ResourceLimits'{memory_bytes = F@_1, memory_reservation_bytes = F@_2, nano_cpus = F@_3, cpu_shares = F@_4}. + +d_field_ResourceLimits_memory_bytes(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_ResourceLimits_memory_bytes(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +d_field_ResourceLimits_memory_bytes(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 18446744073709551615, TrUserData), Rest}, + dfp_read_field_def_ResourceLimits(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, TrUserData). + +d_field_ResourceLimits_memory_reservation_bytes(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> + d_field_ResourceLimits_memory_reservation_bytes(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +d_field_ResourceLimits_memory_reservation_bytes(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 18446744073709551615, TrUserData), Rest}, + dfp_read_field_def_ResourceLimits(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, TrUserData). + +d_field_ResourceLimits_nano_cpus(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_ResourceLimits_nano_cpus(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +d_field_ResourceLimits_nano_cpus(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 18446744073709551615, TrUserData), Rest}, + dfp_read_field_def_ResourceLimits(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, TrUserData). + +d_field_ResourceLimits_cpu_shares(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_ResourceLimits_cpu_shares(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +d_field_ResourceLimits_cpu_shares(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 18446744073709551615, TrUserData), Rest}, + dfp_read_field_def_ResourceLimits(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, TrUserData). + +skip_varint_ResourceLimits(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> skip_varint_ResourceLimits(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +skip_varint_ResourceLimits(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_ResourceLimits(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). + +skip_length_delimited_ResourceLimits(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> skip_length_delimited_ResourceLimits(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +skip_length_delimited_ResourceLimits(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_ResourceLimits(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, TrUserData). + +skip_group_ResourceLimits(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_ResourceLimits(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData). + +skip_32_ResourceLimits(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_ResourceLimits(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). + +skip_64_ResourceLimits(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_ResourceLimits(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). + +decode_msg_Ulimit(Bin, TrUserData) -> dfp_read_field_def_Ulimit(Bin, 0, 0, 0, id(<<>>, TrUserData), id(0, TrUserData), id(0, TrUserData), TrUserData). + +dfp_read_field_def_Ulimit(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_Ulimit_name(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_Ulimit(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_Ulimit_soft(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_Ulimit(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_Ulimit_hard(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_Ulimit(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'Ulimit'{name = F@_1, soft = F@_2, hard = F@_3}; +dfp_read_field_def_Ulimit(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_Ulimit(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +dg_read_field_def_Ulimit(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_Ulimit(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_Ulimit(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_Ulimit_name(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 16 -> d_field_Ulimit_soft(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 24 -> d_field_Ulimit_hard(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_Ulimit(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_Ulimit(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_Ulimit(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_Ulimit(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_Ulimit(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) + end + end; +dg_read_field_def_Ulimit(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'Ulimit'{name = F@_1, soft = F@_2, hard = F@_3}. + +d_field_Ulimit_name(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_Ulimit_name(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_Ulimit_name(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Ulimit(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). + +d_field_Ulimit_soft(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_Ulimit_soft(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_Ulimit_soft(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 18446744073709551615, TrUserData), Rest}, + dfp_read_field_def_Ulimit(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). + +d_field_Ulimit_hard(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_Ulimit_hard(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_Ulimit_hard(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 18446744073709551615, TrUserData), Rest}, + dfp_read_field_def_Ulimit(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). + +skip_varint_Ulimit(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_Ulimit(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_Ulimit(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_Ulimit(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_length_delimited_Ulimit(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_Ulimit(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_Ulimit(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_Ulimit(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). + +skip_group_Ulimit(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_Ulimit(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). + +skip_32_Ulimit(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_Ulimit(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_64_Ulimit(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_Ulimit(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +decode_msg_TmpfsMount(Bin, TrUserData) -> dfp_read_field_def_TmpfsMount(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). + +dfp_read_field_def_TmpfsMount(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_TmpfsMount_path(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_TmpfsMount(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_TmpfsMount_options(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_TmpfsMount(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'TmpfsMount'{path = F@_1, options = F@_2}; +dfp_read_field_def_TmpfsMount(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_TmpfsMount(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_TmpfsMount(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_TmpfsMount(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_TmpfsMount(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_TmpfsMount_path(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> d_field_TmpfsMount_options(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_TmpfsMount(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_TmpfsMount(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_TmpfsMount(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_TmpfsMount(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_TmpfsMount(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +dg_read_field_def_TmpfsMount(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'TmpfsMount'{path = F@_1, options = F@_2}. + +d_field_TmpfsMount_path(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_TmpfsMount_path(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_TmpfsMount_path(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_TmpfsMount(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_TmpfsMount_options(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_TmpfsMount_options(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_TmpfsMount_options(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_TmpfsMount(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +skip_varint_TmpfsMount(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_TmpfsMount(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_TmpfsMount(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_TmpfsMount(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_TmpfsMount(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_TmpfsMount(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_TmpfsMount(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_TmpfsMount(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +skip_group_TmpfsMount(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_TmpfsMount(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_TmpfsMount(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_TmpfsMount(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_TmpfsMount(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_TmpfsMount(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +decode_msg_AuthRequest(Bin, TrUserData) -> dfp_read_field_def_AuthRequest(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), TrUserData). + +dfp_read_field_def_AuthRequest(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_AuthRequest_uuid(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dfp_read_field_def_AuthRequest(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_AuthRequest_username(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dfp_read_field_def_AuthRequest(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_AuthRequest_salt(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dfp_read_field_def_AuthRequest(<<34, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_AuthRequest_token(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dfp_read_field_def_AuthRequest(<<40, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_AuthRequest_timestamp(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dfp_read_field_def_AuthRequest(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, _) -> #'AuthRequest'{uuid = F@_1, username = F@_2, salt = F@_3, token = F@_4, timestamp = F@_5}; +dfp_read_field_def_AuthRequest(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dg_read_field_def_AuthRequest(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). + +dg_read_field_def_AuthRequest(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 32 - 7 -> dg_read_field_def_AuthRequest(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +dg_read_field_def_AuthRequest(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_AuthRequest_uuid(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 18 -> d_field_AuthRequest_username(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 26 -> d_field_AuthRequest_salt(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 34 -> d_field_AuthRequest_token(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 40 -> d_field_AuthRequest_timestamp(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_AuthRequest(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 1 -> skip_64_AuthRequest(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 2 -> skip_length_delimited_AuthRequest(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 3 -> skip_group_AuthRequest(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 5 -> skip_32_AuthRequest(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) + end + end; +dg_read_field_def_AuthRequest(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, _) -> #'AuthRequest'{uuid = F@_1, username = F@_2, salt = F@_3, token = F@_4, timestamp = F@_5}. + +d_field_AuthRequest_uuid(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_AuthRequest_uuid(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +d_field_AuthRequest_uuid(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, F@_5, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_AuthRequest(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, F@_5, TrUserData). + +d_field_AuthRequest_username(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_AuthRequest_username(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +d_field_AuthRequest_username(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, F@_5, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_AuthRequest(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, F@_5, TrUserData). + +d_field_AuthRequest_salt(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_AuthRequest_salt(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +d_field_AuthRequest_salt(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, F@_5, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_AuthRequest(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, F@_5, TrUserData). + +d_field_AuthRequest_token(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_AuthRequest_token(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +d_field_AuthRequest_token(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, F@_5, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_AuthRequest(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, F@_5, TrUserData). + +d_field_AuthRequest_timestamp(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_AuthRequest_timestamp(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +d_field_AuthRequest_timestamp(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, _, TrUserData) -> + {NewFValue, RestF} = {begin <> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest}, + dfp_read_field_def_AuthRequest(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, NewFValue, TrUserData). + +skip_varint_AuthRequest(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> skip_varint_AuthRequest(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +skip_varint_AuthRequest(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_AuthRequest(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). + +skip_length_delimited_AuthRequest(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> skip_length_delimited_AuthRequest(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); +skip_length_delimited_AuthRequest(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_AuthRequest(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). + +skip_group_AuthRequest(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_AuthRequest(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). + +skip_32_AuthRequest(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_AuthRequest(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). + +skip_64_AuthRequest(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_AuthRequest(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). + +decode_msg_AuthReply(Bin, TrUserData) -> dfp_read_field_def_AuthReply(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), TrUserData). + +dfp_read_field_def_AuthReply(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_AuthReply_code(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_AuthReply(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_AuthReply_payload(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_AuthReply(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'AuthReply'{code = F@_1, payload = F@_2}; +dfp_read_field_def_AuthReply(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_AuthReply(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_AuthReply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_AuthReply(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_AuthReply(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 8 -> d_field_AuthReply_code(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> d_field_AuthReply_payload(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_AuthReply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_AuthReply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_AuthReply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_AuthReply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_AuthReply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +dg_read_field_def_AuthReply(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'AuthReply'{code = F@_1, payload = F@_2}. + +d_field_AuthReply_code(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_AuthReply_code(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_AuthReply_code(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = {begin <> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest}, + dfp_read_field_def_AuthReply(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_AuthReply_payload(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_AuthReply_payload(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_AuthReply_payload(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_AuthReply(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +skip_varint_AuthReply(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_AuthReply(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_AuthReply(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_AuthReply(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_AuthReply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_AuthReply(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_AuthReply(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_AuthReply(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +skip_group_AuthReply(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_AuthReply(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_AuthReply(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_AuthReply(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_AuthReply(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_AuthReply(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +decode_msg_Pub(Bin, TrUserData) -> dfp_read_field_def_Pub(Bin, 0, 0, 0, id(<<>>, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), TrUserData). + +dfp_read_field_def_Pub(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_Pub_topic(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_Pub(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_Pub_qos(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_Pub(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_Pub_content(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_Pub(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'Pub'{topic = F@_1, qos = F@_2, content = F@_3}; +dfp_read_field_def_Pub(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_Pub(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +dg_read_field_def_Pub(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_Pub(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_Pub(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_Pub_topic(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 16 -> d_field_Pub_qos(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 26 -> d_field_Pub_content(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_Pub(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_Pub(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_Pub(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_Pub(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_Pub(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) + end + end; +dg_read_field_def_Pub(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'Pub'{topic = F@_1, qos = F@_2, content = F@_3}. + +d_field_Pub_topic(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_Pub_topic(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_Pub_topic(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Pub(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). + +d_field_Pub_qos(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_Pub_qos(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_Pub_qos(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> + {NewFValue, RestF} = {begin <> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest}, + dfp_read_field_def_Pub(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). + +d_field_Pub_content(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_Pub_content(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_Pub_content(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Pub(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). + +skip_varint_Pub(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_Pub(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_Pub(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_Pub(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_length_delimited_Pub(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_Pub(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_Pub(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_Pub(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). + +skip_group_Pub(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_Pub(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). + +skip_32_Pub(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_Pub(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_64_Pub(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_Pub(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +decode_msg_Command(Bin, TrUserData) -> dfp_read_field_def_Command(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), TrUserData). + +dfp_read_field_def_Command(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Command_command_type(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_Command(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Command_command(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_Command(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'Command'{command_type = F@_1, command = F@_2}; +dfp_read_field_def_Command(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_Command(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_Command(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_Command(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_Command(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 8 -> d_field_Command_command_type(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> d_field_Command_command(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_Command(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_Command(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_Command(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_Command(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_Command(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +dg_read_field_def_Command(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'Command'{command_type = F@_1, command = F@_2}. + +d_field_Command_command_type(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Command_command_type(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_Command_command_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = {begin <> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest}, + dfp_read_field_def_Command(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_Command_command(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Command_command(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_Command_command(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Command(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +skip_varint_Command(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_Command(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_Command(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Command(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_Command(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_Command(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_Command(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_Command(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +skip_group_Command(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_Command(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_Command(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Command(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_Command(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Command(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +decode_msg_RpcRequest(Bin, TrUserData) -> dfp_read_field_def_RpcRequest(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). + +dfp_read_field_def_RpcRequest(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_RpcRequest_method(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_RpcRequest(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_RpcRequest_params(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_RpcRequest(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'RpcRequest'{method = F@_1, params = F@_2}; +dfp_read_field_def_RpcRequest(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_RpcRequest(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_RpcRequest(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_RpcRequest(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_RpcRequest(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_RpcRequest_method(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> d_field_RpcRequest_params(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_RpcRequest(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_RpcRequest(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_RpcRequest(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_RpcRequest(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_RpcRequest(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +dg_read_field_def_RpcRequest(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'RpcRequest'{method = F@_1, params = F@_2}. + +d_field_RpcRequest_method(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_RpcRequest_method(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_RpcRequest_method(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_RpcRequest(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_RpcRequest_params(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_RpcRequest_params(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_RpcRequest_params(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_RpcRequest(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +skip_varint_RpcRequest(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_RpcRequest(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_RpcRequest(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_RpcRequest(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_RpcRequest(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_RpcRequest(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_RpcRequest(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_RpcRequest(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +skip_group_RpcRequest(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_RpcRequest(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_RpcRequest(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_RpcRequest(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_RpcRequest(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_RpcRequest(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'decode_msg_RpcReply.RpcResult'(Bin, TrUserData) -> 'dfp_read_field_def_RpcReply.RpcResult'(Bin, 0, 0, 0, id(<<>>, TrUserData), TrUserData). + +'dfp_read_field_def_RpcReply.RpcResult'(<<10, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'd_field_RpcReply.RpcResult_data'(Rest, Z1, Z2, F, F@_1, TrUserData); +'dfp_read_field_def_RpcReply.RpcResult'(<<>>, 0, 0, _, F@_1, _) -> #'RpcReply.RpcResult'{data = F@_1}; +'dfp_read_field_def_RpcReply.RpcResult'(Other, Z1, Z2, F, F@_1, TrUserData) -> 'dg_read_field_def_RpcReply.RpcResult'(Other, Z1, Z2, F, F@_1, TrUserData). + +'dg_read_field_def_RpcReply.RpcResult'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_RpcReply.RpcResult'(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +'dg_read_field_def_RpcReply.RpcResult'(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> 'd_field_RpcReply.RpcResult_data'(Rest, 0, 0, 0, F@_1, TrUserData); + _ -> + case Key band 7 of + 0 -> 'skip_varint_RpcReply.RpcResult'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 1 -> 'skip_64_RpcReply.RpcResult'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 2 -> 'skip_length_delimited_RpcReply.RpcResult'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 3 -> 'skip_group_RpcReply.RpcResult'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 5 -> 'skip_32_RpcReply.RpcResult'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData) + end + end; +'dg_read_field_def_RpcReply.RpcResult'(<<>>, 0, 0, _, F@_1, _) -> #'RpcReply.RpcResult'{data = F@_1}. + +'d_field_RpcReply.RpcResult_data'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> 'd_field_RpcReply.RpcResult_data'(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +'d_field_RpcReply.RpcResult_data'(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + 'dfp_read_field_def_RpcReply.RpcResult'(RestF, 0, 0, F, NewFValue, TrUserData). + +'skip_varint_RpcReply.RpcResult'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'skip_varint_RpcReply.RpcResult'(Rest, Z1, Z2, F, F@_1, TrUserData); +'skip_varint_RpcReply.RpcResult'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'dfp_read_field_def_RpcReply.RpcResult'(Rest, Z1, Z2, F, F@_1, TrUserData). + +'skip_length_delimited_RpcReply.RpcResult'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> 'skip_length_delimited_RpcReply.RpcResult'(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +'skip_length_delimited_RpcReply.RpcResult'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + 'dfp_read_field_def_RpcReply.RpcResult'(Rest2, 0, 0, F, F@_1, TrUserData). + +'skip_group_RpcReply.RpcResult'(Bin, _, Z2, FNum, F@_1, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + 'dfp_read_field_def_RpcReply.RpcResult'(Rest, 0, Z2, FNum, F@_1, TrUserData). + +'skip_32_RpcReply.RpcResult'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'dfp_read_field_def_RpcReply.RpcResult'(Rest, Z1, Z2, F, F@_1, TrUserData). + +'skip_64_RpcReply.RpcResult'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'dfp_read_field_def_RpcReply.RpcResult'(Rest, Z1, Z2, F, F@_1, TrUserData). + +'decode_msg_RpcReply.RpcError'(Bin, TrUserData) -> 'dfp_read_field_def_RpcReply.RpcError'(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), TrUserData). + +'dfp_read_field_def_RpcReply.RpcError'(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_RpcReply.RpcError_code'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_RpcReply.RpcError'(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_RpcReply.RpcError_message'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_RpcReply.RpcError'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'RpcReply.RpcError'{code = F@_1, message = F@_2}; +'dfp_read_field_def_RpcReply.RpcError'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dg_read_field_def_RpcReply.RpcError'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'dg_read_field_def_RpcReply.RpcError'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_RpcReply.RpcError'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'dg_read_field_def_RpcReply.RpcError'(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 8 -> 'd_field_RpcReply.RpcError_code'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> 'd_field_RpcReply.RpcError_message'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> 'skip_varint_RpcReply.RpcError'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> 'skip_64_RpcReply.RpcError'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> 'skip_length_delimited_RpcReply.RpcError'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> 'skip_group_RpcReply.RpcError'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> 'skip_32_RpcReply.RpcError'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +'dg_read_field_def_RpcReply.RpcError'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'RpcReply.RpcError'{code = F@_1, message = F@_2}. + +'d_field_RpcReply.RpcError_code'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_RpcReply.RpcError_code'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_RpcReply.RpcError_code'(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = {begin <> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest}, + 'dfp_read_field_def_RpcReply.RpcError'(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +'d_field_RpcReply.RpcError_message'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_RpcReply.RpcError_message'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_RpcReply.RpcError_message'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + 'dfp_read_field_def_RpcReply.RpcError'(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +'skip_varint_RpcReply.RpcError'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'skip_varint_RpcReply.RpcError'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'skip_varint_RpcReply.RpcError'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_RpcReply.RpcError'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'skip_length_delimited_RpcReply.RpcError'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'skip_length_delimited_RpcReply.RpcError'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'skip_length_delimited_RpcReply.RpcError'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + 'dfp_read_field_def_RpcReply.RpcError'(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +'skip_group_RpcReply.RpcError'(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + 'dfp_read_field_def_RpcReply.RpcError'(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +'skip_32_RpcReply.RpcError'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_RpcReply.RpcError'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'skip_64_RpcReply.RpcError'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_RpcReply.RpcError'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +decode_msg_RpcReply(Bin, TrUserData) -> dfp_read_field_def_RpcReply(Bin, 0, 0, 0, id(undefined, TrUserData), TrUserData). + +dfp_read_field_def_RpcReply(<<10, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_RpcReply_result(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_RpcReply(<<18, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_RpcReply_error(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_RpcReply(<<>>, 0, 0, _, F@_1, _) -> #'RpcReply'{reply = F@_1}; +dfp_read_field_def_RpcReply(Other, Z1, Z2, F, F@_1, TrUserData) -> dg_read_field_def_RpcReply(Other, Z1, Z2, F, F@_1, TrUserData). + +dg_read_field_def_RpcReply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 32 - 7 -> dg_read_field_def_RpcReply(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +dg_read_field_def_RpcReply(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_RpcReply_result(Rest, 0, 0, 0, F@_1, TrUserData); + 18 -> d_field_RpcReply_error(Rest, 0, 0, 0, F@_1, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_RpcReply(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 1 -> skip_64_RpcReply(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 2 -> skip_length_delimited_RpcReply(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 3 -> skip_group_RpcReply(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 5 -> skip_32_RpcReply(Rest, 0, 0, Key bsr 3, F@_1, TrUserData) + end + end; +dg_read_field_def_RpcReply(<<>>, 0, 0, _, F@_1, _) -> #'RpcReply'{reply = F@_1}. + +d_field_RpcReply_result(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_RpcReply_result(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_RpcReply_result(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_RpcReply.RpcResult'(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_RpcReply(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({result, NewFValue}, TrUserData); + {result, MVPrev} -> id({result, 'merge_msg_RpcReply.RpcResult'(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({result, NewFValue}, TrUserData) + end, + TrUserData). + +d_field_RpcReply_error(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_RpcReply_error(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_RpcReply_error(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_RpcReply.RpcError'(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_RpcReply(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({error, NewFValue}, TrUserData); + {error, MVPrev} -> id({error, 'merge_msg_RpcReply.RpcError'(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({error, NewFValue}, TrUserData) + end, + TrUserData). + +skip_varint_RpcReply(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> skip_varint_RpcReply(Rest, Z1, Z2, F, F@_1, TrUserData); +skip_varint_RpcReply(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_RpcReply(Rest, Z1, Z2, F, F@_1, TrUserData). + +skip_length_delimited_RpcReply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> skip_length_delimited_RpcReply(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +skip_length_delimited_RpcReply(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_RpcReply(Rest2, 0, 0, F, F@_1, TrUserData). + +skip_group_RpcReply(Bin, _, Z2, FNum, F@_1, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_RpcReply(Rest, 0, Z2, FNum, F@_1, TrUserData). + +skip_32_RpcReply(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_RpcReply(Rest, Z1, Z2, F, F@_1, TrUserData). + +skip_64_RpcReply(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_RpcReply(Rest, Z1, Z2, F, F@_1, TrUserData). + +decode_msg_Data(Bin, TrUserData) -> dfp_read_field_def_Data(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). + +dfp_read_field_def_Data(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Data_route_key(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_Data(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Data_metric(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_Data(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'Data'{route_key = F@_1, metric = F@_2}; +dfp_read_field_def_Data(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_Data(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_Data(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_Data(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_Data(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_Data_route_key(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> d_field_Data_metric(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_Data(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_Data(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_Data(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_Data(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_Data(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +dg_read_field_def_Data(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'Data'{route_key = F@_1, metric = F@_2}. + +d_field_Data_route_key(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Data_route_key(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_Data_route_key(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Data(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_Data_metric(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Data_metric(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_Data_metric(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_Data(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +skip_varint_Data(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_Data(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_Data(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Data(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_Data(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_Data(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_Data(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_Data(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +skip_group_Data(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_Data(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_Data(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Data(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_Data(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Data(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +decode_msg_TaskEventStream(Bin, TrUserData) -> dfp_read_field_def_TaskEventStream(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). + +dfp_read_field_def_TaskEventStream(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_TaskEventStream_task_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_TaskEventStream(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_TaskEventStream_type(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_TaskEventStream(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_TaskEventStream_stream(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_TaskEventStream(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'TaskEventStream'{task_id = F@_1, type = F@_2, stream = F@_3}; +dfp_read_field_def_TaskEventStream(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_TaskEventStream(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +dg_read_field_def_TaskEventStream(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_TaskEventStream(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_TaskEventStream(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 8 -> d_field_TaskEventStream_task_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 18 -> d_field_TaskEventStream_type(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 26 -> d_field_TaskEventStream_stream(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_TaskEventStream(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_TaskEventStream(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_TaskEventStream(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_TaskEventStream(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_TaskEventStream(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) + end + end; +dg_read_field_def_TaskEventStream(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'TaskEventStream'{task_id = F@_1, type = F@_2, stream = F@_3}. + +d_field_TaskEventStream_task_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_TaskEventStream_task_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_TaskEventStream_task_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> + {NewFValue, RestF} = {begin <> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest}, + dfp_read_field_def_TaskEventStream(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). + +d_field_TaskEventStream_type(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_TaskEventStream_type(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_TaskEventStream_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_TaskEventStream(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). + +d_field_TaskEventStream_stream(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_TaskEventStream_stream(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_TaskEventStream_stream(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_TaskEventStream(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). + +skip_varint_TaskEventStream(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_TaskEventStream(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_TaskEventStream(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_TaskEventStream(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_length_delimited_TaskEventStream(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_TaskEventStream(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_TaskEventStream(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_TaskEventStream(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). + +skip_group_TaskEventStream(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_TaskEventStream(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). + +skip_32_TaskEventStream(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_TaskEventStream(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_64_TaskEventStream(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_TaskEventStream(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +'decode_msg_map'(Bin, TrUserData) -> 'dfp_read_field_def_map'(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). + +'dfp_read_field_def_map'(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_map_key'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_map'(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_map_value'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_map'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'map'{key = F@_1, value = F@_2}; +'dfp_read_field_def_map'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dg_read_field_def_map'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'dg_read_field_def_map'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_map'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'dg_read_field_def_map'(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> 'd_field_map_key'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> 'd_field_map_value'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> 'skip_varint_map'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> 'skip_64_map'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> 'skip_length_delimited_map'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> 'skip_group_map'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> 'skip_32_map'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +'dg_read_field_def_map'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'map'{key = F@_1, value = F@_2}. + +'d_field_map_key'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_map_key'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_map_key'(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + 'dfp_read_field_def_map'(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +'d_field_map_value'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_map_value'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_map_value'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + 'dfp_read_field_def_map'(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +'skip_varint_map'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'skip_varint_map'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'skip_varint_map'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_map'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'skip_length_delimited_map'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'skip_length_delimited_map'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'skip_length_delimited_map'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + 'dfp_read_field_def_map'(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +'skip_group_map'(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + 'dfp_read_field_def_map'(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +'skip_32_map'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_map'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'skip_64_map'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_map'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +read_group(Bin, FieldNum) -> + {NumBytes, EndTagLen} = read_gr_b(Bin, 0, 0, 0, 0, FieldNum), + <> = Bin, + {Group, Rest}. + +%% Like skipping over fields, but record the total length, +%% Each field is <(FieldNum bsl 3) bor FieldType> ++ +%% Record the length because varints may be non-optimally encoded. +%% +%% Groups can be nested, but assume the same FieldNum cannot be nested +%% because group field numbers are shared with the rest of the fields +%% numbers. Thus we can search just for an group-end with the same +%% field number. +%% +%% (The only time the same group field number could occur would +%% be in a nested sub message, but then it would be inside a +%% length-delimited entry, which we skip-read by length.) +read_gr_b(<<1:1, X:7, Tl/binary>>, N, Acc, NumBytes, TagLen, FieldNum) + when N < (32-7) -> + read_gr_b(Tl, N+7, X bsl N + Acc, NumBytes, TagLen+1, FieldNum); +read_gr_b(<<0:1, X:7, Tl/binary>>, N, Acc, NumBytes, TagLen, + FieldNum) -> + Key = X bsl N + Acc, + TagLen1 = TagLen + 1, + case {Key bsr 3, Key band 7} of + {FieldNum, 4} -> % 4 = group_end + {NumBytes, TagLen1}; + {_, 0} -> % 0 = varint + read_gr_vi(Tl, 0, NumBytes + TagLen1, FieldNum); + {_, 1} -> % 1 = bits64 + <<_:64, Tl2/binary>> = Tl, + read_gr_b(Tl2, 0, 0, NumBytes + TagLen1 + 8, 0, FieldNum); + {_, 2} -> % 2 = length_delimited + read_gr_ld(Tl, 0, 0, NumBytes + TagLen1, FieldNum); + {_, 3} -> % 3 = group_start + read_gr_b(Tl, 0, 0, NumBytes + TagLen1, 0, FieldNum); + {_, 4} -> % 4 = group_end + read_gr_b(Tl, 0, 0, NumBytes + TagLen1, 0, FieldNum); + {_, 5} -> % 5 = bits32 + <<_:32, Tl2/binary>> = Tl, + read_gr_b(Tl2, 0, 0, NumBytes + TagLen1 + 4, 0, FieldNum) + end. + +read_gr_vi(<<1:1, _:7, Tl/binary>>, N, NumBytes, FieldNum) + when N < (64-7) -> + read_gr_vi(Tl, N+7, NumBytes+1, FieldNum); +read_gr_vi(<<0:1, _:7, Tl/binary>>, _, NumBytes, FieldNum) -> + read_gr_b(Tl, 0, 0, NumBytes+1, 0, FieldNum). + +read_gr_ld(<<1:1, X:7, Tl/binary>>, N, Acc, NumBytes, FieldNum) + when N < (64-7) -> + read_gr_ld(Tl, N+7, X bsl N + Acc, NumBytes+1, FieldNum); +read_gr_ld(<<0:1, X:7, Tl/binary>>, N, Acc, NumBytes, FieldNum) -> + Len = X bsl N + Acc, + NumBytes1 = NumBytes + 1, + <<_:Len/binary, Tl2/binary>> = Tl, + read_gr_b(Tl2, 0, 0, NumBytes1 + Len, 0, FieldNum). + +merge_msgs(Prev, New) when element(1, Prev) =:= element(1, New) -> merge_msgs(Prev, New, element(1, Prev), []). + +merge_msgs(Prev, New, MsgName) when is_atom(MsgName) -> merge_msgs(Prev, New, MsgName, []); +merge_msgs(Prev, New, Opts) when element(1, Prev) =:= element(1, New), is_list(Opts) -> merge_msgs(Prev, New, element(1, Prev), Opts). + +merge_msgs(Prev, New, MsgName, Opts) -> + TrUserData = proplists:get_value(user_data, Opts), + case MsgName of + 'RequestFrame' -> merge_msg_RequestFrame(Prev, New, TrUserData); + 'ResponseFrame' -> merge_msg_ResponseFrame(Prev, New, TrUserData); + 'CastFrame' -> merge_msg_CastFrame(Prev, New, TrUserData); + 'ContainerRef' -> merge_msg_ContainerRef(Prev, New, TrUserData); + 'ContainerRequest.List' -> 'merge_msg_ContainerRequest.List'(Prev, New, TrUserData); + 'ContainerRequest.Deploy' -> 'merge_msg_ContainerRequest.Deploy'(Prev, New, TrUserData); + 'ContainerRequest.Start' -> 'merge_msg_ContainerRequest.Start'(Prev, New, TrUserData); + 'ContainerRequest.Stop' -> 'merge_msg_ContainerRequest.Stop'(Prev, New, TrUserData); + 'ContainerRequest.Kill' -> 'merge_msg_ContainerRequest.Kill'(Prev, New, TrUserData); + 'ContainerRequest.Remove' -> 'merge_msg_ContainerRequest.Remove'(Prev, New, TrUserData); + 'ContainerRequest.Config' -> 'merge_msg_ContainerRequest.Config'(Prev, New, TrUserData); + 'ContainerRequest' -> merge_msg_ContainerRequest(Prev, New, TrUserData); + 'ContainerDeployParams' -> merge_msg_ContainerDeployParams(Prev, New, TrUserData); + 'ContainerSpec' -> merge_msg_ContainerSpec(Prev, New, TrUserData); + 'VolumeBind' -> merge_msg_VolumeBind(Prev, New, TrUserData); + 'PortExpose' -> merge_msg_PortExpose(Prev, New, TrUserData); + 'Healthcheck' -> merge_msg_Healthcheck(Prev, New, TrUserData); + 'RestartPolicy' -> merge_msg_RestartPolicy(Prev, New, TrUserData); + 'DeviceMapping' -> merge_msg_DeviceMapping(Prev, New, TrUserData); + 'ResourceLimits' -> merge_msg_ResourceLimits(Prev, New, TrUserData); + 'Ulimit' -> merge_msg_Ulimit(Prev, New, TrUserData); + 'TmpfsMount' -> merge_msg_TmpfsMount(Prev, New, TrUserData); + 'AuthRequest' -> merge_msg_AuthRequest(Prev, New, TrUserData); + 'AuthReply' -> merge_msg_AuthReply(Prev, New, TrUserData); + 'Pub' -> merge_msg_Pub(Prev, New, TrUserData); + 'Command' -> merge_msg_Command(Prev, New, TrUserData); + 'RpcRequest' -> merge_msg_RpcRequest(Prev, New, TrUserData); + 'RpcReply.RpcResult' -> 'merge_msg_RpcReply.RpcResult'(Prev, New, TrUserData); + 'RpcReply.RpcError' -> 'merge_msg_RpcReply.RpcError'(Prev, New, TrUserData); + 'RpcReply' -> merge_msg_RpcReply(Prev, New, TrUserData); + 'Data' -> merge_msg_Data(Prev, New, TrUserData); + 'TaskEventStream' -> merge_msg_TaskEventStream(Prev, New, TrUserData) + end. + +-compile({nowarn_unused_function,merge_msg_RequestFrame/3}). +merge_msg_RequestFrame(#'RequestFrame'{packet_id = PFpacket_id, body = PFbody}, #'RequestFrame'{packet_id = NFpacket_id, body = NFbody}, TrUserData) -> + #'RequestFrame'{packet_id = + if NFpacket_id =:= undefined -> PFpacket_id; + true -> NFpacket_id + end, + body = + case {PFbody, NFbody} of + {{auth_request, OPFbody}, {auth_request, ONFbody}} -> {auth_request, merge_msg_AuthRequest(OPFbody, ONFbody, TrUserData)}; + {{rpc_request, OPFbody}, {rpc_request, ONFbody}} -> {rpc_request, merge_msg_RpcRequest(OPFbody, ONFbody, TrUserData)}; + {{container_request, OPFbody}, {container_request, ONFbody}} -> {container_request, merge_msg_ContainerRequest(OPFbody, ONFbody, TrUserData)}; + {_, undefined} -> PFbody; + _ -> NFbody + end}. + +-compile({nowarn_unused_function,merge_msg_ResponseFrame/3}). +merge_msg_ResponseFrame(#'ResponseFrame'{packet_id = PFpacket_id, body = PFbody}, #'ResponseFrame'{packet_id = NFpacket_id, body = NFbody}, TrUserData) -> + #'ResponseFrame'{packet_id = + if NFpacket_id =:= undefined -> PFpacket_id; + true -> NFpacket_id + end, + body = + case {PFbody, NFbody} of + {{auth_reply, OPFbody}, {auth_reply, ONFbody}} -> {auth_reply, merge_msg_AuthReply(OPFbody, ONFbody, TrUserData)}; + {{rpc_reply, OPFbody}, {rpc_reply, ONFbody}} -> {rpc_reply, merge_msg_RpcReply(OPFbody, ONFbody, TrUserData)}; + {_, undefined} -> PFbody; + _ -> NFbody + end}. + +-compile({nowarn_unused_function,merge_msg_CastFrame/3}). +merge_msg_CastFrame(#'CastFrame'{body = PFbody}, #'CastFrame'{body = NFbody}, TrUserData) -> + #'CastFrame'{body = + case {PFbody, NFbody} of + {{pub, OPFbody}, {pub, ONFbody}} -> {pub, merge_msg_Pub(OPFbody, ONFbody, TrUserData)}; + {{command, OPFbody}, {command, ONFbody}} -> {command, merge_msg_Command(OPFbody, ONFbody, TrUserData)}; + {{data, OPFbody}, {data, ONFbody}} -> {data, merge_msg_Data(OPFbody, ONFbody, TrUserData)}; + {{event_stream, OPFbody}, {event_stream, ONFbody}} -> {event_stream, merge_msg_TaskEventStream(OPFbody, ONFbody, TrUserData)}; + {_, undefined} -> PFbody; + _ -> NFbody + end}. + +-compile({nowarn_unused_function,merge_msg_ContainerRef/3}). +merge_msg_ContainerRef(#'ContainerRef'{id = PFid, name = PFname}, #'ContainerRef'{id = NFid, name = NFname}, _) -> + #'ContainerRef'{id = + if NFid =:= undefined -> PFid; + true -> NFid + end, + name = + if NFname =:= undefined -> PFname; + true -> NFname + end}. + +-compile({nowarn_unused_function,'merge_msg_ContainerRequest.List'/3}). +'merge_msg_ContainerRequest.List'(#'ContainerRequest.List'{all = PFall}, #'ContainerRequest.List'{all = NFall}, _) -> + #'ContainerRequest.List'{all = + if NFall =:= undefined -> PFall; + true -> NFall + end}. + +-compile({nowarn_unused_function,'merge_msg_ContainerRequest.Deploy'/3}). +'merge_msg_ContainerRequest.Deploy'(#'ContainerRequest.Deploy'{task_id = PFtask_id, params = PFparams}, #'ContainerRequest.Deploy'{task_id = NFtask_id, params = NFparams}, TrUserData) -> + #'ContainerRequest.Deploy'{task_id = + if NFtask_id =:= undefined -> PFtask_id; + true -> NFtask_id + end, + params = + if PFparams /= undefined, NFparams /= undefined -> merge_msg_ContainerDeployParams(PFparams, NFparams, TrUserData); + PFparams == undefined -> NFparams; + NFparams == undefined -> PFparams + end}. + +-compile({nowarn_unused_function,'merge_msg_ContainerRequest.Start'/3}). +'merge_msg_ContainerRequest.Start'(#'ContainerRequest.Start'{target = PFtarget}, #'ContainerRequest.Start'{target = NFtarget}, TrUserData) -> + #'ContainerRequest.Start'{target = + if PFtarget /= undefined, NFtarget /= undefined -> merge_msg_ContainerRef(PFtarget, NFtarget, TrUserData); + PFtarget == undefined -> NFtarget; + NFtarget == undefined -> PFtarget + end}. + +-compile({nowarn_unused_function,'merge_msg_ContainerRequest.Stop'/3}). +'merge_msg_ContainerRequest.Stop'(#'ContainerRequest.Stop'{target = PFtarget, timeout_seconds = PFtimeout_seconds}, #'ContainerRequest.Stop'{target = NFtarget, timeout_seconds = NFtimeout_seconds}, TrUserData) -> + #'ContainerRequest.Stop'{target = + if PFtarget /= undefined, NFtarget /= undefined -> merge_msg_ContainerRef(PFtarget, NFtarget, TrUserData); + PFtarget == undefined -> NFtarget; + NFtarget == undefined -> PFtarget + end, + timeout_seconds = + if NFtimeout_seconds =:= undefined -> PFtimeout_seconds; + true -> NFtimeout_seconds + end}. + +-compile({nowarn_unused_function,'merge_msg_ContainerRequest.Kill'/3}). +'merge_msg_ContainerRequest.Kill'(#'ContainerRequest.Kill'{target = PFtarget, signal = PFsignal}, #'ContainerRequest.Kill'{target = NFtarget, signal = NFsignal}, TrUserData) -> + #'ContainerRequest.Kill'{target = + if PFtarget /= undefined, NFtarget /= undefined -> merge_msg_ContainerRef(PFtarget, NFtarget, TrUserData); + PFtarget == undefined -> NFtarget; + NFtarget == undefined -> PFtarget + end, + signal = + if NFsignal =:= undefined -> PFsignal; + true -> NFsignal + end}. + +-compile({nowarn_unused_function,'merge_msg_ContainerRequest.Remove'/3}). +'merge_msg_ContainerRequest.Remove'(#'ContainerRequest.Remove'{target = PFtarget, force = PFforce, remove_volumes = PFremove_volumes}, #'ContainerRequest.Remove'{target = NFtarget, force = NFforce, remove_volumes = NFremove_volumes}, TrUserData) -> + #'ContainerRequest.Remove'{target = + if PFtarget /= undefined, NFtarget /= undefined -> merge_msg_ContainerRef(PFtarget, NFtarget, TrUserData); + PFtarget == undefined -> NFtarget; + NFtarget == undefined -> PFtarget + end, + force = + if NFforce =:= undefined -> PFforce; + true -> NFforce + end, + remove_volumes = + if NFremove_volumes =:= undefined -> PFremove_volumes; + true -> NFremove_volumes + end}. + +-compile({nowarn_unused_function,'merge_msg_ContainerRequest.Config'/3}). +'merge_msg_ContainerRequest.Config'(#'ContainerRequest.Config'{target = PFtarget, config = PFconfig}, #'ContainerRequest.Config'{target = NFtarget, config = NFconfig}, TrUserData) -> + #'ContainerRequest.Config'{target = + if PFtarget /= undefined, NFtarget /= undefined -> merge_msg_ContainerRef(PFtarget, NFtarget, TrUserData); + PFtarget == undefined -> NFtarget; + NFtarget == undefined -> PFtarget + end, + config = + if NFconfig =:= undefined -> PFconfig; + true -> NFconfig + end}. + +-compile({nowarn_unused_function,merge_msg_ContainerRequest/3}). +merge_msg_ContainerRequest(#'ContainerRequest'{action = PFaction}, #'ContainerRequest'{action = NFaction}, TrUserData) -> + #'ContainerRequest'{action = + case {PFaction, NFaction} of + {{list, OPFaction}, {list, ONFaction}} -> {list, 'merge_msg_ContainerRequest.List'(OPFaction, ONFaction, TrUserData)}; + {{deploy, OPFaction}, {deploy, ONFaction}} -> {deploy, 'merge_msg_ContainerRequest.Deploy'(OPFaction, ONFaction, TrUserData)}; + {{start, OPFaction}, {start, ONFaction}} -> {start, 'merge_msg_ContainerRequest.Start'(OPFaction, ONFaction, TrUserData)}; + {{stop, OPFaction}, {stop, ONFaction}} -> {stop, 'merge_msg_ContainerRequest.Stop'(OPFaction, ONFaction, TrUserData)}; + {{kill, OPFaction}, {kill, ONFaction}} -> {kill, 'merge_msg_ContainerRequest.Kill'(OPFaction, ONFaction, TrUserData)}; + {{remove, OPFaction}, {remove, ONFaction}} -> {remove, 'merge_msg_ContainerRequest.Remove'(OPFaction, ONFaction, TrUserData)}; + {{config, OPFaction}, {config, ONFaction}} -> {config, 'merge_msg_ContainerRequest.Config'(OPFaction, ONFaction, TrUserData)}; + {_, undefined} -> PFaction; + _ -> NFaction + end}. + +-compile({nowarn_unused_function,merge_msg_ContainerDeployParams/3}). +merge_msg_ContainerDeployParams(#'ContainerDeployParams'{container_name = PFcontainer_name, container_dir = PFcontainer_dir, spec = PFspec}, #'ContainerDeployParams'{container_name = NFcontainer_name, container_dir = NFcontainer_dir, spec = NFspec}, + TrUserData) -> + #'ContainerDeployParams'{container_name = + if NFcontainer_name =:= undefined -> PFcontainer_name; + true -> NFcontainer_name + end, + container_dir = + if NFcontainer_dir =:= undefined -> PFcontainer_dir; + true -> NFcontainer_dir + end, + spec = + if PFspec /= undefined, NFspec /= undefined -> merge_msg_ContainerSpec(PFspec, NFspec, TrUserData); + PFspec == undefined -> NFspec; + NFspec == undefined -> PFspec + end}. + +-compile({nowarn_unused_function,merge_msg_ContainerSpec/3}). +merge_msg_ContainerSpec(#'ContainerSpec'{image = PFimage, command = PFcommand, entrypoint = PFentrypoint, env = PFenv, labels = PFlabels, volumes = PFvolumes, user = PFuser, working_dir = PFworking_dir, hostname = PFhostname, expose = PFexpose, + networks = PFnetworks, network_mode = PFnetwork_mode, healthcheck = PFhealthcheck, restart = PFrestart, privileged = PFprivileged, cap_add = PFcap_add, cap_drop = PFcap_drop, devices = PFdevices, resources = PFresources, ulimits = PFulimits, + tmpfs = PFtmpfs, sysctls = PFsysctls, extra_hosts = PFextra_hosts}, + #'ContainerSpec'{image = NFimage, command = NFcommand, entrypoint = NFentrypoint, env = NFenv, labels = NFlabels, volumes = NFvolumes, user = NFuser, working_dir = NFworking_dir, hostname = NFhostname, expose = NFexpose, networks = NFnetworks, + network_mode = NFnetwork_mode, healthcheck = NFhealthcheck, restart = NFrestart, privileged = NFprivileged, cap_add = NFcap_add, cap_drop = NFcap_drop, devices = NFdevices, resources = NFresources, ulimits = NFulimits, tmpfs = NFtmpfs, + sysctls = NFsysctls, extra_hosts = NFextra_hosts}, + TrUserData) -> + #'ContainerSpec'{image = + if NFimage =:= undefined -> PFimage; + true -> NFimage + end, + command = + if PFcommand /= undefined, NFcommand /= undefined -> 'erlang_++'(PFcommand, NFcommand, TrUserData); + PFcommand == undefined -> NFcommand; + NFcommand == undefined -> PFcommand + end, + entrypoint = + if PFentrypoint /= undefined, NFentrypoint /= undefined -> 'erlang_++'(PFentrypoint, NFentrypoint, TrUserData); + PFentrypoint == undefined -> NFentrypoint; + NFentrypoint == undefined -> PFentrypoint + end, + env = + if PFenv /= undefined, NFenv /= undefined -> 'erlang_++'(PFenv, NFenv, TrUserData); + PFenv == undefined -> NFenv; + NFenv == undefined -> PFenv + end, + labels = + if PFlabels /= undefined, NFlabels /= undefined -> 'tr_merge_ContainerSpec.labels'(PFlabels, NFlabels, TrUserData); + PFlabels == undefined -> NFlabels; + NFlabels == undefined -> PFlabels + end, + volumes = + if PFvolumes /= undefined, NFvolumes /= undefined -> 'erlang_++'(PFvolumes, NFvolumes, TrUserData); + PFvolumes == undefined -> NFvolumes; + NFvolumes == undefined -> PFvolumes + end, + user = + if NFuser =:= undefined -> PFuser; + true -> NFuser + end, + working_dir = + if NFworking_dir =:= undefined -> PFworking_dir; + true -> NFworking_dir + end, + hostname = + if NFhostname =:= undefined -> PFhostname; + true -> NFhostname + end, + expose = + if PFexpose /= undefined, NFexpose /= undefined -> 'erlang_++'(PFexpose, NFexpose, TrUserData); + PFexpose == undefined -> NFexpose; + NFexpose == undefined -> PFexpose + end, + networks = + if PFnetworks /= undefined, NFnetworks /= undefined -> 'erlang_++'(PFnetworks, NFnetworks, TrUserData); + PFnetworks == undefined -> NFnetworks; + NFnetworks == undefined -> PFnetworks + end, + network_mode = + if NFnetwork_mode =:= undefined -> PFnetwork_mode; + true -> NFnetwork_mode + end, + healthcheck = + if PFhealthcheck /= undefined, NFhealthcheck /= undefined -> merge_msg_Healthcheck(PFhealthcheck, NFhealthcheck, TrUserData); + PFhealthcheck == undefined -> NFhealthcheck; + NFhealthcheck == undefined -> PFhealthcheck + end, + restart = + if PFrestart /= undefined, NFrestart /= undefined -> merge_msg_RestartPolicy(PFrestart, NFrestart, TrUserData); + PFrestart == undefined -> NFrestart; + NFrestart == undefined -> PFrestart + end, + privileged = + if NFprivileged =:= undefined -> PFprivileged; + true -> NFprivileged + end, + cap_add = + if PFcap_add /= undefined, NFcap_add /= undefined -> 'erlang_++'(PFcap_add, NFcap_add, TrUserData); + PFcap_add == undefined -> NFcap_add; + NFcap_add == undefined -> PFcap_add + end, + cap_drop = + if PFcap_drop /= undefined, NFcap_drop /= undefined -> 'erlang_++'(PFcap_drop, NFcap_drop, TrUserData); + PFcap_drop == undefined -> NFcap_drop; + NFcap_drop == undefined -> PFcap_drop + end, + devices = + if PFdevices /= undefined, NFdevices /= undefined -> 'erlang_++'(PFdevices, NFdevices, TrUserData); + PFdevices == undefined -> NFdevices; + NFdevices == undefined -> PFdevices + end, + resources = + if PFresources /= undefined, NFresources /= undefined -> merge_msg_ResourceLimits(PFresources, NFresources, TrUserData); + PFresources == undefined -> NFresources; + NFresources == undefined -> PFresources + end, + ulimits = + if PFulimits /= undefined, NFulimits /= undefined -> 'erlang_++'(PFulimits, NFulimits, TrUserData); + PFulimits == undefined -> NFulimits; + NFulimits == undefined -> PFulimits + end, + tmpfs = + if PFtmpfs /= undefined, NFtmpfs /= undefined -> 'erlang_++'(PFtmpfs, NFtmpfs, TrUserData); + PFtmpfs == undefined -> NFtmpfs; + NFtmpfs == undefined -> PFtmpfs + end, + sysctls = + if PFsysctls /= undefined, NFsysctls /= undefined -> 'tr_merge_ContainerSpec.sysctls'(PFsysctls, NFsysctls, TrUserData); + PFsysctls == undefined -> NFsysctls; + NFsysctls == undefined -> PFsysctls + end, + extra_hosts = + if PFextra_hosts /= undefined, NFextra_hosts /= undefined -> 'erlang_++'(PFextra_hosts, NFextra_hosts, TrUserData); + PFextra_hosts == undefined -> NFextra_hosts; + NFextra_hosts == undefined -> PFextra_hosts + end}. + +-compile({nowarn_unused_function,merge_msg_VolumeBind/3}). +merge_msg_VolumeBind(#'VolumeBind'{host_path = PFhost_path, container_path = PFcontainer_path, read_only = PFread_only}, #'VolumeBind'{host_path = NFhost_path, container_path = NFcontainer_path, read_only = NFread_only}, _) -> + #'VolumeBind'{host_path = + if NFhost_path =:= undefined -> PFhost_path; + true -> NFhost_path + end, + container_path = + if NFcontainer_path =:= undefined -> PFcontainer_path; + true -> NFcontainer_path + end, + read_only = + if NFread_only =:= undefined -> PFread_only; + true -> NFread_only + end}. + +-compile({nowarn_unused_function,merge_msg_PortExpose/3}). +merge_msg_PortExpose(#'PortExpose'{container_port = PFcontainer_port, protocol = PFprotocol}, #'PortExpose'{container_port = NFcontainer_port, protocol = NFprotocol}, _) -> + #'PortExpose'{container_port = + if NFcontainer_port =:= undefined -> PFcontainer_port; + true -> NFcontainer_port + end, + protocol = + if NFprotocol =:= undefined -> PFprotocol; + true -> NFprotocol + end}. + +-compile({nowarn_unused_function,merge_msg_Healthcheck/3}). +merge_msg_Healthcheck(#'Healthcheck'{test = PFtest, interval_ns = PFinterval_ns, timeout_ns = PFtimeout_ns, retries = PFretries}, #'Healthcheck'{test = NFtest, interval_ns = NFinterval_ns, timeout_ns = NFtimeout_ns, retries = NFretries}, + TrUserData) -> + #'Healthcheck'{test = + if PFtest /= undefined, NFtest /= undefined -> 'erlang_++'(PFtest, NFtest, TrUserData); + PFtest == undefined -> NFtest; + NFtest == undefined -> PFtest + end, + interval_ns = + if NFinterval_ns =:= undefined -> PFinterval_ns; + true -> NFinterval_ns + end, + timeout_ns = + if NFtimeout_ns =:= undefined -> PFtimeout_ns; + true -> NFtimeout_ns + end, + retries = + if NFretries =:= undefined -> PFretries; + true -> NFretries + end}. + +-compile({nowarn_unused_function,merge_msg_RestartPolicy/3}). +merge_msg_RestartPolicy(#'RestartPolicy'{name = PFname, maximum_retry_count = PFmaximum_retry_count}, #'RestartPolicy'{name = NFname, maximum_retry_count = NFmaximum_retry_count}, _) -> + #'RestartPolicy'{name = + if NFname =:= undefined -> PFname; + true -> NFname + end, + maximum_retry_count = + if NFmaximum_retry_count =:= undefined -> PFmaximum_retry_count; + true -> NFmaximum_retry_count + end}. + +-compile({nowarn_unused_function,merge_msg_DeviceMapping/3}). +merge_msg_DeviceMapping(#'DeviceMapping'{host_path = PFhost_path, container_path = PFcontainer_path, cgroup_permissions = PFcgroup_permissions}, + #'DeviceMapping'{host_path = NFhost_path, container_path = NFcontainer_path, cgroup_permissions = NFcgroup_permissions}, _) -> + #'DeviceMapping'{host_path = + if NFhost_path =:= undefined -> PFhost_path; + true -> NFhost_path + end, + container_path = + if NFcontainer_path =:= undefined -> PFcontainer_path; + true -> NFcontainer_path + end, + cgroup_permissions = + if NFcgroup_permissions =:= undefined -> PFcgroup_permissions; + true -> NFcgroup_permissions + end}. + +-compile({nowarn_unused_function,merge_msg_ResourceLimits/3}). +merge_msg_ResourceLimits(#'ResourceLimits'{memory_bytes = PFmemory_bytes, memory_reservation_bytes = PFmemory_reservation_bytes, nano_cpus = PFnano_cpus, cpu_shares = PFcpu_shares}, + #'ResourceLimits'{memory_bytes = NFmemory_bytes, memory_reservation_bytes = NFmemory_reservation_bytes, nano_cpus = NFnano_cpus, cpu_shares = NFcpu_shares}, _) -> + #'ResourceLimits'{memory_bytes = + if NFmemory_bytes =:= undefined -> PFmemory_bytes; + true -> NFmemory_bytes + end, + memory_reservation_bytes = + if NFmemory_reservation_bytes =:= undefined -> PFmemory_reservation_bytes; + true -> NFmemory_reservation_bytes + end, + nano_cpus = + if NFnano_cpus =:= undefined -> PFnano_cpus; + true -> NFnano_cpus + end, + cpu_shares = + if NFcpu_shares =:= undefined -> PFcpu_shares; + true -> NFcpu_shares + end}. + +-compile({nowarn_unused_function,merge_msg_Ulimit/3}). +merge_msg_Ulimit(#'Ulimit'{name = PFname, soft = PFsoft, hard = PFhard}, #'Ulimit'{name = NFname, soft = NFsoft, hard = NFhard}, _) -> + #'Ulimit'{name = + if NFname =:= undefined -> PFname; + true -> NFname + end, + soft = + if NFsoft =:= undefined -> PFsoft; + true -> NFsoft + end, + hard = + if NFhard =:= undefined -> PFhard; + true -> NFhard + end}. + +-compile({nowarn_unused_function,merge_msg_TmpfsMount/3}). +merge_msg_TmpfsMount(#'TmpfsMount'{path = PFpath, options = PFoptions}, #'TmpfsMount'{path = NFpath, options = NFoptions}, _) -> + #'TmpfsMount'{path = + if NFpath =:= undefined -> PFpath; + true -> NFpath + end, + options = + if NFoptions =:= undefined -> PFoptions; + true -> NFoptions + end}. + +-compile({nowarn_unused_function,merge_msg_AuthRequest/3}). +merge_msg_AuthRequest(#'AuthRequest'{uuid = PFuuid, username = PFusername, salt = PFsalt, token = PFtoken, timestamp = PFtimestamp}, #'AuthRequest'{uuid = NFuuid, username = NFusername, salt = NFsalt, token = NFtoken, timestamp = NFtimestamp}, _) -> + #'AuthRequest'{uuid = + if NFuuid =:= undefined -> PFuuid; + true -> NFuuid + end, + username = + if NFusername =:= undefined -> PFusername; + true -> NFusername + end, + salt = + if NFsalt =:= undefined -> PFsalt; + true -> NFsalt + end, + token = + if NFtoken =:= undefined -> PFtoken; + true -> NFtoken + end, + timestamp = + if NFtimestamp =:= undefined -> PFtimestamp; + true -> NFtimestamp + end}. + +-compile({nowarn_unused_function,merge_msg_AuthReply/3}). +merge_msg_AuthReply(#'AuthReply'{code = PFcode, payload = PFpayload}, #'AuthReply'{code = NFcode, payload = NFpayload}, _) -> + #'AuthReply'{code = + if NFcode =:= undefined -> PFcode; + true -> NFcode + end, + payload = + if NFpayload =:= undefined -> PFpayload; + true -> NFpayload + end}. + +-compile({nowarn_unused_function,merge_msg_Pub/3}). +merge_msg_Pub(#'Pub'{topic = PFtopic, qos = PFqos, content = PFcontent}, #'Pub'{topic = NFtopic, qos = NFqos, content = NFcontent}, _) -> + #'Pub'{topic = + if NFtopic =:= undefined -> PFtopic; + true -> NFtopic + end, + qos = + if NFqos =:= undefined -> PFqos; + true -> NFqos + end, + content = + if NFcontent =:= undefined -> PFcontent; + true -> NFcontent + end}. + +-compile({nowarn_unused_function,merge_msg_Command/3}). +merge_msg_Command(#'Command'{command_type = PFcommand_type, command = PFcommand}, #'Command'{command_type = NFcommand_type, command = NFcommand}, _) -> + #'Command'{command_type = + if NFcommand_type =:= undefined -> PFcommand_type; + true -> NFcommand_type + end, + command = + if NFcommand =:= undefined -> PFcommand; + true -> NFcommand + end}. + +-compile({nowarn_unused_function,merge_msg_RpcRequest/3}). +merge_msg_RpcRequest(#'RpcRequest'{method = PFmethod, params = PFparams}, #'RpcRequest'{method = NFmethod, params = NFparams}, _) -> + #'RpcRequest'{method = + if NFmethod =:= undefined -> PFmethod; + true -> NFmethod + end, + params = + if NFparams =:= undefined -> PFparams; + true -> NFparams + end}. + +-compile({nowarn_unused_function,'merge_msg_RpcReply.RpcResult'/3}). +'merge_msg_RpcReply.RpcResult'(#'RpcReply.RpcResult'{data = PFdata}, #'RpcReply.RpcResult'{data = NFdata}, _) -> + #'RpcReply.RpcResult'{data = + if NFdata =:= undefined -> PFdata; + true -> NFdata + end}. + +-compile({nowarn_unused_function,'merge_msg_RpcReply.RpcError'/3}). +'merge_msg_RpcReply.RpcError'(#'RpcReply.RpcError'{code = PFcode, message = PFmessage}, #'RpcReply.RpcError'{code = NFcode, message = NFmessage}, _) -> + #'RpcReply.RpcError'{code = + if NFcode =:= undefined -> PFcode; + true -> NFcode + end, + message = + if NFmessage =:= undefined -> PFmessage; + true -> NFmessage + end}. + +-compile({nowarn_unused_function,merge_msg_RpcReply/3}). +merge_msg_RpcReply(#'RpcReply'{reply = PFreply}, #'RpcReply'{reply = NFreply}, TrUserData) -> + #'RpcReply'{reply = + case {PFreply, NFreply} of + {{result, OPFreply}, {result, ONFreply}} -> {result, 'merge_msg_RpcReply.RpcResult'(OPFreply, ONFreply, TrUserData)}; + {{error, OPFreply}, {error, ONFreply}} -> {error, 'merge_msg_RpcReply.RpcError'(OPFreply, ONFreply, TrUserData)}; + {_, undefined} -> PFreply; + _ -> NFreply + end}. + +-compile({nowarn_unused_function,merge_msg_Data/3}). +merge_msg_Data(#'Data'{route_key = PFroute_key, metric = PFmetric}, #'Data'{route_key = NFroute_key, metric = NFmetric}, _) -> + #'Data'{route_key = + if NFroute_key =:= undefined -> PFroute_key; + true -> NFroute_key + end, + metric = + if NFmetric =:= undefined -> PFmetric; + true -> NFmetric + end}. + +-compile({nowarn_unused_function,merge_msg_TaskEventStream/3}). +merge_msg_TaskEventStream(#'TaskEventStream'{task_id = PFtask_id, type = PFtype, stream = PFstream}, #'TaskEventStream'{task_id = NFtask_id, type = NFtype, stream = NFstream}, _) -> + #'TaskEventStream'{task_id = + if NFtask_id =:= undefined -> PFtask_id; + true -> NFtask_id + end, + type = + if NFtype =:= undefined -> PFtype; + true -> NFtype + end, + stream = + if NFstream =:= undefined -> PFstream; + true -> NFstream + end}. + + +verify_msg(Msg) when tuple_size(Msg) >= 1 -> verify_msg(Msg, element(1, Msg), []); +verify_msg(X) -> mk_type_error(not_a_known_message, X, []). + +verify_msg(Msg, MsgName) when is_atom(MsgName) -> verify_msg(Msg, MsgName, []); +verify_msg(Msg, Opts) when tuple_size(Msg) >= 1 -> verify_msg(Msg, element(1, Msg), Opts); +verify_msg(X, _Opts) -> mk_type_error(not_a_known_message, X, []). + +verify_msg(Msg, MsgName, Opts) -> + TrUserData = proplists:get_value(user_data, Opts), + case MsgName of + 'RequestFrame' -> v_msg_RequestFrame(Msg, [MsgName], TrUserData); + 'ResponseFrame' -> v_msg_ResponseFrame(Msg, [MsgName], TrUserData); + 'CastFrame' -> v_msg_CastFrame(Msg, [MsgName], TrUserData); + 'ContainerRef' -> v_msg_ContainerRef(Msg, [MsgName], TrUserData); + 'ContainerRequest.List' -> 'v_msg_ContainerRequest.List'(Msg, [MsgName], TrUserData); + 'ContainerRequest.Deploy' -> 'v_msg_ContainerRequest.Deploy'(Msg, [MsgName], TrUserData); + 'ContainerRequest.Start' -> 'v_msg_ContainerRequest.Start'(Msg, [MsgName], TrUserData); + 'ContainerRequest.Stop' -> 'v_msg_ContainerRequest.Stop'(Msg, [MsgName], TrUserData); + 'ContainerRequest.Kill' -> 'v_msg_ContainerRequest.Kill'(Msg, [MsgName], TrUserData); + 'ContainerRequest.Remove' -> 'v_msg_ContainerRequest.Remove'(Msg, [MsgName], TrUserData); + 'ContainerRequest.Config' -> 'v_msg_ContainerRequest.Config'(Msg, [MsgName], TrUserData); + 'ContainerRequest' -> v_msg_ContainerRequest(Msg, [MsgName], TrUserData); + 'ContainerDeployParams' -> v_msg_ContainerDeployParams(Msg, [MsgName], TrUserData); + 'ContainerSpec' -> v_msg_ContainerSpec(Msg, [MsgName], TrUserData); + 'VolumeBind' -> v_msg_VolumeBind(Msg, [MsgName], TrUserData); + 'PortExpose' -> v_msg_PortExpose(Msg, [MsgName], TrUserData); + 'Healthcheck' -> v_msg_Healthcheck(Msg, [MsgName], TrUserData); + 'RestartPolicy' -> v_msg_RestartPolicy(Msg, [MsgName], TrUserData); + 'DeviceMapping' -> v_msg_DeviceMapping(Msg, [MsgName], TrUserData); + 'ResourceLimits' -> v_msg_ResourceLimits(Msg, [MsgName], TrUserData); + 'Ulimit' -> v_msg_Ulimit(Msg, [MsgName], TrUserData); + 'TmpfsMount' -> v_msg_TmpfsMount(Msg, [MsgName], TrUserData); + 'AuthRequest' -> v_msg_AuthRequest(Msg, [MsgName], TrUserData); + 'AuthReply' -> v_msg_AuthReply(Msg, [MsgName], TrUserData); + 'Pub' -> v_msg_Pub(Msg, [MsgName], TrUserData); + 'Command' -> v_msg_Command(Msg, [MsgName], TrUserData); + 'RpcRequest' -> v_msg_RpcRequest(Msg, [MsgName], TrUserData); + 'RpcReply.RpcResult' -> 'v_msg_RpcReply.RpcResult'(Msg, [MsgName], TrUserData); + 'RpcReply.RpcError' -> 'v_msg_RpcReply.RpcError'(Msg, [MsgName], TrUserData); + 'RpcReply' -> v_msg_RpcReply(Msg, [MsgName], TrUserData); + 'Data' -> v_msg_Data(Msg, [MsgName], TrUserData); + 'TaskEventStream' -> v_msg_TaskEventStream(Msg, [MsgName], TrUserData); + _ -> mk_type_error(not_a_known_message, Msg, []) + end. + + +-compile({nowarn_unused_function,v_msg_RequestFrame/3}). +-dialyzer({nowarn_function,v_msg_RequestFrame/3}). +v_msg_RequestFrame(#'RequestFrame'{packet_id = F1, body = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_uint32(F1, [packet_id | Path], TrUserData) + end, + case F2 of + undefined -> ok; + {auth_request, OF2} -> v_submsg_AuthRequest(OF2, [auth_request, body | Path], TrUserData); + {rpc_request, OF2} -> v_submsg_RpcRequest(OF2, [rpc_request, body | Path], TrUserData); + {container_request, OF2} -> v_submsg_ContainerRequest(OF2, [container_request, body | Path], TrUserData); + _ -> mk_type_error(invalid_oneof, F2, [body | Path]) + end, + ok; +v_msg_RequestFrame(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'RequestFrame'}, X, Path). + +-compile({nowarn_unused_function,v_msg_ResponseFrame/3}). +-dialyzer({nowarn_function,v_msg_ResponseFrame/3}). +v_msg_ResponseFrame(#'ResponseFrame'{packet_id = F1, body = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_uint32(F1, [packet_id | Path], TrUserData) + end, + case F2 of + undefined -> ok; + {auth_reply, OF2} -> v_submsg_AuthReply(OF2, [auth_reply, body | Path], TrUserData); + {rpc_reply, OF2} -> v_submsg_RpcReply(OF2, [rpc_reply, body | Path], TrUserData); + _ -> mk_type_error(invalid_oneof, F2, [body | Path]) + end, + ok; +v_msg_ResponseFrame(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ResponseFrame'}, X, Path). + +-compile({nowarn_unused_function,v_msg_CastFrame/3}). +-dialyzer({nowarn_function,v_msg_CastFrame/3}). +v_msg_CastFrame(#'CastFrame'{body = F1}, Path, TrUserData) -> + case F1 of + undefined -> ok; + {pub, OF1} -> v_submsg_Pub(OF1, [pub, body | Path], TrUserData); + {command, OF1} -> v_submsg_Command(OF1, [command, body | Path], TrUserData); + {data, OF1} -> v_submsg_Data(OF1, [data, body | Path], TrUserData); + {event_stream, OF1} -> v_submsg_TaskEventStream(OF1, [event_stream, body | Path], TrUserData); + _ -> mk_type_error(invalid_oneof, F1, [body | Path]) + end, + ok; +v_msg_CastFrame(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'CastFrame'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_ContainerRef/3}). +-dialyzer({nowarn_function,v_submsg_ContainerRef/3}). +v_submsg_ContainerRef(Msg, Path, TrUserData) -> v_msg_ContainerRef(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_ContainerRef/3}). +-dialyzer({nowarn_function,v_msg_ContainerRef/3}). +v_msg_ContainerRef(#'ContainerRef'{id = F1, name = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_string(F1, [id | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_string(F2, [name | Path], TrUserData) + end, + ok; +v_msg_ContainerRef(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ContainerRef'}, X, Path). + +-compile({nowarn_unused_function,'v_submsg_ContainerRequest.List'/3}). +-dialyzer({nowarn_function,'v_submsg_ContainerRequest.List'/3}). +'v_submsg_ContainerRequest.List'(Msg, Path, TrUserData) -> 'v_msg_ContainerRequest.List'(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,'v_msg_ContainerRequest.List'/3}). +-dialyzer({nowarn_function,'v_msg_ContainerRequest.List'/3}). +'v_msg_ContainerRequest.List'(#'ContainerRequest.List'{all = F1}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_bool(F1, [all | Path], TrUserData) + end, + ok; +'v_msg_ContainerRequest.List'(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ContainerRequest.List'}, X, Path). + +-compile({nowarn_unused_function,'v_submsg_ContainerRequest.Deploy'/3}). +-dialyzer({nowarn_function,'v_submsg_ContainerRequest.Deploy'/3}). +'v_submsg_ContainerRequest.Deploy'(Msg, Path, TrUserData) -> 'v_msg_ContainerRequest.Deploy'(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,'v_msg_ContainerRequest.Deploy'/3}). +-dialyzer({nowarn_function,'v_msg_ContainerRequest.Deploy'/3}). +'v_msg_ContainerRequest.Deploy'(#'ContainerRequest.Deploy'{task_id = F1, params = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_uint32(F1, [task_id | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_submsg_ContainerDeployParams(F2, [params | Path], TrUserData) + end, + ok; +'v_msg_ContainerRequest.Deploy'(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ContainerRequest.Deploy'}, X, Path). + +-compile({nowarn_unused_function,'v_submsg_ContainerRequest.Start'/3}). +-dialyzer({nowarn_function,'v_submsg_ContainerRequest.Start'/3}). +'v_submsg_ContainerRequest.Start'(Msg, Path, TrUserData) -> 'v_msg_ContainerRequest.Start'(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,'v_msg_ContainerRequest.Start'/3}). +-dialyzer({nowarn_function,'v_msg_ContainerRequest.Start'/3}). +'v_msg_ContainerRequest.Start'(#'ContainerRequest.Start'{target = F1}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_submsg_ContainerRef(F1, [target | Path], TrUserData) + end, + ok; +'v_msg_ContainerRequest.Start'(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ContainerRequest.Start'}, X, Path). + +-compile({nowarn_unused_function,'v_submsg_ContainerRequest.Stop'/3}). +-dialyzer({nowarn_function,'v_submsg_ContainerRequest.Stop'/3}). +'v_submsg_ContainerRequest.Stop'(Msg, Path, TrUserData) -> 'v_msg_ContainerRequest.Stop'(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,'v_msg_ContainerRequest.Stop'/3}). +-dialyzer({nowarn_function,'v_msg_ContainerRequest.Stop'/3}). +'v_msg_ContainerRequest.Stop'(#'ContainerRequest.Stop'{target = F1, timeout_seconds = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_submsg_ContainerRef(F1, [target | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_uint32(F2, [timeout_seconds | Path], TrUserData) + end, + ok; +'v_msg_ContainerRequest.Stop'(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ContainerRequest.Stop'}, X, Path). + +-compile({nowarn_unused_function,'v_submsg_ContainerRequest.Kill'/3}). +-dialyzer({nowarn_function,'v_submsg_ContainerRequest.Kill'/3}). +'v_submsg_ContainerRequest.Kill'(Msg, Path, TrUserData) -> 'v_msg_ContainerRequest.Kill'(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,'v_msg_ContainerRequest.Kill'/3}). +-dialyzer({nowarn_function,'v_msg_ContainerRequest.Kill'/3}). +'v_msg_ContainerRequest.Kill'(#'ContainerRequest.Kill'{target = F1, signal = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_submsg_ContainerRef(F1, [target | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_string(F2, [signal | Path], TrUserData) + end, + ok; +'v_msg_ContainerRequest.Kill'(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ContainerRequest.Kill'}, X, Path). + +-compile({nowarn_unused_function,'v_submsg_ContainerRequest.Remove'/3}). +-dialyzer({nowarn_function,'v_submsg_ContainerRequest.Remove'/3}). +'v_submsg_ContainerRequest.Remove'(Msg, Path, TrUserData) -> 'v_msg_ContainerRequest.Remove'(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,'v_msg_ContainerRequest.Remove'/3}). +-dialyzer({nowarn_function,'v_msg_ContainerRequest.Remove'/3}). +'v_msg_ContainerRequest.Remove'(#'ContainerRequest.Remove'{target = F1, force = F2, remove_volumes = F3}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_submsg_ContainerRef(F1, [target | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_bool(F2, [force | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_type_bool(F3, [remove_volumes | Path], TrUserData) + end, + ok; +'v_msg_ContainerRequest.Remove'(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ContainerRequest.Remove'}, X, Path). + +-compile({nowarn_unused_function,'v_submsg_ContainerRequest.Config'/3}). +-dialyzer({nowarn_function,'v_submsg_ContainerRequest.Config'/3}). +'v_submsg_ContainerRequest.Config'(Msg, Path, TrUserData) -> 'v_msg_ContainerRequest.Config'(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,'v_msg_ContainerRequest.Config'/3}). +-dialyzer({nowarn_function,'v_msg_ContainerRequest.Config'/3}). +'v_msg_ContainerRequest.Config'(#'ContainerRequest.Config'{target = F1, config = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_submsg_ContainerRef(F1, [target | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_bytes(F2, [config | Path], TrUserData) + end, + ok; +'v_msg_ContainerRequest.Config'(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ContainerRequest.Config'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_ContainerRequest/3}). +-dialyzer({nowarn_function,v_submsg_ContainerRequest/3}). +v_submsg_ContainerRequest(Msg, Path, TrUserData) -> v_msg_ContainerRequest(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_ContainerRequest/3}). +-dialyzer({nowarn_function,v_msg_ContainerRequest/3}). +v_msg_ContainerRequest(#'ContainerRequest'{action = F1}, Path, TrUserData) -> + case F1 of + undefined -> ok; + {list, OF1} -> 'v_submsg_ContainerRequest.List'(OF1, [list, action | Path], TrUserData); + {deploy, OF1} -> 'v_submsg_ContainerRequest.Deploy'(OF1, [deploy, action | Path], TrUserData); + {start, OF1} -> 'v_submsg_ContainerRequest.Start'(OF1, [start, action | Path], TrUserData); + {stop, OF1} -> 'v_submsg_ContainerRequest.Stop'(OF1, [stop, action | Path], TrUserData); + {kill, OF1} -> 'v_submsg_ContainerRequest.Kill'(OF1, [kill, action | Path], TrUserData); + {remove, OF1} -> 'v_submsg_ContainerRequest.Remove'(OF1, [remove, action | Path], TrUserData); + {config, OF1} -> 'v_submsg_ContainerRequest.Config'(OF1, [config, action | Path], TrUserData); + _ -> mk_type_error(invalid_oneof, F1, [action | Path]) + end, + ok; +v_msg_ContainerRequest(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ContainerRequest'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_ContainerDeployParams/3}). +-dialyzer({nowarn_function,v_submsg_ContainerDeployParams/3}). +v_submsg_ContainerDeployParams(Msg, Path, TrUserData) -> v_msg_ContainerDeployParams(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_ContainerDeployParams/3}). +-dialyzer({nowarn_function,v_msg_ContainerDeployParams/3}). +v_msg_ContainerDeployParams(#'ContainerDeployParams'{container_name = F1, container_dir = F2, spec = F3}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_string(F1, [container_name | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_string(F2, [container_dir | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_submsg_ContainerSpec(F3, [spec | Path], TrUserData) + end, + ok; +v_msg_ContainerDeployParams(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ContainerDeployParams'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_ContainerSpec/3}). +-dialyzer({nowarn_function,v_submsg_ContainerSpec/3}). +v_submsg_ContainerSpec(Msg, Path, TrUserData) -> v_msg_ContainerSpec(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_ContainerSpec/3}). +-dialyzer({nowarn_function,v_msg_ContainerSpec/3}). +v_msg_ContainerSpec(#'ContainerSpec'{image = F1, command = F2, entrypoint = F3, env = F4, labels = F5, volumes = F6, user = F7, working_dir = F8, hostname = F9, expose = F10, networks = F11, network_mode = F12, healthcheck = F13, restart = F14, + privileged = F15, cap_add = F16, cap_drop = F17, devices = F18, resources = F19, ulimits = F20, tmpfs = F21, sysctls = F22, extra_hosts = F23}, + Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_string(F1, [image | Path], TrUserData) + end, + if is_list(F2) -> + _ = [v_type_string(Elem, [command | Path], TrUserData) || Elem <- F2], + ok; + true -> mk_type_error({invalid_list_of, string}, F2, [command | Path]) + end, + if is_list(F3) -> + _ = [v_type_string(Elem, [entrypoint | Path], TrUserData) || Elem <- F3], + ok; + true -> mk_type_error({invalid_list_of, string}, F3, [entrypoint | Path]) + end, + if is_list(F4) -> + _ = [v_type_string(Elem, [env | Path], TrUserData) || Elem <- F4], + ok; + true -> mk_type_error({invalid_list_of, string}, F4, [env | Path]) + end, + 'v_map'(F5, [labels | Path], TrUserData), + if is_list(F6) -> + _ = [v_submsg_VolumeBind(Elem, [volumes | Path], TrUserData) || Elem <- F6], + ok; + true -> mk_type_error({invalid_list_of, {msg, 'VolumeBind'}}, F6, [volumes | Path]) + end, + if F7 == undefined -> ok; + true -> v_type_string(F7, [user | Path], TrUserData) + end, + if F8 == undefined -> ok; + true -> v_type_string(F8, [working_dir | Path], TrUserData) + end, + if F9 == undefined -> ok; + true -> v_type_string(F9, [hostname | Path], TrUserData) + end, + if is_list(F10) -> + _ = [v_submsg_PortExpose(Elem, [expose | Path], TrUserData) || Elem <- F10], + ok; + true -> mk_type_error({invalid_list_of, {msg, 'PortExpose'}}, F10, [expose | Path]) + end, + if is_list(F11) -> + _ = [v_type_string(Elem, [networks | Path], TrUserData) || Elem <- F11], + ok; + true -> mk_type_error({invalid_list_of, string}, F11, [networks | Path]) + end, + if F12 == undefined -> ok; + true -> v_type_string(F12, [network_mode | Path], TrUserData) + end, + if F13 == undefined -> ok; + true -> v_submsg_Healthcheck(F13, [healthcheck | Path], TrUserData) + end, + if F14 == undefined -> ok; + true -> v_submsg_RestartPolicy(F14, [restart | Path], TrUserData) + end, + if F15 == undefined -> ok; + true -> v_type_bool(F15, [privileged | Path], TrUserData) + end, + if is_list(F16) -> + _ = [v_type_string(Elem, [cap_add | Path], TrUserData) || Elem <- F16], + ok; + true -> mk_type_error({invalid_list_of, string}, F16, [cap_add | Path]) + end, + if is_list(F17) -> + _ = [v_type_string(Elem, [cap_drop | Path], TrUserData) || Elem <- F17], + ok; + true -> mk_type_error({invalid_list_of, string}, F17, [cap_drop | Path]) + end, + if is_list(F18) -> + _ = [v_submsg_DeviceMapping(Elem, [devices | Path], TrUserData) || Elem <- F18], + ok; + true -> mk_type_error({invalid_list_of, {msg, 'DeviceMapping'}}, F18, [devices | Path]) + end, + if F19 == undefined -> ok; + true -> v_submsg_ResourceLimits(F19, [resources | Path], TrUserData) + end, + if is_list(F20) -> + _ = [v_submsg_Ulimit(Elem, [ulimits | Path], TrUserData) || Elem <- F20], + ok; + true -> mk_type_error({invalid_list_of, {msg, 'Ulimit'}}, F20, [ulimits | Path]) + end, + if is_list(F21) -> + _ = [v_submsg_TmpfsMount(Elem, [tmpfs | Path], TrUserData) || Elem <- F21], + ok; + true -> mk_type_error({invalid_list_of, {msg, 'TmpfsMount'}}, F21, [tmpfs | Path]) + end, + 'v_map'(F22, [sysctls | Path], TrUserData), + if is_list(F23) -> + _ = [v_type_string(Elem, [extra_hosts | Path], TrUserData) || Elem <- F23], + ok; + true -> mk_type_error({invalid_list_of, string}, F23, [extra_hosts | Path]) + end, + ok; +v_msg_ContainerSpec(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ContainerSpec'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_VolumeBind/3}). +-dialyzer({nowarn_function,v_submsg_VolumeBind/3}). +v_submsg_VolumeBind(Msg, Path, TrUserData) -> v_msg_VolumeBind(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_VolumeBind/3}). +-dialyzer({nowarn_function,v_msg_VolumeBind/3}). +v_msg_VolumeBind(#'VolumeBind'{host_path = F1, container_path = F2, read_only = F3}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_string(F1, [host_path | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_string(F2, [container_path | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_type_bool(F3, [read_only | Path], TrUserData) + end, + ok; +v_msg_VolumeBind(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'VolumeBind'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_PortExpose/3}). +-dialyzer({nowarn_function,v_submsg_PortExpose/3}). +v_submsg_PortExpose(Msg, Path, TrUserData) -> v_msg_PortExpose(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_PortExpose/3}). +-dialyzer({nowarn_function,v_msg_PortExpose/3}). +v_msg_PortExpose(#'PortExpose'{container_port = F1, protocol = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_uint32(F1, [container_port | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_string(F2, [protocol | Path], TrUserData) + end, + ok; +v_msg_PortExpose(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'PortExpose'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_Healthcheck/3}). +-dialyzer({nowarn_function,v_submsg_Healthcheck/3}). +v_submsg_Healthcheck(Msg, Path, TrUserData) -> v_msg_Healthcheck(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_Healthcheck/3}). +-dialyzer({nowarn_function,v_msg_Healthcheck/3}). +v_msg_Healthcheck(#'Healthcheck'{test = F1, interval_ns = F2, timeout_ns = F3, retries = F4}, Path, TrUserData) -> + if is_list(F1) -> + _ = [v_type_string(Elem, [test | Path], TrUserData) || Elem <- F1], + ok; + true -> mk_type_error({invalid_list_of, string}, F1, [test | Path]) + end, + if F2 == undefined -> ok; + true -> v_type_uint64(F2, [interval_ns | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_type_uint64(F3, [timeout_ns | Path], TrUserData) + end, + if F4 == undefined -> ok; + true -> v_type_uint32(F4, [retries | Path], TrUserData) + end, + ok; +v_msg_Healthcheck(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Healthcheck'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_RestartPolicy/3}). +-dialyzer({nowarn_function,v_submsg_RestartPolicy/3}). +v_submsg_RestartPolicy(Msg, Path, TrUserData) -> v_msg_RestartPolicy(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_RestartPolicy/3}). +-dialyzer({nowarn_function,v_msg_RestartPolicy/3}). +v_msg_RestartPolicy(#'RestartPolicy'{name = F1, maximum_retry_count = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_string(F1, [name | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_uint32(F2, [maximum_retry_count | Path], TrUserData) + end, + ok; +v_msg_RestartPolicy(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'RestartPolicy'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_DeviceMapping/3}). +-dialyzer({nowarn_function,v_submsg_DeviceMapping/3}). +v_submsg_DeviceMapping(Msg, Path, TrUserData) -> v_msg_DeviceMapping(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_DeviceMapping/3}). +-dialyzer({nowarn_function,v_msg_DeviceMapping/3}). +v_msg_DeviceMapping(#'DeviceMapping'{host_path = F1, container_path = F2, cgroup_permissions = F3}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_string(F1, [host_path | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_string(F2, [container_path | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_type_string(F3, [cgroup_permissions | Path], TrUserData) + end, + ok; +v_msg_DeviceMapping(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'DeviceMapping'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_ResourceLimits/3}). +-dialyzer({nowarn_function,v_submsg_ResourceLimits/3}). +v_submsg_ResourceLimits(Msg, Path, TrUserData) -> v_msg_ResourceLimits(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_ResourceLimits/3}). +-dialyzer({nowarn_function,v_msg_ResourceLimits/3}). +v_msg_ResourceLimits(#'ResourceLimits'{memory_bytes = F1, memory_reservation_bytes = F2, nano_cpus = F3, cpu_shares = F4}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_uint64(F1, [memory_bytes | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_uint64(F2, [memory_reservation_bytes | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_type_uint64(F3, [nano_cpus | Path], TrUserData) + end, + if F4 == undefined -> ok; + true -> v_type_uint64(F4, [cpu_shares | Path], TrUserData) + end, + ok; +v_msg_ResourceLimits(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ResourceLimits'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_Ulimit/3}). +-dialyzer({nowarn_function,v_submsg_Ulimit/3}). +v_submsg_Ulimit(Msg, Path, TrUserData) -> v_msg_Ulimit(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_Ulimit/3}). +-dialyzer({nowarn_function,v_msg_Ulimit/3}). +v_msg_Ulimit(#'Ulimit'{name = F1, soft = F2, hard = F3}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_string(F1, [name | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_uint64(F2, [soft | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_type_uint64(F3, [hard | Path], TrUserData) + end, + ok; +v_msg_Ulimit(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Ulimit'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_TmpfsMount/3}). +-dialyzer({nowarn_function,v_submsg_TmpfsMount/3}). +v_submsg_TmpfsMount(Msg, Path, TrUserData) -> v_msg_TmpfsMount(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_TmpfsMount/3}). +-dialyzer({nowarn_function,v_msg_TmpfsMount/3}). +v_msg_TmpfsMount(#'TmpfsMount'{path = F1, options = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_string(F1, [path | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_string(F2, [options | Path], TrUserData) + end, + ok; +v_msg_TmpfsMount(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'TmpfsMount'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_AuthRequest/3}). +-dialyzer({nowarn_function,v_submsg_AuthRequest/3}). +v_submsg_AuthRequest(Msg, Path, TrUserData) -> v_msg_AuthRequest(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_AuthRequest/3}). +-dialyzer({nowarn_function,v_msg_AuthRequest/3}). +v_msg_AuthRequest(#'AuthRequest'{uuid = F1, username = F2, salt = F3, token = F4, timestamp = F5}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_bytes(F1, [uuid | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_bytes(F2, [username | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_type_bytes(F3, [salt | Path], TrUserData) + end, + if F4 == undefined -> ok; + true -> v_type_bytes(F4, [token | Path], TrUserData) + end, + if F5 == undefined -> ok; + true -> v_type_int32(F5, [timestamp | Path], TrUserData) + end, + ok; +v_msg_AuthRequest(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'AuthRequest'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_AuthReply/3}). +-dialyzer({nowarn_function,v_submsg_AuthReply/3}). +v_submsg_AuthReply(Msg, Path, TrUserData) -> v_msg_AuthReply(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_AuthReply/3}). +-dialyzer({nowarn_function,v_msg_AuthReply/3}). +v_msg_AuthReply(#'AuthReply'{code = F1, payload = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_int32(F1, [code | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_bytes(F2, [payload | Path], TrUserData) + end, + ok; +v_msg_AuthReply(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'AuthReply'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_Pub/3}). +-dialyzer({nowarn_function,v_submsg_Pub/3}). +v_submsg_Pub(Msg, Path, TrUserData) -> v_msg_Pub(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_Pub/3}). +-dialyzer({nowarn_function,v_msg_Pub/3}). +v_msg_Pub(#'Pub'{topic = F1, qos = F2, content = F3}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_bytes(F1, [topic | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_int32(F2, [qos | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_type_bytes(F3, [content | Path], TrUserData) + end, + ok; +v_msg_Pub(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Pub'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_Command/3}). +-dialyzer({nowarn_function,v_submsg_Command/3}). +v_submsg_Command(Msg, Path, TrUserData) -> v_msg_Command(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_Command/3}). +-dialyzer({nowarn_function,v_msg_Command/3}). +v_msg_Command(#'Command'{command_type = F1, command = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_int32(F1, [command_type | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_bytes(F2, [command | Path], TrUserData) + end, + ok; +v_msg_Command(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Command'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_RpcRequest/3}). +-dialyzer({nowarn_function,v_submsg_RpcRequest/3}). +v_submsg_RpcRequest(Msg, Path, TrUserData) -> v_msg_RpcRequest(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_RpcRequest/3}). +-dialyzer({nowarn_function,v_msg_RpcRequest/3}). +v_msg_RpcRequest(#'RpcRequest'{method = F1, params = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_bytes(F1, [method | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_bytes(F2, [params | Path], TrUserData) + end, + ok; +v_msg_RpcRequest(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'RpcRequest'}, X, Path). + +-compile({nowarn_unused_function,'v_submsg_RpcReply.RpcResult'/3}). +-dialyzer({nowarn_function,'v_submsg_RpcReply.RpcResult'/3}). +'v_submsg_RpcReply.RpcResult'(Msg, Path, TrUserData) -> 'v_msg_RpcReply.RpcResult'(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,'v_msg_RpcReply.RpcResult'/3}). +-dialyzer({nowarn_function,'v_msg_RpcReply.RpcResult'/3}). +'v_msg_RpcReply.RpcResult'(#'RpcReply.RpcResult'{data = F1}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_bytes(F1, [data | Path], TrUserData) + end, + ok; +'v_msg_RpcReply.RpcResult'(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'RpcReply.RpcResult'}, X, Path). + +-compile({nowarn_unused_function,'v_submsg_RpcReply.RpcError'/3}). +-dialyzer({nowarn_function,'v_submsg_RpcReply.RpcError'/3}). +'v_submsg_RpcReply.RpcError'(Msg, Path, TrUserData) -> 'v_msg_RpcReply.RpcError'(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,'v_msg_RpcReply.RpcError'/3}). +-dialyzer({nowarn_function,'v_msg_RpcReply.RpcError'/3}). +'v_msg_RpcReply.RpcError'(#'RpcReply.RpcError'{code = F1, message = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_int32(F1, [code | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_string(F2, [message | Path], TrUserData) + end, + ok; +'v_msg_RpcReply.RpcError'(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'RpcReply.RpcError'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_RpcReply/3}). +-dialyzer({nowarn_function,v_submsg_RpcReply/3}). +v_submsg_RpcReply(Msg, Path, TrUserData) -> v_msg_RpcReply(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_RpcReply/3}). +-dialyzer({nowarn_function,v_msg_RpcReply/3}). +v_msg_RpcReply(#'RpcReply'{reply = F1}, Path, TrUserData) -> + case F1 of + undefined -> ok; + {result, OF1} -> 'v_submsg_RpcReply.RpcResult'(OF1, [result, reply | Path], TrUserData); + {error, OF1} -> 'v_submsg_RpcReply.RpcError'(OF1, [error, reply | Path], TrUserData); + _ -> mk_type_error(invalid_oneof, F1, [reply | Path]) + end, + ok; +v_msg_RpcReply(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'RpcReply'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_Data/3}). +-dialyzer({nowarn_function,v_submsg_Data/3}). +v_submsg_Data(Msg, Path, TrUserData) -> v_msg_Data(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_Data/3}). +-dialyzer({nowarn_function,v_msg_Data/3}). +v_msg_Data(#'Data'{route_key = F1, metric = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_bytes(F1, [route_key | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_bytes(F2, [metric | Path], TrUserData) + end, + ok; +v_msg_Data(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Data'}, X, Path). + +-compile({nowarn_unused_function,v_submsg_TaskEventStream/3}). +-dialyzer({nowarn_function,v_submsg_TaskEventStream/3}). +v_submsg_TaskEventStream(Msg, Path, TrUserData) -> v_msg_TaskEventStream(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,v_msg_TaskEventStream/3}). +-dialyzer({nowarn_function,v_msg_TaskEventStream/3}). +v_msg_TaskEventStream(#'TaskEventStream'{task_id = F1, type = F2, stream = F3}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_int32(F1, [task_id | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_bytes(F2, [type | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_type_bytes(F3, [stream | Path], TrUserData) + end, + ok; +v_msg_TaskEventStream(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'TaskEventStream'}, X, Path). + +-compile({nowarn_unused_function,v_type_int32/3}). +-dialyzer({nowarn_function,v_type_int32/3}). +v_type_int32(N, _Path, _TrUserData) when is_integer(N), -2147483648 =< N, N =< 2147483647 -> ok; +v_type_int32(N, Path, _TrUserData) when is_integer(N) -> mk_type_error({value_out_of_range, int32, signed, 32}, N, Path); +v_type_int32(X, Path, _TrUserData) -> mk_type_error({bad_integer, int32, signed, 32}, X, Path). + +-compile({nowarn_unused_function,v_type_uint32/3}). +-dialyzer({nowarn_function,v_type_uint32/3}). +v_type_uint32(N, _Path, _TrUserData) when is_integer(N), 0 =< N, N =< 4294967295 -> ok; +v_type_uint32(N, Path, _TrUserData) when is_integer(N) -> mk_type_error({value_out_of_range, uint32, unsigned, 32}, N, Path); +v_type_uint32(X, Path, _TrUserData) -> mk_type_error({bad_integer, uint32, unsigned, 32}, X, Path). + +-compile({nowarn_unused_function,v_type_uint64/3}). +-dialyzer({nowarn_function,v_type_uint64/3}). +v_type_uint64(N, _Path, _TrUserData) when is_integer(N), 0 =< N, N =< 18446744073709551615 -> ok; +v_type_uint64(N, Path, _TrUserData) when is_integer(N) -> mk_type_error({value_out_of_range, uint64, unsigned, 64}, N, Path); +v_type_uint64(X, Path, _TrUserData) -> mk_type_error({bad_integer, uint64, unsigned, 64}, X, Path). + +-compile({nowarn_unused_function,v_type_bool/3}). +-dialyzer({nowarn_function,v_type_bool/3}). +v_type_bool(false, _Path, _TrUserData) -> ok; +v_type_bool(true, _Path, _TrUserData) -> ok; +v_type_bool(0, _Path, _TrUserData) -> ok; +v_type_bool(1, _Path, _TrUserData) -> ok; +v_type_bool(X, Path, _TrUserData) -> mk_type_error(bad_boolean_value, X, Path). + +-compile({nowarn_unused_function,v_type_string/3}). +-dialyzer({nowarn_function,v_type_string/3}). +v_type_string(S, Path, _TrUserData) when is_list(S); is_binary(S) -> + try unicode:characters_to_binary(S) of + B when is_binary(B) -> ok; + {error, _, _} -> mk_type_error(bad_unicode_string, S, Path) + catch + error:badarg -> mk_type_error(bad_unicode_string, S, Path) + end; +v_type_string(X, Path, _TrUserData) -> mk_type_error(bad_unicode_string, X, Path). + +-compile({nowarn_unused_function,v_type_bytes/3}). +-dialyzer({nowarn_function,v_type_bytes/3}). +v_type_bytes(B, _Path, _TrUserData) when is_binary(B) -> ok; +v_type_bytes(B, _Path, _TrUserData) when is_list(B) -> ok; +v_type_bytes(X, Path, _TrUserData) -> mk_type_error(bad_binary_value, X, Path). + +-compile({nowarn_unused_function,'v_map'/3}). +-dialyzer({nowarn_function,'v_map'/3}). +'v_map'(KVs, Path, TrUserData) when is_list(KVs) -> + [case X of + {Key, Value} -> + v_type_string(Key, [key | Path], TrUserData), + v_type_string(Value, [value | Path], TrUserData); + _ -> mk_type_error(invalid_key_value_tuple, X, Path) + end + || X <- KVs], + ok; +'v_map'(X, Path, _TrUserData) -> mk_type_error(invalid_list_of_key_value_tuples, X, Path). + +-compile({nowarn_unused_function,mk_type_error/3}). +-spec mk_type_error(_, _, list()) -> no_return(). +mk_type_error(Error, ValueSeen, Path) -> + Path2 = prettify_path(Path), + erlang:error({gpb_type_error, {Error, [{value, ValueSeen}, {path, Path2}]}}). + + +-compile({nowarn_unused_function,prettify_path/1}). +-dialyzer({nowarn_function,prettify_path/1}). +prettify_path([]) -> top_level; +prettify_path(PathR) -> lists:append(lists:join(".", lists:map(fun atom_to_list/1, lists:reverse(PathR)))). + + +-compile({nowarn_unused_function,id/2}). +-compile({inline,id/2}). +id(X, _TrUserData) -> X. + +-compile({nowarn_unused_function,v_ok/3}). +-compile({inline,v_ok/3}). +v_ok(_Value, _Path, _TrUserData) -> ok. + +-compile({nowarn_unused_function,m_overwrite/3}). +-compile({inline,m_overwrite/3}). +m_overwrite(_Prev, New, _TrUserData) -> New. + +-compile({nowarn_unused_function,cons/3}). +-compile({inline,cons/3}). +cons(Elem, Acc, _TrUserData) -> [Elem | Acc]. + +-compile({nowarn_unused_function,lists_reverse/2}). +-compile({inline,lists_reverse/2}). +'lists_reverse'(L, _TrUserData) -> lists:reverse(L). +-compile({nowarn_unused_function,'erlang_++'/3}). +-compile({inline,'erlang_++'/3}). +'erlang_++'(A, B, _TrUserData) -> A ++ B. +-compile({inline,'tr_encode_ContainerSpec.labels[x]'/2}). +'tr_encode_ContainerSpec.labels[x]'(X, _) -> mt_maptuple_to_pseudomsg_r(X, 'map'). + +-compile({inline,'tr_encode_ContainerSpec.sysctls[x]'/2}). +'tr_encode_ContainerSpec.sysctls[x]'(X, _) -> mt_maptuple_to_pseudomsg_r(X, 'map'). + +-compile({inline,'tr_decode_init_default_ContainerSpec.labels'/2}). +'tr_decode_init_default_ContainerSpec.labels'(_, _) -> mt_empty_map_r(). + +-compile({inline,'tr_merge_ContainerSpec.labels'/3}). +'tr_merge_ContainerSpec.labels'(X1, X2, _) -> mt_merge_maptuples_r(X1, X2). + +-compile({inline,'tr_decode_repeated_finalize_ContainerSpec.labels'/2}). +'tr_decode_repeated_finalize_ContainerSpec.labels'(L, _) -> mt_finalize_items_r(L). + +-compile({inline,'tr_decode_repeated_add_elem_ContainerSpec.labels'/3}). +'tr_decode_repeated_add_elem_ContainerSpec.labels'(Elem, L, _) -> mt_add_item_r(Elem, L). + +-compile({inline,'tr_decode_init_default_ContainerSpec.sysctls'/2}). +'tr_decode_init_default_ContainerSpec.sysctls'(_, _) -> mt_empty_map_r(). + +-compile({inline,'tr_merge_ContainerSpec.sysctls'/3}). +'tr_merge_ContainerSpec.sysctls'(X1, X2, _) -> mt_merge_maptuples_r(X1, X2). + +-compile({inline,'tr_decode_repeated_finalize_ContainerSpec.sysctls'/2}). +'tr_decode_repeated_finalize_ContainerSpec.sysctls'(L, _) -> mt_finalize_items_r(L). + +-compile({inline,'tr_decode_repeated_add_elem_ContainerSpec.sysctls'/3}). +'tr_decode_repeated_add_elem_ContainerSpec.sysctls'(Elem, L, _) -> mt_add_item_r(Elem, L). + +-compile({inline,mt_maptuple_to_pseudomsg_r/2}). +mt_maptuple_to_pseudomsg_r({K, V}, RName) -> {RName, K, V}. + + +-compile({inline,mt_empty_map_r/0}). +mt_empty_map_r() -> []. + +-compile({inline,mt_add_item_r/2}). +mt_add_item_r({_RName, K, V}, Acc) -> [{K, V} | Acc]. + + +-compile({inline,mt_finalize_items_r/1}). +mt_finalize_items_r(Acc) -> mt_finalize_items_r_aux(lists:reverse(Acc), dict:new()). + +mt_finalize_items_r_aux([{K, V} | Tl], D) -> mt_finalize_items_r_aux(Tl, dict:store(K, V, D)); +mt_finalize_items_r_aux([], D) -> dict:to_list(D). + + +-compile({inline,mt_merge_maptuples_r/2}). +mt_merge_maptuples_r(L1, L2) -> dict:to_list(dict:merge(fun (_Key, _V1, V2) -> V2 end, dict:from_list(L1), dict:from_list(L2))). + + + + +get_msg_defs() -> + [{{msg, 'RequestFrame'}, + [#field{name = packet_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, + #gpb_oneof{name = body, rnum = 3, + fields = + [#field{name = auth_request, fnum = 2, rnum = 3, type = {msg, 'AuthRequest'}, occurrence = optional, opts = []}, + #field{name = rpc_request, fnum = 3, rnum = 3, type = {msg, 'RpcRequest'}, occurrence = optional, opts = []}, + #field{name = container_request, fnum = 4, rnum = 3, type = {msg, 'ContainerRequest'}, occurrence = optional, opts = []}], + opts = []}]}, + {{msg, 'ResponseFrame'}, + [#field{name = packet_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, + #gpb_oneof{name = body, rnum = 3, + fields = [#field{name = auth_reply, fnum = 2, rnum = 3, type = {msg, 'AuthReply'}, occurrence = optional, opts = []}, #field{name = rpc_reply, fnum = 3, rnum = 3, type = {msg, 'RpcReply'}, occurrence = optional, opts = []}], opts = []}]}, + {{msg, 'CastFrame'}, + [#gpb_oneof{name = body, rnum = 2, + fields = + [#field{name = pub, fnum = 1, rnum = 2, type = {msg, 'Pub'}, occurrence = optional, opts = []}, + #field{name = command, fnum = 2, rnum = 2, type = {msg, 'Command'}, occurrence = optional, opts = []}, + #field{name = data, fnum = 3, rnum = 2, type = {msg, 'Data'}, occurrence = optional, opts = []}, + #field{name = event_stream, fnum = 4, rnum = 2, type = {msg, 'TaskEventStream'}, occurrence = optional, opts = []}], + opts = []}]}, + {{msg, 'ContainerRef'}, [#field{name = id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = name, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]}, + {{msg, 'ContainerRequest.List'}, [#field{name = all, fnum = 1, rnum = 2, type = bool, occurrence = optional, opts = []}]}, + {{msg, 'ContainerRequest.Deploy'}, [#field{name = task_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = {msg, 'ContainerDeployParams'}, occurrence = optional, opts = []}]}, + {{msg, 'ContainerRequest.Start'}, [#field{name = target, fnum = 1, rnum = 2, type = {msg, 'ContainerRef'}, occurrence = optional, opts = []}]}, + {{msg, 'ContainerRequest.Stop'}, [#field{name = target, fnum = 1, rnum = 2, type = {msg, 'ContainerRef'}, occurrence = optional, opts = []}, #field{name = timeout_seconds, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []}]}, + {{msg, 'ContainerRequest.Kill'}, [#field{name = target, fnum = 1, rnum = 2, type = {msg, 'ContainerRef'}, occurrence = optional, opts = []}, #field{name = signal, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]}, + {{msg, 'ContainerRequest.Remove'}, + [#field{name = target, fnum = 1, rnum = 2, type = {msg, 'ContainerRef'}, occurrence = optional, opts = []}, + #field{name = force, fnum = 2, rnum = 3, type = bool, occurrence = optional, opts = []}, + #field{name = remove_volumes, fnum = 3, rnum = 4, type = bool, occurrence = optional, opts = []}]}, + {{msg, 'ContainerRequest.Config'}, [#field{name = target, fnum = 1, rnum = 2, type = {msg, 'ContainerRef'}, occurrence = optional, opts = []}, #field{name = config, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]}, + {{msg, 'ContainerRequest'}, + [#gpb_oneof{name = action, rnum = 2, + fields = + [#field{name = list, fnum = 10, rnum = 2, type = {msg, 'ContainerRequest.List'}, occurrence = optional, opts = []}, + #field{name = deploy, fnum = 11, rnum = 2, type = {msg, 'ContainerRequest.Deploy'}, occurrence = optional, opts = []}, + #field{name = start, fnum = 12, rnum = 2, type = {msg, 'ContainerRequest.Start'}, occurrence = optional, opts = []}, + #field{name = stop, fnum = 13, rnum = 2, type = {msg, 'ContainerRequest.Stop'}, occurrence = optional, opts = []}, + #field{name = kill, fnum = 14, rnum = 2, type = {msg, 'ContainerRequest.Kill'}, occurrence = optional, opts = []}, + #field{name = remove, fnum = 15, rnum = 2, type = {msg, 'ContainerRequest.Remove'}, occurrence = optional, opts = []}, + #field{name = config, fnum = 16, rnum = 2, type = {msg, 'ContainerRequest.Config'}, occurrence = optional, opts = []}], + opts = []}]}, + {{msg, 'ContainerDeployParams'}, + [#field{name = container_name, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = container_dir, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = spec, fnum = 3, rnum = 4, type = {msg, 'ContainerSpec'}, occurrence = optional, opts = []}]}, + {{msg, 'ContainerSpec'}, + [#field{name = image, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = command, fnum = 2, rnum = 3, type = string, occurrence = repeated, opts = []}, + #field{name = entrypoint, fnum = 3, rnum = 4, type = string, occurrence = repeated, opts = []}, + #field{name = env, fnum = 4, rnum = 5, type = string, occurrence = repeated, opts = []}, + #field{name = labels, fnum = 5, rnum = 6, type = {map, string, string}, occurrence = repeated, opts = []}, + #field{name = volumes, fnum = 6, rnum = 7, type = {msg, 'VolumeBind'}, occurrence = repeated, opts = []}, + #field{name = user, fnum = 7, rnum = 8, type = string, occurrence = optional, opts = []}, + #field{name = working_dir, fnum = 8, rnum = 9, type = string, occurrence = optional, opts = []}, + #field{name = hostname, fnum = 9, rnum = 10, type = string, occurrence = optional, opts = []}, + #field{name = expose, fnum = 10, rnum = 11, type = {msg, 'PortExpose'}, occurrence = repeated, opts = []}, + #field{name = networks, fnum = 11, rnum = 12, type = string, occurrence = repeated, opts = []}, + #field{name = network_mode, fnum = 12, rnum = 13, type = string, occurrence = optional, opts = []}, + #field{name = healthcheck, fnum = 13, rnum = 14, type = {msg, 'Healthcheck'}, occurrence = optional, opts = []}, + #field{name = restart, fnum = 14, rnum = 15, type = {msg, 'RestartPolicy'}, occurrence = optional, opts = []}, + #field{name = privileged, fnum = 15, rnum = 16, type = bool, occurrence = optional, opts = []}, + #field{name = cap_add, fnum = 16, rnum = 17, type = string, occurrence = repeated, opts = []}, + #field{name = cap_drop, fnum = 17, rnum = 18, type = string, occurrence = repeated, opts = []}, + #field{name = devices, fnum = 18, rnum = 19, type = {msg, 'DeviceMapping'}, occurrence = repeated, opts = []}, + #field{name = resources, fnum = 19, rnum = 20, type = {msg, 'ResourceLimits'}, occurrence = optional, opts = []}, + #field{name = ulimits, fnum = 20, rnum = 21, type = {msg, 'Ulimit'}, occurrence = repeated, opts = []}, + #field{name = tmpfs, fnum = 21, rnum = 22, type = {msg, 'TmpfsMount'}, occurrence = repeated, opts = []}, + #field{name = sysctls, fnum = 22, rnum = 23, type = {map, string, string}, occurrence = repeated, opts = []}, + #field{name = extra_hosts, fnum = 23, rnum = 24, type = string, occurrence = repeated, opts = []}]}, + {{msg, 'VolumeBind'}, + [#field{name = host_path, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = container_path, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = read_only, fnum = 3, rnum = 4, type = bool, occurrence = optional, opts = []}]}, + {{msg, 'PortExpose'}, [#field{name = container_port, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #field{name = protocol, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]}, + {{msg, 'Healthcheck'}, + [#field{name = test, fnum = 1, rnum = 2, type = string, occurrence = repeated, opts = []}, + #field{name = interval_ns, fnum = 2, rnum = 3, type = uint64, occurrence = optional, opts = []}, + #field{name = timeout_ns, fnum = 3, rnum = 4, type = uint64, occurrence = optional, opts = []}, + #field{name = retries, fnum = 4, rnum = 5, type = uint32, occurrence = optional, opts = []}]}, + {{msg, 'RestartPolicy'}, [#field{name = name, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = maximum_retry_count, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []}]}, + {{msg, 'DeviceMapping'}, + [#field{name = host_path, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = container_path, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = cgroup_permissions, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]}, + {{msg, 'ResourceLimits'}, + [#field{name = memory_bytes, fnum = 1, rnum = 2, type = uint64, occurrence = optional, opts = []}, + #field{name = memory_reservation_bytes, fnum = 2, rnum = 3, type = uint64, occurrence = optional, opts = []}, + #field{name = nano_cpus, fnum = 3, rnum = 4, type = uint64, occurrence = optional, opts = []}, + #field{name = cpu_shares, fnum = 4, rnum = 5, type = uint64, occurrence = optional, opts = []}]}, + {{msg, 'Ulimit'}, + [#field{name = name, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = soft, fnum = 2, rnum = 3, type = uint64, occurrence = optional, opts = []}, + #field{name = hard, fnum = 3, rnum = 4, type = uint64, occurrence = optional, opts = []}]}, + {{msg, 'TmpfsMount'}, [#field{name = path, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = options, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]}, + {{msg, 'AuthRequest'}, + [#field{name = uuid, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, + #field{name = username, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}, + #field{name = salt, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}, + #field{name = token, fnum = 4, rnum = 5, type = bytes, occurrence = optional, opts = []}, + #field{name = timestamp, fnum = 5, rnum = 6, type = int32, occurrence = optional, opts = []}]}, + {{msg, 'AuthReply'}, [#field{name = code, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = payload, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]}, + {{msg, 'Pub'}, + [#field{name = topic, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, + #field{name = qos, fnum = 2, rnum = 3, type = int32, occurrence = optional, opts = []}, + #field{name = content, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}]}, + {{msg, 'Command'}, [#field{name = command_type, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = command, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]}, + {{msg, 'RpcRequest'}, [#field{name = method, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]}, + {{msg, 'RpcReply.RpcResult'}, [#field{name = data, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}]}, + {{msg, 'RpcReply.RpcError'}, [#field{name = code, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = message, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]}, + {{msg, 'RpcReply'}, + [#gpb_oneof{name = reply, rnum = 2, + fields = [#field{name = result, fnum = 1, rnum = 2, type = {msg, 'RpcReply.RpcResult'}, occurrence = optional, opts = []}, #field{name = error, fnum = 2, rnum = 2, type = {msg, 'RpcReply.RpcError'}, occurrence = optional, opts = []}], opts = []}]}, + {{msg, 'Data'}, [#field{name = route_key, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = metric, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]}, + {{msg, 'TaskEventStream'}, + [#field{name = task_id, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, + #field{name = type, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}, + #field{name = stream, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}]}]. + + +get_msg_names() -> + ['RequestFrame', + 'ResponseFrame', + 'CastFrame', + 'ContainerRef', + 'ContainerRequest.List', + 'ContainerRequest.Deploy', + 'ContainerRequest.Start', + 'ContainerRequest.Stop', + 'ContainerRequest.Kill', + 'ContainerRequest.Remove', + 'ContainerRequest.Config', + 'ContainerRequest', + 'ContainerDeployParams', + 'ContainerSpec', + 'VolumeBind', + 'PortExpose', + 'Healthcheck', + 'RestartPolicy', + 'DeviceMapping', + 'ResourceLimits', + 'Ulimit', + 'TmpfsMount', + 'AuthRequest', + 'AuthReply', + 'Pub', + 'Command', + 'RpcRequest', + 'RpcReply.RpcResult', + 'RpcReply.RpcError', + 'RpcReply', + 'Data', + 'TaskEventStream']. + + +get_group_names() -> []. + + +get_msg_or_group_names() -> + ['RequestFrame', + 'ResponseFrame', + 'CastFrame', + 'ContainerRef', + 'ContainerRequest.List', + 'ContainerRequest.Deploy', + 'ContainerRequest.Start', + 'ContainerRequest.Stop', + 'ContainerRequest.Kill', + 'ContainerRequest.Remove', + 'ContainerRequest.Config', + 'ContainerRequest', + 'ContainerDeployParams', + 'ContainerSpec', + 'VolumeBind', + 'PortExpose', + 'Healthcheck', + 'RestartPolicy', + 'DeviceMapping', + 'ResourceLimits', + 'Ulimit', + 'TmpfsMount', + 'AuthRequest', + 'AuthReply', + 'Pub', + 'Command', + 'RpcRequest', + 'RpcReply.RpcResult', + 'RpcReply.RpcError', + 'RpcReply', + 'Data', + 'TaskEventStream']. + + +get_enum_names() -> []. + + +fetch_msg_def(MsgName) -> + case find_msg_def(MsgName) of + Fs when is_list(Fs) -> Fs; + error -> erlang:error({no_such_msg, MsgName}) + end. + + +-spec fetch_enum_def(_) -> no_return(). +fetch_enum_def(EnumName) -> erlang:error({no_such_enum, EnumName}). + + +find_msg_def('RequestFrame') -> + [#field{name = packet_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, + #gpb_oneof{name = body, rnum = 3, + fields = + [#field{name = auth_request, fnum = 2, rnum = 3, type = {msg, 'AuthRequest'}, occurrence = optional, opts = []}, + #field{name = rpc_request, fnum = 3, rnum = 3, type = {msg, 'RpcRequest'}, occurrence = optional, opts = []}, + #field{name = container_request, fnum = 4, rnum = 3, type = {msg, 'ContainerRequest'}, occurrence = optional, opts = []}], + opts = []}]; +find_msg_def('ResponseFrame') -> + [#field{name = packet_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, + #gpb_oneof{name = body, rnum = 3, + fields = [#field{name = auth_reply, fnum = 2, rnum = 3, type = {msg, 'AuthReply'}, occurrence = optional, opts = []}, #field{name = rpc_reply, fnum = 3, rnum = 3, type = {msg, 'RpcReply'}, occurrence = optional, opts = []}], opts = []}]; +find_msg_def('CastFrame') -> + [#gpb_oneof{name = body, rnum = 2, + fields = + [#field{name = pub, fnum = 1, rnum = 2, type = {msg, 'Pub'}, occurrence = optional, opts = []}, + #field{name = command, fnum = 2, rnum = 2, type = {msg, 'Command'}, occurrence = optional, opts = []}, + #field{name = data, fnum = 3, rnum = 2, type = {msg, 'Data'}, occurrence = optional, opts = []}, + #field{name = event_stream, fnum = 4, rnum = 2, type = {msg, 'TaskEventStream'}, occurrence = optional, opts = []}], + opts = []}]; +find_msg_def('ContainerRef') -> [#field{name = id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = name, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]; +find_msg_def('ContainerRequest.List') -> [#field{name = all, fnum = 1, rnum = 2, type = bool, occurrence = optional, opts = []}]; +find_msg_def('ContainerRequest.Deploy') -> + [#field{name = task_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = {msg, 'ContainerDeployParams'}, occurrence = optional, opts = []}]; +find_msg_def('ContainerRequest.Start') -> [#field{name = target, fnum = 1, rnum = 2, type = {msg, 'ContainerRef'}, occurrence = optional, opts = []}]; +find_msg_def('ContainerRequest.Stop') -> [#field{name = target, fnum = 1, rnum = 2, type = {msg, 'ContainerRef'}, occurrence = optional, opts = []}, #field{name = timeout_seconds, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []}]; +find_msg_def('ContainerRequest.Kill') -> [#field{name = target, fnum = 1, rnum = 2, type = {msg, 'ContainerRef'}, occurrence = optional, opts = []}, #field{name = signal, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]; +find_msg_def('ContainerRequest.Remove') -> + [#field{name = target, fnum = 1, rnum = 2, type = {msg, 'ContainerRef'}, occurrence = optional, opts = []}, + #field{name = force, fnum = 2, rnum = 3, type = bool, occurrence = optional, opts = []}, + #field{name = remove_volumes, fnum = 3, rnum = 4, type = bool, occurrence = optional, opts = []}]; +find_msg_def('ContainerRequest.Config') -> [#field{name = target, fnum = 1, rnum = 2, type = {msg, 'ContainerRef'}, occurrence = optional, opts = []}, #field{name = config, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]; +find_msg_def('ContainerRequest') -> + [#gpb_oneof{name = action, rnum = 2, + fields = + [#field{name = list, fnum = 10, rnum = 2, type = {msg, 'ContainerRequest.List'}, occurrence = optional, opts = []}, + #field{name = deploy, fnum = 11, rnum = 2, type = {msg, 'ContainerRequest.Deploy'}, occurrence = optional, opts = []}, + #field{name = start, fnum = 12, rnum = 2, type = {msg, 'ContainerRequest.Start'}, occurrence = optional, opts = []}, + #field{name = stop, fnum = 13, rnum = 2, type = {msg, 'ContainerRequest.Stop'}, occurrence = optional, opts = []}, + #field{name = kill, fnum = 14, rnum = 2, type = {msg, 'ContainerRequest.Kill'}, occurrence = optional, opts = []}, + #field{name = remove, fnum = 15, rnum = 2, type = {msg, 'ContainerRequest.Remove'}, occurrence = optional, opts = []}, + #field{name = config, fnum = 16, rnum = 2, type = {msg, 'ContainerRequest.Config'}, occurrence = optional, opts = []}], + opts = []}]; +find_msg_def('ContainerDeployParams') -> + [#field{name = container_name, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = container_dir, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = spec, fnum = 3, rnum = 4, type = {msg, 'ContainerSpec'}, occurrence = optional, opts = []}]; +find_msg_def('ContainerSpec') -> + [#field{name = image, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = command, fnum = 2, rnum = 3, type = string, occurrence = repeated, opts = []}, + #field{name = entrypoint, fnum = 3, rnum = 4, type = string, occurrence = repeated, opts = []}, + #field{name = env, fnum = 4, rnum = 5, type = string, occurrence = repeated, opts = []}, + #field{name = labels, fnum = 5, rnum = 6, type = {map, string, string}, occurrence = repeated, opts = []}, + #field{name = volumes, fnum = 6, rnum = 7, type = {msg, 'VolumeBind'}, occurrence = repeated, opts = []}, + #field{name = user, fnum = 7, rnum = 8, type = string, occurrence = optional, opts = []}, + #field{name = working_dir, fnum = 8, rnum = 9, type = string, occurrence = optional, opts = []}, + #field{name = hostname, fnum = 9, rnum = 10, type = string, occurrence = optional, opts = []}, + #field{name = expose, fnum = 10, rnum = 11, type = {msg, 'PortExpose'}, occurrence = repeated, opts = []}, + #field{name = networks, fnum = 11, rnum = 12, type = string, occurrence = repeated, opts = []}, + #field{name = network_mode, fnum = 12, rnum = 13, type = string, occurrence = optional, opts = []}, + #field{name = healthcheck, fnum = 13, rnum = 14, type = {msg, 'Healthcheck'}, occurrence = optional, opts = []}, + #field{name = restart, fnum = 14, rnum = 15, type = {msg, 'RestartPolicy'}, occurrence = optional, opts = []}, + #field{name = privileged, fnum = 15, rnum = 16, type = bool, occurrence = optional, opts = []}, + #field{name = cap_add, fnum = 16, rnum = 17, type = string, occurrence = repeated, opts = []}, + #field{name = cap_drop, fnum = 17, rnum = 18, type = string, occurrence = repeated, opts = []}, + #field{name = devices, fnum = 18, rnum = 19, type = {msg, 'DeviceMapping'}, occurrence = repeated, opts = []}, + #field{name = resources, fnum = 19, rnum = 20, type = {msg, 'ResourceLimits'}, occurrence = optional, opts = []}, + #field{name = ulimits, fnum = 20, rnum = 21, type = {msg, 'Ulimit'}, occurrence = repeated, opts = []}, + #field{name = tmpfs, fnum = 21, rnum = 22, type = {msg, 'TmpfsMount'}, occurrence = repeated, opts = []}, + #field{name = sysctls, fnum = 22, rnum = 23, type = {map, string, string}, occurrence = repeated, opts = []}, + #field{name = extra_hosts, fnum = 23, rnum = 24, type = string, occurrence = repeated, opts = []}]; +find_msg_def('VolumeBind') -> + [#field{name = host_path, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = container_path, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = read_only, fnum = 3, rnum = 4, type = bool, occurrence = optional, opts = []}]; +find_msg_def('PortExpose') -> [#field{name = container_port, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #field{name = protocol, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]; +find_msg_def('Healthcheck') -> + [#field{name = test, fnum = 1, rnum = 2, type = string, occurrence = repeated, opts = []}, + #field{name = interval_ns, fnum = 2, rnum = 3, type = uint64, occurrence = optional, opts = []}, + #field{name = timeout_ns, fnum = 3, rnum = 4, type = uint64, occurrence = optional, opts = []}, + #field{name = retries, fnum = 4, rnum = 5, type = uint32, occurrence = optional, opts = []}]; +find_msg_def('RestartPolicy') -> [#field{name = name, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = maximum_retry_count, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []}]; +find_msg_def('DeviceMapping') -> + [#field{name = host_path, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = container_path, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = cgroup_permissions, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]; +find_msg_def('ResourceLimits') -> + [#field{name = memory_bytes, fnum = 1, rnum = 2, type = uint64, occurrence = optional, opts = []}, + #field{name = memory_reservation_bytes, fnum = 2, rnum = 3, type = uint64, occurrence = optional, opts = []}, + #field{name = nano_cpus, fnum = 3, rnum = 4, type = uint64, occurrence = optional, opts = []}, + #field{name = cpu_shares, fnum = 4, rnum = 5, type = uint64, occurrence = optional, opts = []}]; +find_msg_def('Ulimit') -> + [#field{name = name, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = soft, fnum = 2, rnum = 3, type = uint64, occurrence = optional, opts = []}, + #field{name = hard, fnum = 3, rnum = 4, type = uint64, occurrence = optional, opts = []}]; +find_msg_def('TmpfsMount') -> [#field{name = path, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = options, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]; +find_msg_def('AuthRequest') -> + [#field{name = uuid, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, + #field{name = username, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}, + #field{name = salt, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}, + #field{name = token, fnum = 4, rnum = 5, type = bytes, occurrence = optional, opts = []}, + #field{name = timestamp, fnum = 5, rnum = 6, type = int32, occurrence = optional, opts = []}]; +find_msg_def('AuthReply') -> [#field{name = code, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = payload, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]; +find_msg_def('Pub') -> + [#field{name = topic, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, + #field{name = qos, fnum = 2, rnum = 3, type = int32, occurrence = optional, opts = []}, + #field{name = content, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}]; +find_msg_def('Command') -> [#field{name = command_type, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = command, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]; +find_msg_def('RpcRequest') -> [#field{name = method, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]; +find_msg_def('RpcReply.RpcResult') -> [#field{name = data, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}]; +find_msg_def('RpcReply.RpcError') -> [#field{name = code, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = message, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]; +find_msg_def('RpcReply') -> + [#gpb_oneof{name = reply, rnum = 2, + fields = [#field{name = result, fnum = 1, rnum = 2, type = {msg, 'RpcReply.RpcResult'}, occurrence = optional, opts = []}, #field{name = error, fnum = 2, rnum = 2, type = {msg, 'RpcReply.RpcError'}, occurrence = optional, opts = []}], opts = []}]; +find_msg_def('Data') -> [#field{name = route_key, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = metric, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]; +find_msg_def('TaskEventStream') -> + [#field{name = task_id, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, + #field{name = type, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}, + #field{name = stream, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}]; +find_msg_def(_) -> error. + + +find_enum_def(_) -> error. + + +-spec enum_symbol_by_value(_, _) -> no_return(). +enum_symbol_by_value(E, V) -> erlang:error({no_enum_defs, E, V}). + + +-spec enum_value_by_symbol(_, _) -> no_return(). +enum_value_by_symbol(E, V) -> erlang:error({no_enum_defs, E, V}). + + + +get_service_names() -> []. + + +get_service_def(_) -> error. + + +get_rpc_names(_) -> error. + + +find_rpc_def(_, _) -> error. + + + +-spec fetch_rpc_def(_, _) -> no_return(). +fetch_rpc_def(ServiceName, RpcName) -> erlang:error({no_such_rpc, ServiceName, RpcName}). + + +%% Convert a a fully qualified (ie with package name) service name +%% as a binary to a service name as an atom. +-spec fqbin_to_service_name(_) -> no_return(). +fqbin_to_service_name(X) -> error({gpb_error, {badservice, X}}). + + +%% Convert a service name as an atom to a fully qualified +%% (ie with package name) name as a binary. +-spec service_name_to_fqbin(_) -> no_return(). +service_name_to_fqbin(X) -> error({gpb_error, {badservice, X}}). + + +%% Convert a a fully qualified (ie with package name) service name +%% and an rpc name, both as binaries to a service name and an rpc +%% name, as atoms. +-spec fqbins_to_service_and_rpc_name(_, _) -> no_return(). +fqbins_to_service_and_rpc_name(S, R) -> error({gpb_error, {badservice_or_rpc, {S, R}}}). + + +%% Convert a service name and an rpc name, both as atoms, +%% to a fully qualified (ie with package name) service name and +%% an rpc name as binaries. +-spec service_and_rpc_name_to_fqbins(_, _) -> no_return(). +service_and_rpc_name_to_fqbins(S, R) -> error({gpb_error, {badservice_or_rpc, {S, R}}}). + + +fqbin_to_msg_name(<<"RequestFrame">>) -> 'RequestFrame'; +fqbin_to_msg_name(<<"ResponseFrame">>) -> 'ResponseFrame'; +fqbin_to_msg_name(<<"CastFrame">>) -> 'CastFrame'; +fqbin_to_msg_name(<<"ContainerRef">>) -> 'ContainerRef'; +fqbin_to_msg_name(<<"ContainerRequest.List">>) -> 'ContainerRequest.List'; +fqbin_to_msg_name(<<"ContainerRequest.Deploy">>) -> 'ContainerRequest.Deploy'; +fqbin_to_msg_name(<<"ContainerRequest.Start">>) -> 'ContainerRequest.Start'; +fqbin_to_msg_name(<<"ContainerRequest.Stop">>) -> 'ContainerRequest.Stop'; +fqbin_to_msg_name(<<"ContainerRequest.Kill">>) -> 'ContainerRequest.Kill'; +fqbin_to_msg_name(<<"ContainerRequest.Remove">>) -> 'ContainerRequest.Remove'; +fqbin_to_msg_name(<<"ContainerRequest.Config">>) -> 'ContainerRequest.Config'; +fqbin_to_msg_name(<<"ContainerRequest">>) -> 'ContainerRequest'; +fqbin_to_msg_name(<<"ContainerDeployParams">>) -> 'ContainerDeployParams'; +fqbin_to_msg_name(<<"ContainerSpec">>) -> 'ContainerSpec'; +fqbin_to_msg_name(<<"VolumeBind">>) -> 'VolumeBind'; +fqbin_to_msg_name(<<"PortExpose">>) -> 'PortExpose'; +fqbin_to_msg_name(<<"Healthcheck">>) -> 'Healthcheck'; +fqbin_to_msg_name(<<"RestartPolicy">>) -> 'RestartPolicy'; +fqbin_to_msg_name(<<"DeviceMapping">>) -> 'DeviceMapping'; +fqbin_to_msg_name(<<"ResourceLimits">>) -> 'ResourceLimits'; +fqbin_to_msg_name(<<"Ulimit">>) -> 'Ulimit'; +fqbin_to_msg_name(<<"TmpfsMount">>) -> 'TmpfsMount'; +fqbin_to_msg_name(<<"AuthRequest">>) -> 'AuthRequest'; +fqbin_to_msg_name(<<"AuthReply">>) -> 'AuthReply'; +fqbin_to_msg_name(<<"Pub">>) -> 'Pub'; +fqbin_to_msg_name(<<"Command">>) -> 'Command'; +fqbin_to_msg_name(<<"RpcRequest">>) -> 'RpcRequest'; +fqbin_to_msg_name(<<"RpcReply.RpcResult">>) -> 'RpcReply.RpcResult'; +fqbin_to_msg_name(<<"RpcReply.RpcError">>) -> 'RpcReply.RpcError'; +fqbin_to_msg_name(<<"RpcReply">>) -> 'RpcReply'; +fqbin_to_msg_name(<<"Data">>) -> 'Data'; +fqbin_to_msg_name(<<"TaskEventStream">>) -> 'TaskEventStream'; +fqbin_to_msg_name(E) -> error({gpb_error, {badmsg, E}}). + + +msg_name_to_fqbin('RequestFrame') -> <<"RequestFrame">>; +msg_name_to_fqbin('ResponseFrame') -> <<"ResponseFrame">>; +msg_name_to_fqbin('CastFrame') -> <<"CastFrame">>; +msg_name_to_fqbin('ContainerRef') -> <<"ContainerRef">>; +msg_name_to_fqbin('ContainerRequest.List') -> <<"ContainerRequest.List">>; +msg_name_to_fqbin('ContainerRequest.Deploy') -> <<"ContainerRequest.Deploy">>; +msg_name_to_fqbin('ContainerRequest.Start') -> <<"ContainerRequest.Start">>; +msg_name_to_fqbin('ContainerRequest.Stop') -> <<"ContainerRequest.Stop">>; +msg_name_to_fqbin('ContainerRequest.Kill') -> <<"ContainerRequest.Kill">>; +msg_name_to_fqbin('ContainerRequest.Remove') -> <<"ContainerRequest.Remove">>; +msg_name_to_fqbin('ContainerRequest.Config') -> <<"ContainerRequest.Config">>; +msg_name_to_fqbin('ContainerRequest') -> <<"ContainerRequest">>; +msg_name_to_fqbin('ContainerDeployParams') -> <<"ContainerDeployParams">>; +msg_name_to_fqbin('ContainerSpec') -> <<"ContainerSpec">>; +msg_name_to_fqbin('VolumeBind') -> <<"VolumeBind">>; +msg_name_to_fqbin('PortExpose') -> <<"PortExpose">>; +msg_name_to_fqbin('Healthcheck') -> <<"Healthcheck">>; +msg_name_to_fqbin('RestartPolicy') -> <<"RestartPolicy">>; +msg_name_to_fqbin('DeviceMapping') -> <<"DeviceMapping">>; +msg_name_to_fqbin('ResourceLimits') -> <<"ResourceLimits">>; +msg_name_to_fqbin('Ulimit') -> <<"Ulimit">>; +msg_name_to_fqbin('TmpfsMount') -> <<"TmpfsMount">>; +msg_name_to_fqbin('AuthRequest') -> <<"AuthRequest">>; +msg_name_to_fqbin('AuthReply') -> <<"AuthReply">>; +msg_name_to_fqbin('Pub') -> <<"Pub">>; +msg_name_to_fqbin('Command') -> <<"Command">>; +msg_name_to_fqbin('RpcRequest') -> <<"RpcRequest">>; +msg_name_to_fqbin('RpcReply.RpcResult') -> <<"RpcReply.RpcResult">>; +msg_name_to_fqbin('RpcReply.RpcError') -> <<"RpcReply.RpcError">>; +msg_name_to_fqbin('RpcReply') -> <<"RpcReply">>; +msg_name_to_fqbin('Data') -> <<"Data">>; +msg_name_to_fqbin('TaskEventStream') -> <<"TaskEventStream">>; +msg_name_to_fqbin(E) -> error({gpb_error, {badmsg, E}}). + + +-spec fqbin_to_enum_name(_) -> no_return(). +fqbin_to_enum_name(E) -> error({gpb_error, {badenum, E}}). + + +-spec enum_name_to_fqbin(_) -> no_return(). +enum_name_to_fqbin(E) -> error({gpb_error, {badenum, E}}). + + +get_package_name() -> undefined. + + +%% Whether or not the message names +%% are prepended with package name or not. +uses_packages() -> false. + + +source_basename() -> "message.proto". + + +%% Retrieve all proto file names, also imported ones. +%% The order is top-down. The first element is always the main +%% source file. The files are returned with extension, +%% see get_all_proto_names/0 for a version that returns +%% the basenames sans extension +get_all_source_basenames() -> ["message.proto"]. + + +%% Retrieve all proto file names, also imported ones. +%% The order is top-down. The first element is always the main +%% source file. The files are returned sans .proto extension, +%% to make it easier to use them with the various get_xyz_containment +%% functions. +get_all_proto_names() -> ["message"]. + + +get_msg_containment("message") -> + ['AuthReply', + 'AuthRequest', + 'CastFrame', + 'Command', + 'ContainerDeployParams', + 'ContainerRef', + 'ContainerRequest', + 'ContainerRequest.Config', + 'ContainerRequest.Deploy', + 'ContainerRequest.Kill', + 'ContainerRequest.List', + 'ContainerRequest.Remove', + 'ContainerRequest.Start', + 'ContainerRequest.Stop', + 'ContainerSpec', + 'Data', + 'DeviceMapping', + 'Healthcheck', + 'PortExpose', + 'Pub', + 'RequestFrame', + 'ResourceLimits', + 'ResponseFrame', + 'RestartPolicy', + 'RpcReply', + 'RpcReply.RpcError', + 'RpcReply.RpcResult', + 'RpcRequest', + 'TaskEventStream', + 'TmpfsMount', + 'Ulimit', + 'VolumeBind']; +get_msg_containment(P) -> error({gpb_error, {badproto, P}}). + + +get_pkg_containment("message") -> undefined; +get_pkg_containment(P) -> error({gpb_error, {badproto, P}}). + + +get_service_containment("message") -> []; +get_service_containment(P) -> error({gpb_error, {badproto, P}}). + + +get_rpc_containment("message") -> []; +get_rpc_containment(P) -> error({gpb_error, {badproto, P}}). + + +get_enum_containment("message") -> []; +get_enum_containment(P) -> error({gpb_error, {badproto, P}}). + + +get_proto_by_msg_name_as_fqbin(<<"ContainerRequest.Stop">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"Data">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"RpcReply.RpcError">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"Pub">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"ResourceLimits">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"ContainerSpec">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"ContainerDeployParams">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"VolumeBind">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"Ulimit">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"TmpfsMount">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"RpcRequest">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"RpcReply.RpcResult">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"ContainerRequest.Start">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"ContainerRequest.List">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"ContainerRequest">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"Command">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"AuthRequest">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"ResponseFrame">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"RequestFrame">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"PortExpose">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"ContainerRequest.Remove">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"CastFrame">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"ContainerRef">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"DeviceMapping">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"ContainerRequest.Config">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"RpcReply">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"RestartPolicy">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"ContainerRequest.Deploy">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"AuthReply">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"Healthcheck">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"ContainerRequest.Kill">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"TaskEventStream">>) -> "message"; +get_proto_by_msg_name_as_fqbin(E) -> error({gpb_error, {badmsg, E}}). + + +-spec get_proto_by_service_name_as_fqbin(_) -> no_return(). +get_proto_by_service_name_as_fqbin(E) -> error({gpb_error, {badservice, E}}). + + +-spec get_proto_by_enum_name_as_fqbin(_) -> no_return(). +get_proto_by_enum_name_as_fqbin(E) -> error({gpb_error, {badenum, E}}). + + +-spec get_protos_by_pkg_name_as_fqbin(_) -> no_return(). +get_protos_by_pkg_name_as_fqbin(E) -> error({gpb_error, {badpkg, E}}). + + + +gpb_version_as_string() -> + "4.21.7". + +gpb_version_as_list() -> + [4,21,7]. + +gpb_version_source() -> + "file".