// Code generated by protoc-gen-go. DO NOT EDIT.
// source: fuota/fuota.proto

package fuota

import (
	context "context"
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	duration "github.com/golang/protobuf/ptypes/duration"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type MulticastGroupType int32

const (
	// Class-B.
	MulticastGroupType_CLASS_B MulticastGroupType = 0
	// Class-C.
	MulticastGroupType_CLASS_C MulticastGroupType = 1
)

var MulticastGroupType_name = map[int32]string{
	0: "CLASS_B",
	1: "CLASS_C",
}

var MulticastGroupType_value = map[string]int32{
	"CLASS_B": 0,
	"CLASS_C": 1,
}

func (x MulticastGroupType) String() string {
	return proto.EnumName(MulticastGroupType_name, int32(x))
}

func (MulticastGroupType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_5169117df74b07cc, []int{0}
}

type RequestFragmentationSessionStatus int32

const (
	// Enqueue the fragmentation-session status request command directly after
	// enqueueing the fragmentation-session fragments. This is the recommended
	// option for Class-A devices as the status request will stay in the
	// downlink queue until the device sends its next uplink.
	RequestFragmentationSessionStatus_AFTER_FRAGMENT_ENQUEUE RequestFragmentationSessionStatus = 0
	// Enqueue the fragmentation-session status request after the multicast
	// session-timeout. This is the recommended option for Class-B and -C
	// devices as selecting AFTER_FRAGMENT_ENQUEUE will likely cause the NS
	// to schedule the downlink frame during the FUOTA multicast-session.
	RequestFragmentationSessionStatus_AFTER_SESSION_TIMEOUT RequestFragmentationSessionStatus = 1
	// Do not request the fragmentation-session status.
	RequestFragmentationSessionStatus_NO_REQUEST RequestFragmentationSessionStatus = 2
)

var RequestFragmentationSessionStatus_name = map[int32]string{
	0: "AFTER_FRAGMENT_ENQUEUE",
	1: "AFTER_SESSION_TIMEOUT",
	2: "NO_REQUEST",
}

var RequestFragmentationSessionStatus_value = map[string]int32{
	"AFTER_FRAGMENT_ENQUEUE": 0,
	"AFTER_SESSION_TIMEOUT":  1,
	"NO_REQUEST":             2,
}

func (x RequestFragmentationSessionStatus) String() string {
	return proto.EnumName(RequestFragmentationSessionStatus_name, int32(x))
}

func (RequestFragmentationSessionStatus) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_5169117df74b07cc, []int{1}
}

type DeploymentDevice struct {
	// DevEUI.
	DevEui []byte `protobuf:"bytes,1,opt,name=dev_eui,json=devEui,proto3" json:"dev_eui,omitempty"`
	// McRootKey.
	McRootKey            []byte   `protobuf:"bytes,2,opt,name=mc_root_key,json=mcRootKey,proto3" json:"mc_root_key,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeploymentDevice) Reset()         { *m = DeploymentDevice{} }
func (m *DeploymentDevice) String() string { return proto.CompactTextString(m) }
func (*DeploymentDevice) ProtoMessage()    {}
func (*DeploymentDevice) Descriptor() ([]byte, []int) {
	return fileDescriptor_5169117df74b07cc, []int{0}
}

func (m *DeploymentDevice) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeploymentDevice.Unmarshal(m, b)
}
func (m *DeploymentDevice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeploymentDevice.Marshal(b, m, deterministic)
}
func (m *DeploymentDevice) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeploymentDevice.Merge(m, src)
}
func (m *DeploymentDevice) XXX_Size() int {
	return xxx_messageInfo_DeploymentDevice.Size(m)
}
func (m *DeploymentDevice) XXX_DiscardUnknown() {
	xxx_messageInfo_DeploymentDevice.DiscardUnknown(m)
}

var xxx_messageInfo_DeploymentDevice proto.InternalMessageInfo

func (m *DeploymentDevice) GetDevEui() []byte {
	if m != nil {
		return m.DevEui
	}
	return nil
}

func (m *DeploymentDevice) GetMcRootKey() []byte {
	if m != nil {
		return m.McRootKey
	}
	return nil
}

type Deployment struct {
	// Application ID.
	ApplicationId int64 `protobuf:"varint,1,opt,name=application_id,json=applicationId,proto3" json:"application_id,omitempty"`
	// Devices to include in this deployment.
	Devices []*DeploymentDevice `protobuf:"bytes,2,rep,name=devices,proto3" json:"devices,omitempty"`
	// Multicast-group type.
	MulticastGroupType MulticastGroupType `protobuf:"varint,3,opt,name=multicast_group_type,json=multicastGroupType,proto3,enum=fuota.MulticastGroupType" json:"multicast_group_type,omitempty"`
	// Multicast data-rate.
	MulticastDr uint32 `protobuf:"varint,4,opt,name=multicast_dr,json=multicastDr,proto3" json:"multicast_dr,omitempty"`
	// Multicast ping-slot period (Class-B only).
	MulticastPingSlotPeriod uint32 `protobuf:"varint,5,opt,name=multicast_ping_slot_period,json=multicastPingSlotPeriod,proto3" json:"multicast_ping_slot_period,omitempty"`
	// Multicast frequency (Hz).
	MulticastFrequency uint32 `protobuf:"varint,6,opt,name=multicast_frequency,json=multicastFrequency,proto3" json:"multicast_frequency,omitempty"`
	// Multicast group ID.
	MulticastGroupId uint32 `protobuf:"varint,7,opt,name=multicast_group_id,json=multicastGroupId,proto3" json:"multicast_group_id,omitempty"`
	// Multicast timeout.
	// This defines the timeout of the multicast-session.
	// Please refer to the Remote Multicast Setup specification as this field
	// has a different meaning for Class-B and Class-C groups.
	MulticastTimeout uint32 `protobuf:"varint,8,opt,name=multicast_timeout,json=multicastTimeout,proto3" json:"multicast_timeout,omitempty"`
	// Unicast timeout.
	// Set this to the value in which you at least expect an uplink frame from
	// the device. The FUOTA server will wait for the given time before
	// attempting a retry or continuing with the next step.
	UnicastTimeout *duration.Duration `protobuf:"bytes,9,opt,name=unicast_timeout,json=unicastTimeout,proto3" json:"unicast_timeout,omitempty"`
	// Unicast attempt count.
	// The number of attempts before considering an unicast command
	// to be failed.
	UnicastAttemptCount uint32 `protobuf:"varint,10,opt,name=unicast_attempt_count,json=unicastAttemptCount,proto3" json:"unicast_attempt_count,omitempty"`
	// FragmentationFragmentSize.
	// This defines the size of each payload fragment. Please refer to the
	// Regional Parameters specification for the maximum payload sizes
	// per data-rate and region.
	FragmentationFragmentSize uint32 `protobuf:"varint,11,opt,name=fragmentation_fragment_size,json=fragmentationFragmentSize,proto3" json:"fragmentation_fragment_size,omitempty"`
	// Payload.
	Payload []byte `protobuf:"bytes,12,opt,name=payload,proto3" json:"payload,omitempty"`
	// Fragmentation redundancy.
	// The number represents the additional redundant frames to send.
	FragmentationRedundancy uint32 `protobuf:"varint,13,opt,name=fragmentation_redundancy,json=fragmentationRedundancy,proto3" json:"fragmentation_redundancy,omitempty"`
	// Fragmentation session index.
	FragmentationSessionIndex uint32 `protobuf:"varint,14,opt,name=fragmentation_session_index,json=fragmentationSessionIndex,proto3" json:"fragmentation_session_index,omitempty"`
	// Fragmentation matrix.
	FragmentationMatrix uint32 `protobuf:"varint,15,opt,name=fragmentation_matrix,json=fragmentationMatrix,proto3" json:"fragmentation_matrix,omitempty"`
	// Block ack delay.
	FragmentationBlockAckDelay uint32 `protobuf:"varint,16,opt,name=fragmentation_block_ack_delay,json=fragmentationBlockAckDelay,proto3" json:"fragmentation_block_ack_delay,omitempty"`
	// Descriptor (4 bytes).
	FragmentationDescriptor []byte `protobuf:"bytes,17,opt,name=fragmentation_descriptor,json=fragmentationDescriptor,proto3" json:"fragmentation_descriptor,omitempty"`
	// Request fragmentation session status.
	RequestFragmentationSessionStatus RequestFragmentationSessionStatus `protobuf:"varint,18,opt,name=request_fragmentation_session_status,json=requestFragmentationSessionStatus,proto3,enum=fuota.RequestFragmentationSessionStatus" json:"request_fragmentation_session_status,omitempty"`
	XXX_NoUnkeyedLiteral              struct{}                          `json:"-"`
	XXX_unrecognized                  []byte                            `json:"-"`
	XXX_sizecache                     int32                             `json:"-"`
}

func (m *Deployment) Reset()         { *m = Deployment{} }
func (m *Deployment) String() string { return proto.CompactTextString(m) }
func (*Deployment) ProtoMessage()    {}
func (*Deployment) Descriptor() ([]byte, []int) {
	return fileDescriptor_5169117df74b07cc, []int{1}
}

func (m *Deployment) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Deployment.Unmarshal(m, b)
}
func (m *Deployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Deployment.Marshal(b, m, deterministic)
}
func (m *Deployment) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Deployment.Merge(m, src)
}
func (m *Deployment) XXX_Size() int {
	return xxx_messageInfo_Deployment.Size(m)
}
func (m *Deployment) XXX_DiscardUnknown() {
	xxx_messageInfo_Deployment.DiscardUnknown(m)
}

var xxx_messageInfo_Deployment proto.InternalMessageInfo

func (m *Deployment) GetApplicationId() int64 {
	if m != nil {
		return m.ApplicationId
	}
	return 0
}

func (m *Deployment) GetDevices() []*DeploymentDevice {
	if m != nil {
		return m.Devices
	}
	return nil
}

func (m *Deployment) GetMulticastGroupType() MulticastGroupType {
	if m != nil {
		return m.MulticastGroupType
	}
	return MulticastGroupType_CLASS_B
}

func (m *Deployment) GetMulticastDr() uint32 {
	if m != nil {
		return m.MulticastDr
	}
	return 0
}

func (m *Deployment) GetMulticastPingSlotPeriod() uint32 {
	if m != nil {
		return m.MulticastPingSlotPeriod
	}
	return 0
}

func (m *Deployment) GetMulticastFrequency() uint32 {
	if m != nil {
		return m.MulticastFrequency
	}
	return 0
}

func (m *Deployment) GetMulticastGroupId() uint32 {
	if m != nil {
		return m.MulticastGroupId
	}
	return 0
}

func (m *Deployment) GetMulticastTimeout() uint32 {
	if m != nil {
		return m.MulticastTimeout
	}
	return 0
}

func (m *Deployment) GetUnicastTimeout() *duration.Duration {
	if m != nil {
		return m.UnicastTimeout
	}
	return nil
}

func (m *Deployment) GetUnicastAttemptCount() uint32 {
	if m != nil {
		return m.UnicastAttemptCount
	}
	return 0
}

func (m *Deployment) GetFragmentationFragmentSize() uint32 {
	if m != nil {
		return m.FragmentationFragmentSize
	}
	return 0
}

func (m *Deployment) GetPayload() []byte {
	if m != nil {
		return m.Payload
	}
	return nil
}

func (m *Deployment) GetFragmentationRedundancy() uint32 {
	if m != nil {
		return m.FragmentationRedundancy
	}
	return 0
}

func (m *Deployment) GetFragmentationSessionIndex() uint32 {
	if m != nil {
		return m.FragmentationSessionIndex
	}
	return 0
}

func (m *Deployment) GetFragmentationMatrix() uint32 {
	if m != nil {
		return m.FragmentationMatrix
	}
	return 0
}

func (m *Deployment) GetFragmentationBlockAckDelay() uint32 {
	if m != nil {
		return m.FragmentationBlockAckDelay
	}
	return 0
}

func (m *Deployment) GetFragmentationDescriptor() []byte {
	if m != nil {
		return m.FragmentationDescriptor
	}
	return nil
}

func (m *Deployment) GetRequestFragmentationSessionStatus() RequestFragmentationSessionStatus {
	if m != nil {
		return m.RequestFragmentationSessionStatus
	}
	return RequestFragmentationSessionStatus_AFTER_FRAGMENT_ENQUEUE
}

type CreateDeploymentRequest struct {
	// Deployment.
	Deployment           *Deployment `protobuf:"bytes,1,opt,name=deployment,proto3" json:"deployment,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *CreateDeploymentRequest) Reset()         { *m = CreateDeploymentRequest{} }
func (m *CreateDeploymentRequest) String() string { return proto.CompactTextString(m) }
func (*CreateDeploymentRequest) ProtoMessage()    {}
func (*CreateDeploymentRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_5169117df74b07cc, []int{2}
}

func (m *CreateDeploymentRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateDeploymentRequest.Unmarshal(m, b)
}
func (m *CreateDeploymentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateDeploymentRequest.Marshal(b, m, deterministic)
}
func (m *CreateDeploymentRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateDeploymentRequest.Merge(m, src)
}
func (m *CreateDeploymentRequest) XXX_Size() int {
	return xxx_messageInfo_CreateDeploymentRequest.Size(m)
}
func (m *CreateDeploymentRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateDeploymentRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreateDeploymentRequest proto.InternalMessageInfo

func (m *CreateDeploymentRequest) GetDeployment() *Deployment {
	if m != nil {
		return m.Deployment
	}
	return nil
}

type CreateDeploymentResponse struct {
	// ID of the created deployment.
	Id                   []byte   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateDeploymentResponse) Reset()         { *m = CreateDeploymentResponse{} }
func (m *CreateDeploymentResponse) String() string { return proto.CompactTextString(m) }
func (*CreateDeploymentResponse) ProtoMessage()    {}
func (*CreateDeploymentResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_5169117df74b07cc, []int{3}
}

func (m *CreateDeploymentResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateDeploymentResponse.Unmarshal(m, b)
}
func (m *CreateDeploymentResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateDeploymentResponse.Marshal(b, m, deterministic)
}
func (m *CreateDeploymentResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateDeploymentResponse.Merge(m, src)
}
func (m *CreateDeploymentResponse) XXX_Size() int {
	return xxx_messageInfo_CreateDeploymentResponse.Size(m)
}
func (m *CreateDeploymentResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateDeploymentResponse.DiscardUnknown(m)
}

var xxx_messageInfo_CreateDeploymentResponse proto.InternalMessageInfo

func (m *CreateDeploymentResponse) GetId() []byte {
	if m != nil {
		return m.Id
	}
	return nil
}

type GetDeploymentStatusRequest struct {
	// Deployment ID.
	Id                   []byte   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetDeploymentStatusRequest) Reset()         { *m = GetDeploymentStatusRequest{} }
func (m *GetDeploymentStatusRequest) String() string { return proto.CompactTextString(m) }
func (*GetDeploymentStatusRequest) ProtoMessage()    {}
func (*GetDeploymentStatusRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_5169117df74b07cc, []int{4}
}

func (m *GetDeploymentStatusRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetDeploymentStatusRequest.Unmarshal(m, b)
}
func (m *GetDeploymentStatusRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetDeploymentStatusRequest.Marshal(b, m, deterministic)
}
func (m *GetDeploymentStatusRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetDeploymentStatusRequest.Merge(m, src)
}
func (m *GetDeploymentStatusRequest) XXX_Size() int {
	return xxx_messageInfo_GetDeploymentStatusRequest.Size(m)
}
func (m *GetDeploymentStatusRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetDeploymentStatusRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetDeploymentStatusRequest proto.InternalMessageInfo

func (m *GetDeploymentStatusRequest) GetId() []byte {
	if m != nil {
		return m.Id
	}
	return nil
}

type DeploymentDeviceStatus struct {
	// DevEUI.
	DevEui []byte `protobuf:"bytes,1,opt,name=dev_eui,json=devEui,proto3" json:"dev_eui,omitempty"`
	// Created at.
	CreatedAt *timestamp.Timestamp `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Updated at.
	UpdatedAt *timestamp.Timestamp `protobuf:"bytes,3,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	// Multicast-group setup completed at.
	McGroupSetupCompletedAt *timestamp.Timestamp `protobuf:"bytes,4,opt,name=mc_group_setup_completed_at,json=mcGroupSetupCompletedAt,proto3" json:"mc_group_setup_completed_at,omitempty"`
	// Multicast-session completed at.
	McSessionCompletedAt *timestamp.Timestamp `protobuf:"bytes,5,opt,name=mc_session_completed_at,json=mcSessionCompletedAt,proto3" json:"mc_session_completed_at,omitempty"`
	// Fragmentation session setup completed at.
	FragSessionSetupCompletedAt *timestamp.Timestamp `protobuf:"bytes,6,opt,name=frag_session_setup_completed_at,json=fragSessionSetupCompletedAt,proto3" json:"frag_session_setup_completed_at,omitempty"`
	// Fragmentation status completed at.
	FragStatusCompletedAt *timestamp.Timestamp `protobuf:"bytes,7,opt,name=frag_status_completed_at,json=fragStatusCompletedAt,proto3" json:"frag_status_completed_at,omitempty"`
	XXX_NoUnkeyedLiteral  struct{}             `json:"-"`
	XXX_unrecognized      []byte               `json:"-"`
	XXX_sizecache         int32                `json:"-"`
}

func (m *DeploymentDeviceStatus) Reset()         { *m = DeploymentDeviceStatus{} }
func (m *DeploymentDeviceStatus) String() string { return proto.CompactTextString(m) }
func (*DeploymentDeviceStatus) ProtoMessage()    {}
func (*DeploymentDeviceStatus) Descriptor() ([]byte, []int) {
	return fileDescriptor_5169117df74b07cc, []int{5}
}

func (m *DeploymentDeviceStatus) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeploymentDeviceStatus.Unmarshal(m, b)
}
func (m *DeploymentDeviceStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeploymentDeviceStatus.Marshal(b, m, deterministic)
}
func (m *DeploymentDeviceStatus) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeploymentDeviceStatus.Merge(m, src)
}
func (m *DeploymentDeviceStatus) XXX_Size() int {
	return xxx_messageInfo_DeploymentDeviceStatus.Size(m)
}
func (m *DeploymentDeviceStatus) XXX_DiscardUnknown() {
	xxx_messageInfo_DeploymentDeviceStatus.DiscardUnknown(m)
}

var xxx_messageInfo_DeploymentDeviceStatus proto.InternalMessageInfo

func (m *DeploymentDeviceStatus) GetDevEui() []byte {
	if m != nil {
		return m.DevEui
	}
	return nil
}

func (m *DeploymentDeviceStatus) GetCreatedAt() *timestamp.Timestamp {
	if m != nil {
		return m.CreatedAt
	}
	return nil
}

func (m *DeploymentDeviceStatus) GetUpdatedAt() *timestamp.Timestamp {
	if m != nil {
		return m.UpdatedAt
	}
	return nil
}

func (m *DeploymentDeviceStatus) GetMcGroupSetupCompletedAt() *timestamp.Timestamp {
	if m != nil {
		return m.McGroupSetupCompletedAt
	}
	return nil
}

func (m *DeploymentDeviceStatus) GetMcSessionCompletedAt() *timestamp.Timestamp {
	if m != nil {
		return m.McSessionCompletedAt
	}
	return nil
}

func (m *DeploymentDeviceStatus) GetFragSessionSetupCompletedAt() *timestamp.Timestamp {
	if m != nil {
		return m.FragSessionSetupCompletedAt
	}
	return nil
}

func (m *DeploymentDeviceStatus) GetFragStatusCompletedAt() *timestamp.Timestamp {
	if m != nil {
		return m.FragStatusCompletedAt
	}
	return nil
}

type GetDeploymentStatusResponse struct {
	// Created at.
	CreatedAt *timestamp.Timestamp `protobuf:"bytes,1,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Updated at.
	UpdatedAt *timestamp.Timestamp `protobuf:"bytes,2,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	// Multicast-group setup completed at.
	McGroupSetupCompletedAt *timestamp.Timestamp `protobuf:"bytes,3,opt,name=mc_group_setup_completed_at,json=mcGroupSetupCompletedAt,proto3" json:"mc_group_setup_completed_at,omitempty"`
	// Multicast-session completed at.
	McSessionCompletedAt *timestamp.Timestamp `protobuf:"bytes,4,opt,name=mc_session_completed_at,json=mcSessionCompletedAt,proto3" json:"mc_session_completed_at,omitempty"`
	// Fragmentation session setup completed at.
	FragSessionSetupCompletedAt *timestamp.Timestamp `protobuf:"bytes,5,opt,name=frag_session_setup_completed_at,json=fragSessionSetupCompletedAt,proto3" json:"frag_session_setup_completed_at,omitempty"`
	// Enqueue completed at.
	EnqueueCompletedAt *timestamp.Timestamp `protobuf:"bytes,6,opt,name=enqueue_completed_at,json=enqueueCompletedAt,proto3" json:"enqueue_completed_at,omitempty"`
	// Fragmentation status completed at.
	FragStatusCompletedAt *timestamp.Timestamp `protobuf:"bytes,7,opt,name=frag_status_completed_at,json=fragStatusCompletedAt,proto3" json:"frag_status_completed_at,omitempty"`
	// Per device status.
	DeviceStatus         []*DeploymentDeviceStatus `protobuf:"bytes,8,rep,name=device_status,json=deviceStatus,proto3" json:"device_status,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
	XXX_unrecognized     []byte                    `json:"-"`
	XXX_sizecache        int32                     `json:"-"`
}

func (m *GetDeploymentStatusResponse) Reset()         { *m = GetDeploymentStatusResponse{} }
func (m *GetDeploymentStatusResponse) String() string { return proto.CompactTextString(m) }
func (*GetDeploymentStatusResponse) ProtoMessage()    {}
func (*GetDeploymentStatusResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_5169117df74b07cc, []int{6}
}

func (m *GetDeploymentStatusResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetDeploymentStatusResponse.Unmarshal(m, b)
}
func (m *GetDeploymentStatusResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetDeploymentStatusResponse.Marshal(b, m, deterministic)
}
func (m *GetDeploymentStatusResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetDeploymentStatusResponse.Merge(m, src)
}
func (m *GetDeploymentStatusResponse) XXX_Size() int {
	return xxx_messageInfo_GetDeploymentStatusResponse.Size(m)
}
func (m *GetDeploymentStatusResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_GetDeploymentStatusResponse.DiscardUnknown(m)
}

var xxx_messageInfo_GetDeploymentStatusResponse proto.InternalMessageInfo

func (m *GetDeploymentStatusResponse) GetCreatedAt() *timestamp.Timestamp {
	if m != nil {
		return m.CreatedAt
	}
	return nil
}

func (m *GetDeploymentStatusResponse) GetUpdatedAt() *timestamp.Timestamp {
	if m != nil {
		return m.UpdatedAt
	}
	return nil
}

func (m *GetDeploymentStatusResponse) GetMcGroupSetupCompletedAt() *timestamp.Timestamp {
	if m != nil {
		return m.McGroupSetupCompletedAt
	}
	return nil
}

func (m *GetDeploymentStatusResponse) GetMcSessionCompletedAt() *timestamp.Timestamp {
	if m != nil {
		return m.McSessionCompletedAt
	}
	return nil
}

func (m *GetDeploymentStatusResponse) GetFragSessionSetupCompletedAt() *timestamp.Timestamp {
	if m != nil {
		return m.FragSessionSetupCompletedAt
	}
	return nil
}

func (m *GetDeploymentStatusResponse) GetEnqueueCompletedAt() *timestamp.Timestamp {
	if m != nil {
		return m.EnqueueCompletedAt
	}
	return nil
}

func (m *GetDeploymentStatusResponse) GetFragStatusCompletedAt() *timestamp.Timestamp {
	if m != nil {
		return m.FragStatusCompletedAt
	}
	return nil
}

func (m *GetDeploymentStatusResponse) GetDeviceStatus() []*DeploymentDeviceStatus {
	if m != nil {
		return m.DeviceStatus
	}
	return nil
}

type GetDeploymentDeviceLogsRequest struct {
	// Deployment ID.
	DeploymentId []byte `protobuf:"bytes,1,opt,name=deployment_id,json=deploymentId,proto3" json:"deployment_id,omitempty"`
	// DevEUI.
	DevEui               []byte   `protobuf:"bytes,2,opt,name=dev_eui,json=devEui,proto3" json:"dev_eui,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetDeploymentDeviceLogsRequest) Reset()         { *m = GetDeploymentDeviceLogsRequest{} }
func (m *GetDeploymentDeviceLogsRequest) String() string { return proto.CompactTextString(m) }
func (*GetDeploymentDeviceLogsRequest) ProtoMessage()    {}
func (*GetDeploymentDeviceLogsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_5169117df74b07cc, []int{7}
}

func (m *GetDeploymentDeviceLogsRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetDeploymentDeviceLogsRequest.Unmarshal(m, b)
}
func (m *GetDeploymentDeviceLogsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetDeploymentDeviceLogsRequest.Marshal(b, m, deterministic)
}
func (m *GetDeploymentDeviceLogsRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetDeploymentDeviceLogsRequest.Merge(m, src)
}
func (m *GetDeploymentDeviceLogsRequest) XXX_Size() int {
	return xxx_messageInfo_GetDeploymentDeviceLogsRequest.Size(m)
}
func (m *GetDeploymentDeviceLogsRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetDeploymentDeviceLogsRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetDeploymentDeviceLogsRequest proto.InternalMessageInfo

func (m *GetDeploymentDeviceLogsRequest) GetDeploymentId() []byte {
	if m != nil {
		return m.DeploymentId
	}
	return nil
}

func (m *GetDeploymentDeviceLogsRequest) GetDevEui() []byte {
	if m != nil {
		return m.DevEui
	}
	return nil
}

type DeploymentDeviceLog struct {
	// Created at.
	CreatedAt *timestamp.Timestamp `protobuf:"bytes,1,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// FPort.
	FPort uint32 `protobuf:"varint,2,opt,name=f_port,json=fPort,proto3" json:"f_port,omitempty"`
	// Command.
	Command string `protobuf:"bytes,3,opt,name=command,proto3" json:"command,omitempty"`
	// Fields.
	Fields               map[string]string `protobuf:"bytes,4,rep,name=fields,proto3" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *DeploymentDeviceLog) Reset()         { *m = DeploymentDeviceLog{} }
func (m *DeploymentDeviceLog) String() string { return proto.CompactTextString(m) }
func (*DeploymentDeviceLog) ProtoMessage()    {}
func (*DeploymentDeviceLog) Descriptor() ([]byte, []int) {
	return fileDescriptor_5169117df74b07cc, []int{8}
}

func (m *DeploymentDeviceLog) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeploymentDeviceLog.Unmarshal(m, b)
}
func (m *DeploymentDeviceLog) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeploymentDeviceLog.Marshal(b, m, deterministic)
}
func (m *DeploymentDeviceLog) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeploymentDeviceLog.Merge(m, src)
}
func (m *DeploymentDeviceLog) XXX_Size() int {
	return xxx_messageInfo_DeploymentDeviceLog.Size(m)
}
func (m *DeploymentDeviceLog) XXX_DiscardUnknown() {
	xxx_messageInfo_DeploymentDeviceLog.DiscardUnknown(m)
}

var xxx_messageInfo_DeploymentDeviceLog proto.InternalMessageInfo

func (m *DeploymentDeviceLog) GetCreatedAt() *timestamp.Timestamp {
	if m != nil {
		return m.CreatedAt
	}
	return nil
}

func (m *DeploymentDeviceLog) GetFPort() uint32 {
	if m != nil {
		return m.FPort
	}
	return 0
}

func (m *DeploymentDeviceLog) GetCommand() string {
	if m != nil {
		return m.Command
	}
	return ""
}

func (m *DeploymentDeviceLog) GetFields() map[string]string {
	if m != nil {
		return m.Fields
	}
	return nil
}

type GetDeploymentDeviceLogsResponse struct {
	Logs                 []*DeploymentDeviceLog `protobuf:"bytes,1,rep,name=logs,proto3" json:"logs,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *GetDeploymentDeviceLogsResponse) Reset()         { *m = GetDeploymentDeviceLogsResponse{} }
func (m *GetDeploymentDeviceLogsResponse) String() string { return proto.CompactTextString(m) }
func (*GetDeploymentDeviceLogsResponse) ProtoMessage()    {}
func (*GetDeploymentDeviceLogsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_5169117df74b07cc, []int{9}
}

func (m *GetDeploymentDeviceLogsResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetDeploymentDeviceLogsResponse.Unmarshal(m, b)
}
func (m *GetDeploymentDeviceLogsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetDeploymentDeviceLogsResponse.Marshal(b, m, deterministic)
}
func (m *GetDeploymentDeviceLogsResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetDeploymentDeviceLogsResponse.Merge(m, src)
}
func (m *GetDeploymentDeviceLogsResponse) XXX_Size() int {
	return xxx_messageInfo_GetDeploymentDeviceLogsResponse.Size(m)
}
func (m *GetDeploymentDeviceLogsResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_GetDeploymentDeviceLogsResponse.DiscardUnknown(m)
}

var xxx_messageInfo_GetDeploymentDeviceLogsResponse proto.InternalMessageInfo

func (m *GetDeploymentDeviceLogsResponse) GetLogs() []*DeploymentDeviceLog {
	if m != nil {
		return m.Logs
	}
	return nil
}

func init() {
	proto.RegisterEnum("fuota.MulticastGroupType", MulticastGroupType_name, MulticastGroupType_value)
	proto.RegisterEnum("fuota.RequestFragmentationSessionStatus", RequestFragmentationSessionStatus_name, RequestFragmentationSessionStatus_value)
	proto.RegisterType((*DeploymentDevice)(nil), "fuota.DeploymentDevice")
	proto.RegisterType((*Deployment)(nil), "fuota.Deployment")
	proto.RegisterType((*CreateDeploymentRequest)(nil), "fuota.CreateDeploymentRequest")
	proto.RegisterType((*CreateDeploymentResponse)(nil), "fuota.CreateDeploymentResponse")
	proto.RegisterType((*GetDeploymentStatusRequest)(nil), "fuota.GetDeploymentStatusRequest")
	proto.RegisterType((*DeploymentDeviceStatus)(nil), "fuota.DeploymentDeviceStatus")
	proto.RegisterType((*GetDeploymentStatusResponse)(nil), "fuota.GetDeploymentStatusResponse")
	proto.RegisterType((*GetDeploymentDeviceLogsRequest)(nil), "fuota.GetDeploymentDeviceLogsRequest")
	proto.RegisterType((*DeploymentDeviceLog)(nil), "fuota.DeploymentDeviceLog")
	proto.RegisterMapType((map[string]string)(nil), "fuota.DeploymentDeviceLog.FieldsEntry")
	proto.RegisterType((*GetDeploymentDeviceLogsResponse)(nil), "fuota.GetDeploymentDeviceLogsResponse")
}

func init() {
	proto.RegisterFile("fuota/fuota.proto", fileDescriptor_5169117df74b07cc)
}

var fileDescriptor_5169117df74b07cc = []byte{
	// 1241 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xdd, 0x72, 0xda, 0x46,
	0x14, 0x8e, 0x30, 0xe0, 0xf8, 0x80, 0x09, 0x5e, 0xdb, 0x41, 0x56, 0x26, 0xfe, 0xa1, 0x4d, 0x86,
	0x49, 0x13, 0x98, 0x90, 0x9b, 0xa6, 0x9d, 0xc9, 0x0c, 0x36, 0x90, 0x32, 0xf1, 0x4f, 0x2c, 0xc1,
	0x4c, 0xa7, 0x17, 0x51, 0x65, 0x69, 0x21, 0x1b, 0x4b, 0x5a, 0x45, 0x5a, 0x31, 0x21, 0x6f, 0xd0,
	0xe9, 0x0b, 0xf4, 0x4d, 0xfa, 0x72, 0xbd, 0xe8, 0x68, 0x25, 0x21, 0xc4, 0x4f, 0x99, 0x36, 0xcd,
	0x0d, 0xe3, 0xdd, 0xf3, 0x7d, 0xdf, 0x9e, 0xdd, 0xf3, 0xed, 0xd1, 0x1a, 0x76, 0x86, 0x3e, 0x65,
	0x5a, 0x83, 0xff, 0xd6, 0x1d, 0x97, 0x32, 0x8a, 0x72, 0x7c, 0x20, 0x1d, 0x8d, 0x28, 0x1d, 0x99,
	0xb8, 0xc1, 0x27, 0x6f, 0xfc, 0x61, 0x83, 0x11, 0x0b, 0x7b, 0x4c, 0xb3, 0x9c, 0x10, 0x27, 0x1d,
	0xce, 0x03, 0x0c, 0xdf, 0xd5, 0x18, 0xa1, 0x76, 0x18, 0xaf, 0xbe, 0x81, 0x72, 0x1b, 0x3b, 0x26,
	0x9d, 0x58, 0xd8, 0x66, 0x6d, 0x3c, 0x26, 0x3a, 0x46, 0x15, 0xd8, 0x34, 0xf0, 0x58, 0xc5, 0x3e,
	0x11, 0x85, 0x63, 0xa1, 0x56, 0x94, 0xf3, 0x06, 0x1e, 0x77, 0x7c, 0x82, 0x0e, 0xa1, 0x60, 0xe9,
	0xaa, 0x4b, 0x29, 0x53, 0x6f, 0xf1, 0x44, 0xcc, 0xf0, 0xe0, 0x96, 0xa5, 0xcb, 0x94, 0xb2, 0x37,
	0x78, 0x52, 0xfd, 0xe3, 0x2e, 0x40, 0xa2, 0x86, 0x1e, 0x41, 0x49, 0x73, 0x1c, 0x93, 0xe8, 0x7c,
	0x41, 0x95, 0x18, 0x5c, 0x6e, 0x43, 0xde, 0x9e, 0x99, 0xed, 0x19, 0xe8, 0x39, 0x5f, 0x8e, 0xe8,
	0xd8, 0x13, 0x33, 0xc7, 0x1b, 0xb5, 0x42, 0xb3, 0x52, 0x0f, 0x77, 0x3a, 0x9f, 0x98, 0x1c, 0xe3,
	0xd0, 0x1b, 0xd8, 0xb3, 0x7c, 0x93, 0x11, 0x5d, 0xf3, 0x98, 0x3a, 0x72, 0xa9, 0xef, 0xa8, 0x6c,
	0xe2, 0x60, 0x71, 0xe3, 0x58, 0xa8, 0x95, 0x9a, 0x07, 0x11, 0xff, 0x22, 0x86, 0xbc, 0x0e, 0x10,
	0xfd, 0x89, 0x83, 0x65, 0x64, 0x2d, 0xcc, 0xa1, 0x13, 0x28, 0x26, 0x62, 0x86, 0x2b, 0x66, 0x8f,
	0x85, 0xda, 0xb6, 0x5c, 0x98, 0xce, 0xb5, 0x5d, 0xf4, 0x23, 0x48, 0x09, 0xc4, 0x21, 0xf6, 0x48,
	0xf5, 0x4c, 0xca, 0x54, 0x07, 0xbb, 0x84, 0x1a, 0x62, 0x8e, 0x13, 0x2a, 0x53, 0xc4, 0x5b, 0x62,
	0x8f, 0x14, 0x93, 0xb2, 0xb7, 0x3c, 0x8c, 0x1a, 0xb0, 0x9b, 0x90, 0x87, 0x2e, 0xfe, 0xe8, 0x63,
	0x5b, 0x9f, 0x88, 0x79, 0xce, 0x4a, 0x12, 0xea, 0xc6, 0x11, 0xf4, 0x14, 0xd0, 0xfc, 0xee, 0x88,
	0x21, 0x6e, 0x72, 0x7c, 0x39, 0xbd, 0x81, 0x9e, 0x81, 0xbe, 0x83, 0x9d, 0x04, 0x1d, 0x94, 0x9f,
	0xfa, 0x4c, 0xbc, 0x3b, 0x07, 0xee, 0x87, 0xf3, 0xe8, 0x14, 0xee, 0xf9, 0x76, 0x1a, 0xba, 0x75,
	0x2c, 0xd4, 0x0a, 0xcd, 0x83, 0x7a, 0x68, 0x94, 0x7a, 0x6c, 0x94, 0x7a, 0x3b, 0x32, 0x8a, 0x5c,
	0x8a, 0x18, 0xb1, 0x46, 0x13, 0xf6, 0x63, 0x0d, 0x8d, 0x31, 0x6c, 0x39, 0x4c, 0xd5, 0xa9, 0x6f,
	0x33, 0x11, 0xf8, 0xa2, 0xbb, 0x51, 0xb0, 0x15, 0xc6, 0xce, 0x82, 0x10, 0x7a, 0x05, 0x0f, 0x86,
	0xae, 0x36, 0x0a, 0x6a, 0x19, 0x9a, 0x21, 0x1e, 0xa9, 0x1e, 0xf9, 0x8c, 0xc5, 0x02, 0x67, 0x1e,
	0xa4, 0x20, 0xdd, 0x68, 0xa0, 0x90, 0xcf, 0x18, 0x89, 0xb0, 0xe9, 0x68, 0x13, 0x93, 0x6a, 0x86,
	0x58, 0xe4, 0xae, 0x8b, 0x87, 0xe8, 0x25, 0x88, 0x69, 0x65, 0x17, 0x1b, 0xbe, 0x6d, 0x68, 0xc1,
	0x11, 0x6f, 0x87, 0x85, 0x49, 0xc5, 0xe5, 0x69, 0x78, 0x31, 0x29, 0x0f, 0x7b, 0x1e, 0x77, 0xaa,
	0x6d, 0xe0, 0x4f, 0x62, 0x69, 0x49, 0x52, 0x4a, 0x88, 0xe8, 0x05, 0x00, 0xf4, 0x1c, 0xf6, 0xd2,
	0x7c, 0x4b, 0x63, 0x2e, 0xf9, 0x24, 0xde, 0x0b, 0xcf, 0x21, 0x15, 0xbb, 0xe0, 0x21, 0xd4, 0x82,
	0x87, 0x69, 0xca, 0x8d, 0x49, 0xf5, 0x5b, 0x55, 0xd3, 0x6f, 0x55, 0x03, 0x9b, 0xda, 0x44, 0x2c,
	0x73, 0xae, 0x94, 0x02, 0x9d, 0x06, 0x98, 0x96, 0x7e, 0xdb, 0x0e, 0x10, 0x8b, 0x1b, 0x36, 0xb0,
	0xa7, 0xbb, 0xc4, 0x61, 0xd4, 0x15, 0x77, 0xf8, 0xd9, 0xa4, 0x37, 0xdc, 0x9e, 0x86, 0xd1, 0x04,
	0xbe, 0xe5, 0x26, 0xe3, 0x3e, 0x5c, 0xb6, 0x71, 0x8f, 0x69, 0xcc, 0xf7, 0x44, 0xc4, 0xaf, 0x51,
	0x2d, 0xba, 0x46, 0x72, 0x48, 0xe9, 0x2e, 0x39, 0x07, 0x85, 0xe3, 0xe5, 0x13, 0x77, 0x1d, 0xa4,
	0x7a, 0x0e, 0x95, 0x33, 0x17, 0x6b, 0x0c, 0x27, 0x97, 0x3a, 0xd2, 0x45, 0xcf, 0x01, 0x8c, 0xe9,
	0x24, 0x6f, 0x11, 0x85, 0xe6, 0xce, 0x42, 0x0b, 0x90, 0x67, 0x40, 0xd5, 0x27, 0x20, 0x2e, 0xaa,
	0x79, 0x0e, 0xb5, 0x3d, 0x8c, 0x4a, 0x90, 0x89, 0x3a, 0x4d, 0x51, 0xce, 0x10, 0xa3, 0xfa, 0x14,
	0xa4, 0xd7, 0x98, 0x25, 0xc0, 0x28, 0xe7, 0x68, 0xf1, 0x79, 0xf4, 0xef, 0x59, 0xb8, 0x3f, 0xdf,
	0x77, 0x42, 0xc6, 0xea, 0xb6, 0xf8, 0x12, 0x40, 0xe7, 0xd9, 0x18, 0xaa, 0xc6, 0x78, 0x57, 0x2c,
	0x34, 0xa5, 0x85, 0xfb, 0xd4, 0x8f, 0x3b, 0xb3, 0xbc, 0x15, 0xa1, 0x5b, 0x2c, 0xa0, 0xfa, 0x8e,
	0x11, 0x53, 0x37, 0xd6, 0x53, 0x23, 0x74, 0x8b, 0xa1, 0x9f, 0xe1, 0x81, 0xa5, 0x47, 0xed, 0xc1,
	0xc3, 0xcc, 0x77, 0x54, 0x9d, 0x5a, 0x8e, 0x89, 0x23, 0xad, 0xec, 0x5a, 0xad, 0x8a, 0xa5, 0xf3,
	0x1e, 0xa2, 0x04, 0xe4, 0xb3, 0x98, 0xdb, 0x62, 0xe8, 0x1a, 0x2a, 0x96, 0x3e, 0xf5, 0x44, 0x4a,
	0x35, 0xb7, 0x56, 0x75, 0xcf, 0xd2, 0xa3, 0xca, 0xcf, 0x4a, 0xfe, 0x0a, 0x47, 0x81, 0xe3, 0x12,
	0xa3, 0x2d, 0x26, 0x9c, 0x5f, 0x2b, 0xcd, 0x6f, 0x6b, 0x6c, 0xab, 0xf9, 0xa4, 0x95, 0xf0, 0x5a,
	0x44, 0x16, 0x4e, 0x4b, 0x6f, 0xae, 0x95, 0xde, 0xe7, 0xd2, 0x9c, 0x3a, 0x23, 0x5a, 0xfd, 0x2d,
	0x07, 0x0f, 0x96, 0x9a, 0x27, 0xf2, 0x5a, 0xba, 0xf2, 0xc2, 0x7f, 0xaf, 0x7c, 0xe6, 0x7f, 0xac,
	0xfc, 0xc6, 0x57, 0xa9, 0x7c, 0xf6, 0xeb, 0x55, 0x3e, 0xf7, 0x65, 0x95, 0x3f, 0x87, 0x3d, 0x6c,
	0x7f, 0xf4, 0xb1, 0x8f, 0xff, 0xad, 0xa1, 0x50, 0xc4, 0xfb, 0xda, 0x3e, 0x42, 0xa7, 0xb0, 0x1d,
	0x3e, 0x5d, 0xe2, 0x0e, 0x7b, 0x97, 0x3f, 0x74, 0x1e, 0xae, 0x78, 0xe8, 0x44, 0x2e, 0x2b, 0x1a,
	0x33, 0xa3, 0xea, 0x3b, 0x38, 0x4c, 0x59, 0x31, 0x84, 0x9e, 0xd3, 0xd1, 0xb4, 0x97, 0x7d, 0x13,
	0xac, 0x12, 0x87, 0xd5, 0x69, 0x5b, 0x2b, 0x26, 0x93, 0x3d, 0x63, 0xb6, 0x8b, 0x65, 0x66, 0xbb,
	0x58, 0xf5, 0x2f, 0x01, 0x76, 0x97, 0xa8, 0x7f, 0x89, 0xc7, 0xf7, 0x21, 0x3f, 0x54, 0x1d, 0xea,
	0x86, 0xfe, 0xde, 0x96, 0x73, 0xc3, 0xb7, 0xd4, 0x65, 0xc1, 0xc7, 0x5c, 0xa7, 0x96, 0xa5, 0xd9,
	0x06, 0xf7, 0xea, 0x96, 0x1c, 0x0f, 0xd1, 0x2b, 0xc8, 0x0f, 0x09, 0x36, 0x0d, 0x4f, 0xcc, 0xf2,
	0x03, 0x7a, 0xbc, 0xe2, 0x80, 0xce, 0xe9, 0xa8, 0xde, 0xe5, 0xc0, 0x8e, 0xcd, 0xdc, 0x89, 0x1c,
	0xb1, 0xa4, 0x97, 0x50, 0x98, 0x99, 0x46, 0x65, 0xd8, 0x08, 0xde, 0xa9, 0x02, 0x5f, 0x24, 0xf8,
	0x13, 0xed, 0x41, 0x6e, 0xac, 0x99, 0x3e, 0xe6, 0x09, 0x6d, 0xc9, 0xe1, 0xe0, 0x87, 0xcc, 0xf7,
	0x42, 0xf5, 0x1a, 0x8e, 0x56, 0x1e, 0x6f, 0x74, 0xdb, 0xeb, 0x90, 0x35, 0xe9, 0xc8, 0x13, 0x05,
	0x9e, 0x9b, 0xb4, 0x3a, 0x37, 0x99, 0xe3, 0x9e, 0xd4, 0x01, 0x2d, 0x3e, 0x41, 0x51, 0x01, 0x36,
	0xcf, 0xce, 0x5b, 0x8a, 0xa2, 0x9e, 0x96, 0xef, 0x24, 0x83, 0xb3, 0xb2, 0xf0, 0xe4, 0x03, 0x9c,
	0xac, 0xfd, 0xd6, 0x22, 0x09, 0xee, 0xb7, 0xba, 0xfd, 0x8e, 0xac, 0x76, 0xe5, 0xd6, 0xeb, 0x8b,
	0xce, 0x65, 0x5f, 0xed, 0x5c, 0x5e, 0x0f, 0x3a, 0x83, 0x4e, 0xf9, 0x0e, 0x3a, 0x80, 0xfd, 0x30,
	0xa6, 0x74, 0x14, 0xa5, 0x77, 0x75, 0xa9, 0xf6, 0x7b, 0x17, 0x9d, 0xab, 0x41, 0xbf, 0x2c, 0xa0,
	0x12, 0xc0, 0xe5, 0x95, 0x2a, 0x77, 0xae, 0x07, 0x1d, 0xa5, 0x5f, 0xce, 0x34, 0xff, 0xcc, 0x00,
	0xea, 0x0e, 0xae, 0xfa, 0x2d, 0x05, 0xbb, 0x63, 0xec, 0x06, 0xbf, 0xc1, 0xd3, 0x7f, 0x00, 0xe5,
	0xf9, 0x0f, 0x2b, 0x3a, 0x8c, 0x36, 0xba, 0xe2, 0xfb, 0x2d, 0x1d, 0xad, 0x8c, 0x87, 0xe7, 0x56,
	0xbd, 0x83, 0xde, 0xc1, 0xee, 0x92, 0x36, 0x8a, 0x4e, 0x22, 0xe6, 0xea, 0xef, 0xb3, 0x54, 0xfd,
	0x27, 0xc8, 0x54, 0xff, 0x03, 0x54, 0x56, 0x14, 0x0f, 0x3d, 0x5a, 0x26, 0xb0, 0x70, 0x77, 0xa4,
	0xc7, 0xeb, 0x60, 0xf1, 0x5a, 0xa7, 0x3f, 0x41, 0x85, 0xd0, 0xba, 0xfe, 0x9e, 0xb8, 0x8e, 0xc7,
	0x34, 0xfd, 0xb6, 0xae, 0x39, 0x24, 0x24, 0xff, 0xf2, 0x6c, 0x44, 0xd8, 0x7b, 0xff, 0xa6, 0xae,
	0x53, 0xab, 0x71, 0xe3, 0x52, 0x5d, 0xd3, 0xdc, 0x46, 0x02, 0x7c, 0xa6, 0x39, 0xa4, 0x31, 0xa2,
	0x8d, 0xf1, 0x8b, 0xf0, 0x3f, 0xb9, 0x9b, 0x3c, 0xbf, 0x3d, 0x2f, 0xfe, 0x0e, 0x00, 0x00, 0xff,
	0xff, 0xcf, 0xa3, 0xd7, 0x19, 0xdf, 0x0d, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6

// FUOTAServerServiceClient is the client API for FUOTAServerService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type FUOTAServerServiceClient interface {
	// CreateDeployment creates the given FUOTA deployment.
	CreateDeployment(ctx context.Context, in *CreateDeploymentRequest, opts ...grpc.CallOption) (*CreateDeploymentResponse, error)
	// GetDeploymentStatus returns the FUOTA deployment status given an ID.
	GetDeploymentStatus(ctx context.Context, in *GetDeploymentStatusRequest, opts ...grpc.CallOption) (*GetDeploymentStatusResponse, error)
	// GetDeploymentDeviceLogs returns the FUOTA logs given a deployment ID and DevEUI.
	GetDeploymentDeviceLogs(ctx context.Context, in *GetDeploymentDeviceLogsRequest, opts ...grpc.CallOption) (*GetDeploymentDeviceLogsResponse, error)
}

type fUOTAServerServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewFUOTAServerServiceClient(cc grpc.ClientConnInterface) FUOTAServerServiceClient {
	return &fUOTAServerServiceClient{cc}
}

func (c *fUOTAServerServiceClient) CreateDeployment(ctx context.Context, in *CreateDeploymentRequest, opts ...grpc.CallOption) (*CreateDeploymentResponse, error) {
	out := new(CreateDeploymentResponse)
	err := c.cc.Invoke(ctx, "/fuota.FUOTAServerService/CreateDeployment", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fUOTAServerServiceClient) GetDeploymentStatus(ctx context.Context, in *GetDeploymentStatusRequest, opts ...grpc.CallOption) (*GetDeploymentStatusResponse, error) {
	out := new(GetDeploymentStatusResponse)
	err := c.cc.Invoke(ctx, "/fuota.FUOTAServerService/GetDeploymentStatus", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fUOTAServerServiceClient) GetDeploymentDeviceLogs(ctx context.Context, in *GetDeploymentDeviceLogsRequest, opts ...grpc.CallOption) (*GetDeploymentDeviceLogsResponse, error) {
	out := new(GetDeploymentDeviceLogsResponse)
	err := c.cc.Invoke(ctx, "/fuota.FUOTAServerService/GetDeploymentDeviceLogs", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// FUOTAServerServiceServer is the server API for FUOTAServerService service.
type FUOTAServerServiceServer interface {
	// CreateDeployment creates the given FUOTA deployment.
	CreateDeployment(context.Context, *CreateDeploymentRequest) (*CreateDeploymentResponse, error)
	// GetDeploymentStatus returns the FUOTA deployment status given an ID.
	GetDeploymentStatus(context.Context, *GetDeploymentStatusRequest) (*GetDeploymentStatusResponse, error)
	// GetDeploymentDeviceLogs returns the FUOTA logs given a deployment ID and DevEUI.
	GetDeploymentDeviceLogs(context.Context, *GetDeploymentDeviceLogsRequest) (*GetDeploymentDeviceLogsResponse, error)
}

// UnimplementedFUOTAServerServiceServer can be embedded to have forward compatible implementations.
type UnimplementedFUOTAServerServiceServer struct {
}

func (*UnimplementedFUOTAServerServiceServer) CreateDeployment(ctx context.Context, req *CreateDeploymentRequest) (*CreateDeploymentResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateDeployment not implemented")
}
func (*UnimplementedFUOTAServerServiceServer) GetDeploymentStatus(ctx context.Context, req *GetDeploymentStatusRequest) (*GetDeploymentStatusResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetDeploymentStatus not implemented")
}
func (*UnimplementedFUOTAServerServiceServer) GetDeploymentDeviceLogs(ctx context.Context, req *GetDeploymentDeviceLogsRequest) (*GetDeploymentDeviceLogsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetDeploymentDeviceLogs not implemented")
}

func RegisterFUOTAServerServiceServer(s *grpc.Server, srv FUOTAServerServiceServer) {
	s.RegisterService(&_FUOTAServerService_serviceDesc, srv)
}

func _FUOTAServerService_CreateDeployment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateDeploymentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FUOTAServerServiceServer).CreateDeployment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/fuota.FUOTAServerService/CreateDeployment",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FUOTAServerServiceServer).CreateDeployment(ctx, req.(*CreateDeploymentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FUOTAServerService_GetDeploymentStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetDeploymentStatusRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FUOTAServerServiceServer).GetDeploymentStatus(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/fuota.FUOTAServerService/GetDeploymentStatus",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FUOTAServerServiceServer).GetDeploymentStatus(ctx, req.(*GetDeploymentStatusRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _FUOTAServerService_GetDeploymentDeviceLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetDeploymentDeviceLogsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FUOTAServerServiceServer).GetDeploymentDeviceLogs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/fuota.FUOTAServerService/GetDeploymentDeviceLogs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FUOTAServerServiceServer).GetDeploymentDeviceLogs(ctx, req.(*GetDeploymentDeviceLogsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _FUOTAServerService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "fuota.FUOTAServerService",
	HandlerType: (*FUOTAServerServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "CreateDeployment",
			Handler:    _FUOTAServerService_CreateDeployment_Handler,
		},
		{
			MethodName: "GetDeploymentStatus",
			Handler:    _FUOTAServerService_GetDeploymentStatus_Handler,
		},
		{
			MethodName: "GetDeploymentDeviceLogs",
			Handler:    _FUOTAServerService_GetDeploymentDeviceLogs_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "fuota/fuota.proto",
}
