Packages
BETA support for interacting with a NATS streaming server
Retired package: Renamed - Merged into the main nats.ex (gnat) library. Use Gnat.Jetstream from the :gnat package instead.
Current section
Files
Jump to
Current section
Files
lib/nats/streaming/protocol.proto.ex
# based on https://github.com/nats-io/stan.go/blob/c15b0a21309c2f183a4bd36d9052bf7ee3d817ed/pb/protocol.proto
# version 0.6.0 of stan.go
# Generated using https://github.com/tony612/protobuf-elixir#generate-elixir-code and then changed the namespace from Pb.* to Nats.Streaming.Protocol.*
# version 0.7.1 of protobuf
defmodule Nats.Streaming.Protocol.StartPosition do
@moduledoc false
use Protobuf, enum: true, syntax: :proto3
@type t :: integer | :NewOnly | :LastReceived | :TimeDeltaStart | :SequenceStart | :First
field(:NewOnly, 0)
field(:LastReceived, 1)
field(:TimeDeltaStart, 2)
field(:SequenceStart, 3)
field(:First, 4)
end
defmodule Nats.Streaming.Protocol.PubMsg do
@moduledoc false
use Protobuf, syntax: :proto3
@type t :: %__MODULE__{
clientID: String.t(),
guid: String.t(),
subject: String.t(),
reply: String.t(),
data: binary,
connID: binary,
sha256: binary
}
defstruct [:clientID, :guid, :subject, :reply, :data, :connID, :sha256]
field(:clientID, 1, type: :string)
field(:guid, 2, type: :string)
field(:subject, 3, type: :string)
field(:reply, 4, type: :string)
field(:data, 5, type: :bytes)
field(:connID, 6, type: :bytes)
field(:sha256, 10, type: :bytes)
end
defmodule Nats.Streaming.Protocol.PubAck do
@moduledoc false
use Protobuf, syntax: :proto3
@type t :: %__MODULE__{
guid: String.t(),
error: String.t()
}
defstruct [:guid, :error]
field(:guid, 1, type: :string)
field(:error, 2, type: :string)
end
defmodule Nats.Streaming.Protocol.MsgProto do
@moduledoc false
use Protobuf, syntax: :proto3
@type t :: %__MODULE__{
sequence: non_neg_integer,
subject: String.t(),
reply: String.t(),
data: binary,
timestamp: integer,
redelivered: boolean,
redeliveryCount: non_neg_integer,
CRC32: non_neg_integer
}
defstruct [
:sequence,
:subject,
:reply,
:data,
:timestamp,
:redelivered,
:redeliveryCount,
:CRC32
]
field(:sequence, 1, type: :uint64)
field(:subject, 2, type: :string)
field(:reply, 3, type: :string)
field(:data, 4, type: :bytes)
field(:timestamp, 5, type: :int64)
field(:redelivered, 6, type: :bool)
field(:redeliveryCount, 7, type: :uint32)
field(:CRC32, 10, type: :uint32)
end
defmodule Nats.Streaming.Protocol.Ack do
@moduledoc false
use Protobuf, syntax: :proto3
@type t :: %__MODULE__{
subject: String.t(),
sequence: non_neg_integer
}
defstruct [:subject, :sequence]
field(:subject, 1, type: :string)
field(:sequence, 2, type: :uint64)
end
defmodule Nats.Streaming.Protocol.ConnectRequest do
@moduledoc false
use Protobuf, syntax: :proto3
@type t :: %__MODULE__{
clientID: String.t(),
heartbeatInbox: String.t(),
protocol: integer,
connID: binary,
pingInterval: integer,
pingMaxOut: integer
}
defstruct [:clientID, :heartbeatInbox, :protocol, :connID, :pingInterval, :pingMaxOut]
field(:clientID, 1, type: :string)
field(:heartbeatInbox, 2, type: :string)
field(:protocol, 3, type: :int32)
field(:connID, 4, type: :bytes)
field(:pingInterval, 5, type: :int32)
field(:pingMaxOut, 6, type: :int32)
end
defmodule Nats.Streaming.Protocol.ConnectResponse do
@moduledoc false
use Protobuf, syntax: :proto3
@type t :: %__MODULE__{
pubPrefix: String.t(),
subRequests: String.t(),
unsubRequests: String.t(),
closeRequests: String.t(),
error: String.t(),
subCloseRequests: String.t(),
pingRequests: String.t(),
pingInterval: integer,
pingMaxOut: integer,
protocol: integer,
publicKey: String.t()
}
defstruct [
:pubPrefix,
:subRequests,
:unsubRequests,
:closeRequests,
:error,
:subCloseRequests,
:pingRequests,
:pingInterval,
:pingMaxOut,
:protocol,
:publicKey
]
field(:pubPrefix, 1, type: :string)
field(:subRequests, 2, type: :string)
field(:unsubRequests, 3, type: :string)
field(:closeRequests, 4, type: :string)
field(:error, 5, type: :string)
field(:subCloseRequests, 6, type: :string)
field(:pingRequests, 7, type: :string)
field(:pingInterval, 8, type: :int32)
field(:pingMaxOut, 9, type: :int32)
field(:protocol, 10, type: :int32)
field(:publicKey, 100, type: :string)
end
defmodule Nats.Streaming.Protocol.Ping do
@moduledoc false
use Protobuf, syntax: :proto3
@type t :: %__MODULE__{
connID: binary
}
defstruct [:connID]
field(:connID, 1, type: :bytes)
end
defmodule Nats.Streaming.Protocol.PingResponse do
@moduledoc false
use Protobuf, syntax: :proto3
@type t :: %__MODULE__{
error: String.t()
}
defstruct [:error]
field(:error, 1, type: :string)
end
defmodule Nats.Streaming.Protocol.SubscriptionRequest do
@moduledoc false
use Protobuf, syntax: :proto3
@type t :: %__MODULE__{
clientID: String.t(),
subject: String.t(),
qGroup: String.t(),
inbox: String.t(),
maxInFlight: integer,
ackWaitInSecs: integer,
durableName: String.t(),
startPosition: Nats.Streaming.Protocol.StartPosition.t(),
startSequence: non_neg_integer,
startTimeDelta: integer
}
defstruct [
:clientID,
:subject,
:qGroup,
:inbox,
:maxInFlight,
:ackWaitInSecs,
:durableName,
:startPosition,
:startSequence,
:startTimeDelta
]
field(:clientID, 1, type: :string)
field(:subject, 2, type: :string)
field(:qGroup, 3, type: :string)
field(:inbox, 4, type: :string)
field(:maxInFlight, 5, type: :int32)
field(:ackWaitInSecs, 6, type: :int32)
field(:durableName, 7, type: :string)
field(:startPosition, 10, type: Nats.Streaming.Protocol.StartPosition, enum: true)
field(:startSequence, 11, type: :uint64)
field(:startTimeDelta, 12, type: :int64)
end
defmodule Nats.Streaming.Protocol.SubscriptionResponse do
@moduledoc false
use Protobuf, syntax: :proto3
@type t :: %__MODULE__{
ackInbox: String.t(),
error: String.t()
}
defstruct [:ackInbox, :error]
field(:ackInbox, 2, type: :string)
field(:error, 3, type: :string)
end
defmodule Nats.Streaming.Protocol.UnsubscribeRequest do
@moduledoc false
use Protobuf, syntax: :proto3
@type t :: %__MODULE__{
clientID: String.t(),
subject: String.t(),
inbox: String.t(),
durableName: String.t()
}
defstruct [:clientID, :subject, :inbox, :durableName]
field(:clientID, 1, type: :string)
field(:subject, 2, type: :string)
field(:inbox, 3, type: :string)
field(:durableName, 4, type: :string)
end
defmodule Nats.Streaming.Protocol.CloseRequest do
@moduledoc false
use Protobuf, syntax: :proto3
@type t :: %__MODULE__{
clientID: String.t()
}
defstruct [:clientID]
field(:clientID, 1, type: :string)
end
defmodule Nats.Streaming.Protocol.CloseResponse do
@moduledoc false
use Protobuf, syntax: :proto3
@type t :: %__MODULE__{
error: String.t()
}
defstruct [:error]
field(:error, 1, type: :string)
end