// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        v6.30.2
// source: api/fuota.proto

package api

import (
	_ "github.com/chirpstack/chirpstack/api/go/v4/common"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type RequestFragmentationSessionStatus int32

const (
	// Do not request the fragmentation-session status.
	RequestFragmentationSessionStatus_NO_REQUEST RequestFragmentationSessionStatus = 0
	// 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 = 1
	// 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 = 2
)

// Enum value maps for RequestFragmentationSessionStatus.
var (
	RequestFragmentationSessionStatus_name = map[int32]string{
		0: "NO_REQUEST",
		1: "AFTER_FRAGMENT_ENQUEUE",
		2: "AFTER_SESSION_TIMEOUT",
	}
	RequestFragmentationSessionStatus_value = map[string]int32{
		"NO_REQUEST":             0,
		"AFTER_FRAGMENT_ENQUEUE": 1,
		"AFTER_SESSION_TIMEOUT":  2,
	}
)

func (x RequestFragmentationSessionStatus) Enum() *RequestFragmentationSessionStatus {
	p := new(RequestFragmentationSessionStatus)
	*p = x
	return p
}

func (x RequestFragmentationSessionStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (RequestFragmentationSessionStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_api_fuota_proto_enumTypes[0].Descriptor()
}

func (RequestFragmentationSessionStatus) Type() protoreflect.EnumType {
	return &file_api_fuota_proto_enumTypes[0]
}

func (x RequestFragmentationSessionStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use RequestFragmentationSessionStatus.Descriptor instead.
func (RequestFragmentationSessionStatus) EnumDescriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{0}
}

type FuotaDeployment struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Deployment ID.
	// This value is automatically set on create.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Application ID.
	ApplicationId string `protobuf:"bytes,2,opt,name=application_id,json=applicationId,proto3" json:"application_id,omitempty"`
	// Device-profile ID.
	DeviceProfileId string `protobuf:"bytes,3,opt,name=device_profile_id,json=deviceProfileId,proto3" json:"device_profile_id,omitempty"`
	// Deployment name.
	Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
	// Multicast-group type.
	MulticastGroupType MulticastGroupType `protobuf:"varint,5,opt,name=multicast_group_type,json=multicastGroupType,proto3,enum=api.MulticastGroupType" json:"multicast_group_type,omitempty"`
	// Multicast-group scheduling type (Class-C only).
	MulticastClassCSchedulingType MulticastGroupSchedulingType `protobuf:"varint,6,opt,name=multicast_class_c_scheduling_type,json=multicastClassCSchedulingType,proto3,enum=api.MulticastGroupSchedulingType" json:"multicast_class_c_scheduling_type,omitempty"`
	// Multicast data-rate.
	MulticastDr uint32 `protobuf:"varint,7,opt,name=multicast_dr,json=multicastDr,proto3" json:"multicast_dr,omitempty"`
	// Multicast ping-slot period (Class-B only).
	// Valid options are: 0 - 7.
	//
	// Number of ping-slots per beacon-period:
	// pingNb = 2^(7-periodicity)
	//
	// Periodicity: 0 = 128 ping-slots per beacon period = ~ every 1 sec
	// Periodicity: 7 = 1 ping-slot per beacon period = ~ every 128 sec
	MulticastClassBPingSlotPeriodicity uint32 `protobuf:"varint,8,opt,name=multicast_class_b_ping_slot_periodicity,json=multicastClassBPingSlotPeriodicity,proto3" json:"multicast_class_b_ping_slot_periodicity,omitempty"`
	// Multicast frequency (Hz).
	MulticastFrequency uint32 `protobuf:"varint,9,opt,name=multicast_frequency,json=multicastFrequency,proto3" json:"multicast_frequency,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,10,opt,name=multicast_timeout,json=multicastTimeout,proto3" json:"multicast_timeout,omitempty"`
	// Calculate multicast timeout.
	// If set to true, ChirpStack will calculate the multicast-timeout.
	CalculateMulticastTimeout bool `protobuf:"varint,11,opt,name=calculate_multicast_timeout,json=calculateMulticastTimeout,proto3" json:"calculate_multicast_timeout,omitempty"`
	// The number of times ChirpStack will retry an unicast command
	// before it considers it to be failed.
	UnicastMaxRetryCount uint32 `protobuf:"varint,12,opt,name=unicast_max_retry_count,json=unicastMaxRetryCount,proto3" json:"unicast_max_retry_count,omitempty"`
	// Fragmentation size.
	// 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,13,opt,name=fragmentation_fragment_size,json=fragmentationFragmentSize,proto3" json:"fragmentation_fragment_size,omitempty"`
	// Calculate fragmentation size.
	// If set to true, ChirpStack will calculate the fragmentation size.
	CalculateFragmentationFragmentSize bool `protobuf:"varint,14,opt,name=calculate_fragmentation_fragment_size,json=calculateFragmentationFragmentSize,proto3" json:"calculate_fragmentation_fragment_size,omitempty"`
	// Fragmentation redundancy percentage.
	// The number represents the percentage (0 - 100) of redundant messages
	// to send.
	FragmentationRedundancyPercentage uint32 `protobuf:"varint,15,opt,name=fragmentation_redundancy_percentage,json=fragmentationRedundancyPercentage,proto3" json:"fragmentation_redundancy_percentage,omitempty"`
	// Fragmentation session index.
	FragmentationSessionIndex uint32 `protobuf:"varint,16,opt,name=fragmentation_session_index,json=fragmentationSessionIndex,proto3" json:"fragmentation_session_index,omitempty"`
	// Fragmentation matrix.
	FragmentationMatrix uint32 `protobuf:"varint,17,opt,name=fragmentation_matrix,json=fragmentationMatrix,proto3" json:"fragmentation_matrix,omitempty"`
	// Block ack delay.
	FragmentationBlockAckDelay uint32 `protobuf:"varint,18,opt,name=fragmentation_block_ack_delay,json=fragmentationBlockAckDelay,proto3" json:"fragmentation_block_ack_delay,omitempty"`
	// Descriptor (4 bytes).
	FragmentationDescriptor []byte `protobuf:"bytes,19,opt,name=fragmentation_descriptor,json=fragmentationDescriptor,proto3" json:"fragmentation_descriptor,omitempty"`
	// Request fragmentation session status.
	RequestFragmentationSessionStatus RequestFragmentationSessionStatus `protobuf:"varint,20,opt,name=request_fragmentation_session_status,json=requestFragmentationSessionStatus,proto3,enum=api.RequestFragmentationSessionStatus" json:"request_fragmentation_session_status,omitempty"`
	// Payload.
	// The FUOTA payload to send.
	Payload []byte `protobuf:"bytes,21,opt,name=payload,proto3" json:"payload,omitempty"`
	// Set device tags on complete.
	OnCompleteSetDeviceTags map[string]string `protobuf:"bytes,22,rep,name=on_complete_set_device_tags,json=onCompleteSetDeviceTags,proto3" json:"on_complete_set_device_tags,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields           protoimpl.UnknownFields
	sizeCache               protoimpl.SizeCache
}

func (x *FuotaDeployment) Reset() {
	*x = FuotaDeployment{}
	mi := &file_api_fuota_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FuotaDeployment) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FuotaDeployment) ProtoMessage() {}

func (x *FuotaDeployment) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FuotaDeployment.ProtoReflect.Descriptor instead.
func (*FuotaDeployment) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{0}
}

func (x *FuotaDeployment) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *FuotaDeployment) GetApplicationId() string {
	if x != nil {
		return x.ApplicationId
	}
	return ""
}

func (x *FuotaDeployment) GetDeviceProfileId() string {
	if x != nil {
		return x.DeviceProfileId
	}
	return ""
}

func (x *FuotaDeployment) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *FuotaDeployment) GetMulticastGroupType() MulticastGroupType {
	if x != nil {
		return x.MulticastGroupType
	}
	return MulticastGroupType_CLASS_C
}

func (x *FuotaDeployment) GetMulticastClassCSchedulingType() MulticastGroupSchedulingType {
	if x != nil {
		return x.MulticastClassCSchedulingType
	}
	return MulticastGroupSchedulingType_DELAY
}

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

func (x *FuotaDeployment) GetMulticastClassBPingSlotPeriodicity() uint32 {
	if x != nil {
		return x.MulticastClassBPingSlotPeriodicity
	}
	return 0
}

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

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

func (x *FuotaDeployment) GetCalculateMulticastTimeout() bool {
	if x != nil {
		return x.CalculateMulticastTimeout
	}
	return false
}

func (x *FuotaDeployment) GetUnicastMaxRetryCount() uint32 {
	if x != nil {
		return x.UnicastMaxRetryCount
	}
	return 0
}

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

func (x *FuotaDeployment) GetCalculateFragmentationFragmentSize() bool {
	if x != nil {
		return x.CalculateFragmentationFragmentSize
	}
	return false
}

func (x *FuotaDeployment) GetFragmentationRedundancyPercentage() uint32 {
	if x != nil {
		return x.FragmentationRedundancyPercentage
	}
	return 0
}

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

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

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

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

func (x *FuotaDeployment) GetRequestFragmentationSessionStatus() RequestFragmentationSessionStatus {
	if x != nil {
		return x.RequestFragmentationSessionStatus
	}
	return RequestFragmentationSessionStatus_NO_REQUEST
}

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

func (x *FuotaDeployment) GetOnCompleteSetDeviceTags() map[string]string {
	if x != nil {
		return x.OnCompleteSetDeviceTags
	}
	return nil
}

type FuotaDeploymentListItem struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Created at timestamp.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Updated at timestamp.
	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	// Started at timestamp.
	StartedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"`
	// Completed at timestamp.
	CompletedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"`
	// Name.
	Name          string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FuotaDeploymentListItem) Reset() {
	*x = FuotaDeploymentListItem{}
	mi := &file_api_fuota_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FuotaDeploymentListItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FuotaDeploymentListItem) ProtoMessage() {}

func (x *FuotaDeploymentListItem) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FuotaDeploymentListItem.ProtoReflect.Descriptor instead.
func (*FuotaDeploymentListItem) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{1}
}

func (x *FuotaDeploymentListItem) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *FuotaDeploymentListItem) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *FuotaDeploymentListItem) GetUpdatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdatedAt
	}
	return nil
}

func (x *FuotaDeploymentListItem) GetStartedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.StartedAt
	}
	return nil
}

func (x *FuotaDeploymentListItem) GetCompletedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CompletedAt
	}
	return nil
}

func (x *FuotaDeploymentListItem) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type FuotaDeploymentDeviceListItem struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID.
	FuotaDeploymentId string `protobuf:"bytes,1,opt,name=fuota_deployment_id,json=fuotaDeploymentId,proto3" json:"fuota_deployment_id,omitempty"`
	// DevEUI.
	DevEui string `protobuf:"bytes,2,opt,name=dev_eui,json=devEui,proto3" json:"dev_eui,omitempty"`
	// Created at timestamp.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Completed at timestamp.
	CompletedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"`
	// McGroupSetup completed at timestamp.
	McGroupSetupCompletedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=mc_group_setup_completed_at,json=mcGroupSetupCompletedAt,proto3" json:"mc_group_setup_completed_at,omitempty"`
	// McSession completed at timestamp.
	McSessionCompletedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=mc_session_completed_at,json=mcSessionCompletedAt,proto3" json:"mc_session_completed_at,omitempty"`
	// FragSessionSetup completed at timestamp.
	FragSessionSetupCompletedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=frag_session_setup_completed_at,json=fragSessionSetupCompletedAt,proto3" json:"frag_session_setup_completed_at,omitempty"`
	// FragStatus completed at timestamp.
	FragStatusCompletedAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=frag_status_completed_at,json=fragStatusCompletedAt,proto3" json:"frag_status_completed_at,omitempty"`
	// Error message.
	ErrorMsg      string `protobuf:"bytes,9,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FuotaDeploymentDeviceListItem) Reset() {
	*x = FuotaDeploymentDeviceListItem{}
	mi := &file_api_fuota_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FuotaDeploymentDeviceListItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FuotaDeploymentDeviceListItem) ProtoMessage() {}

func (x *FuotaDeploymentDeviceListItem) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FuotaDeploymentDeviceListItem.ProtoReflect.Descriptor instead.
func (*FuotaDeploymentDeviceListItem) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{2}
}

func (x *FuotaDeploymentDeviceListItem) GetFuotaDeploymentId() string {
	if x != nil {
		return x.FuotaDeploymentId
	}
	return ""
}

func (x *FuotaDeploymentDeviceListItem) GetDevEui() string {
	if x != nil {
		return x.DevEui
	}
	return ""
}

func (x *FuotaDeploymentDeviceListItem) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *FuotaDeploymentDeviceListItem) GetCompletedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CompletedAt
	}
	return nil
}

func (x *FuotaDeploymentDeviceListItem) GetMcGroupSetupCompletedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.McGroupSetupCompletedAt
	}
	return nil
}

func (x *FuotaDeploymentDeviceListItem) GetMcSessionCompletedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.McSessionCompletedAt
	}
	return nil
}

func (x *FuotaDeploymentDeviceListItem) GetFragSessionSetupCompletedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.FragSessionSetupCompletedAt
	}
	return nil
}

func (x *FuotaDeploymentDeviceListItem) GetFragStatusCompletedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.FragStatusCompletedAt
	}
	return nil
}

func (x *FuotaDeploymentDeviceListItem) GetErrorMsg() string {
	if x != nil {
		return x.ErrorMsg
	}
	return ""
}

type FuotaDeploymentGatewayListItem struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID.
	FuotaDeploymentId string `protobuf:"bytes,1,opt,name=fuota_deployment_id,json=fuotaDeploymentId,proto3" json:"fuota_deployment_id,omitempty"`
	// Gateway ID.
	GatewayId string `protobuf:"bytes,2,opt,name=gateway_id,json=gatewayId,proto3" json:"gateway_id,omitempty"`
	// Created at timestamp.
	CreatedAt     *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FuotaDeploymentGatewayListItem) Reset() {
	*x = FuotaDeploymentGatewayListItem{}
	mi := &file_api_fuota_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FuotaDeploymentGatewayListItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FuotaDeploymentGatewayListItem) ProtoMessage() {}

func (x *FuotaDeploymentGatewayListItem) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FuotaDeploymentGatewayListItem.ProtoReflect.Descriptor instead.
func (*FuotaDeploymentGatewayListItem) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{3}
}

func (x *FuotaDeploymentGatewayListItem) GetFuotaDeploymentId() string {
	if x != nil {
		return x.FuotaDeploymentId
	}
	return ""
}

func (x *FuotaDeploymentGatewayListItem) GetGatewayId() string {
	if x != nil {
		return x.GatewayId
	}
	return ""
}

func (x *FuotaDeploymentGatewayListItem) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

type CreateFuotaDeploymentRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Deployment.
	Deployment    *FuotaDeployment `protobuf:"bytes,1,opt,name=deployment,proto3" json:"deployment,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CreateFuotaDeploymentRequest) Reset() {
	*x = CreateFuotaDeploymentRequest{}
	mi := &file_api_fuota_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CreateFuotaDeploymentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateFuotaDeploymentRequest) ProtoMessage() {}

func (x *CreateFuotaDeploymentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateFuotaDeploymentRequest.ProtoReflect.Descriptor instead.
func (*CreateFuotaDeploymentRequest) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{4}
}

func (x *CreateFuotaDeploymentRequest) GetDeployment() *FuotaDeployment {
	if x != nil {
		return x.Deployment
	}
	return nil
}

type CreateFuotaDeploymentResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ID of the created deployment.
	Id            string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CreateFuotaDeploymentResponse) Reset() {
	*x = CreateFuotaDeploymentResponse{}
	mi := &file_api_fuota_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CreateFuotaDeploymentResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateFuotaDeploymentResponse) ProtoMessage() {}

func (x *CreateFuotaDeploymentResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateFuotaDeploymentResponse.ProtoReflect.Descriptor instead.
func (*CreateFuotaDeploymentResponse) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{5}
}

func (x *CreateFuotaDeploymentResponse) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type GetFuotaDeploymentRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// FUOTA Deployment ID.
	Id            string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetFuotaDeploymentRequest) Reset() {
	*x = GetFuotaDeploymentRequest{}
	mi := &file_api_fuota_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetFuotaDeploymentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetFuotaDeploymentRequest) ProtoMessage() {}

func (x *GetFuotaDeploymentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetFuotaDeploymentRequest.ProtoReflect.Descriptor instead.
func (*GetFuotaDeploymentRequest) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{6}
}

func (x *GetFuotaDeploymentRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type GetFuotaDeploymentResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// FUOTA Deployment.
	Deployment *FuotaDeployment `protobuf:"bytes,1,opt,name=deployment,proto3" json:"deployment,omitempty"`
	// Created at timestamp.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Updated at timestamp.
	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	// Started at timestamp.
	StartedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"`
	// Completed at timestamp.
	CompletedAt   *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetFuotaDeploymentResponse) Reset() {
	*x = GetFuotaDeploymentResponse{}
	mi := &file_api_fuota_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetFuotaDeploymentResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetFuotaDeploymentResponse) ProtoMessage() {}

func (x *GetFuotaDeploymentResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetFuotaDeploymentResponse.ProtoReflect.Descriptor instead.
func (*GetFuotaDeploymentResponse) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{7}
}

func (x *GetFuotaDeploymentResponse) GetDeployment() *FuotaDeployment {
	if x != nil {
		return x.Deployment
	}
	return nil
}

func (x *GetFuotaDeploymentResponse) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *GetFuotaDeploymentResponse) GetUpdatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdatedAt
	}
	return nil
}

func (x *GetFuotaDeploymentResponse) GetStartedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.StartedAt
	}
	return nil
}

func (x *GetFuotaDeploymentResponse) GetCompletedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CompletedAt
	}
	return nil
}

type UpdateFuotaDeploymentRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Deployment.
	Deployment    *FuotaDeployment `protobuf:"bytes,1,opt,name=deployment,proto3" json:"deployment,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdateFuotaDeploymentRequest) Reset() {
	*x = UpdateFuotaDeploymentRequest{}
	mi := &file_api_fuota_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateFuotaDeploymentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateFuotaDeploymentRequest) ProtoMessage() {}

func (x *UpdateFuotaDeploymentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateFuotaDeploymentRequest.ProtoReflect.Descriptor instead.
func (*UpdateFuotaDeploymentRequest) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{8}
}

func (x *UpdateFuotaDeploymentRequest) GetDeployment() *FuotaDeployment {
	if x != nil {
		return x.Deployment
	}
	return nil
}

type DeleteFuotaDeploymentRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// FUOTA deployment ID.
	Id            string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteFuotaDeploymentRequest) Reset() {
	*x = DeleteFuotaDeploymentRequest{}
	mi := &file_api_fuota_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteFuotaDeploymentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteFuotaDeploymentRequest) ProtoMessage() {}

func (x *DeleteFuotaDeploymentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteFuotaDeploymentRequest.ProtoReflect.Descriptor instead.
func (*DeleteFuotaDeploymentRequest) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{9}
}

func (x *DeleteFuotaDeploymentRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type StartFuotaDeploymentRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// FUOTA deployment ID.
	Id            string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StartFuotaDeploymentRequest) Reset() {
	*x = StartFuotaDeploymentRequest{}
	mi := &file_api_fuota_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *StartFuotaDeploymentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StartFuotaDeploymentRequest) ProtoMessage() {}

func (x *StartFuotaDeploymentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StartFuotaDeploymentRequest.ProtoReflect.Descriptor instead.
func (*StartFuotaDeploymentRequest) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{10}
}

func (x *StartFuotaDeploymentRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

type ListFuotaDeploymentsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Max number of FUOTA deployments to return in the result-set.
	// If not set, it will be treated as 0, and the response will only return the total_count.
	Limit uint32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"`
	// Offset in the result-set (for pagination).
	Offset uint32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"`
	// Application ID to list the FUOTA Deployments for.
	// This filter is mandatory.
	ApplicationId string `protobuf:"bytes,3,opt,name=application_id,json=applicationId,proto3" json:"application_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListFuotaDeploymentsRequest) Reset() {
	*x = ListFuotaDeploymentsRequest{}
	mi := &file_api_fuota_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListFuotaDeploymentsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListFuotaDeploymentsRequest) ProtoMessage() {}

func (x *ListFuotaDeploymentsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListFuotaDeploymentsRequest.ProtoReflect.Descriptor instead.
func (*ListFuotaDeploymentsRequest) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{11}
}

func (x *ListFuotaDeploymentsRequest) GetLimit() uint32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *ListFuotaDeploymentsRequest) GetOffset() uint32 {
	if x != nil {
		return x.Offset
	}
	return 0
}

func (x *ListFuotaDeploymentsRequest) GetApplicationId() string {
	if x != nil {
		return x.ApplicationId
	}
	return ""
}

type ListFuotaDeploymentsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Total number of FUOTA Deployments.
	TotalCount uint32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
	// Result-test.
	Result        []*FuotaDeploymentListItem `protobuf:"bytes,2,rep,name=result,proto3" json:"result,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListFuotaDeploymentsResponse) Reset() {
	*x = ListFuotaDeploymentsResponse{}
	mi := &file_api_fuota_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListFuotaDeploymentsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListFuotaDeploymentsResponse) ProtoMessage() {}

func (x *ListFuotaDeploymentsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListFuotaDeploymentsResponse.ProtoReflect.Descriptor instead.
func (*ListFuotaDeploymentsResponse) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{12}
}

func (x *ListFuotaDeploymentsResponse) GetTotalCount() uint32 {
	if x != nil {
		return x.TotalCount
	}
	return 0
}

func (x *ListFuotaDeploymentsResponse) GetResult() []*FuotaDeploymentListItem {
	if x != nil {
		return x.Result
	}
	return nil
}

type AddDevicesToFuotaDeploymentRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// FUOTA Deployment ID.
	FuotaDeploymentId string `protobuf:"bytes,1,opt,name=fuota_deployment_id,json=fuotaDeploymentId,proto3" json:"fuota_deployment_id,omitempty"`
	// DevEUIs.
	// Note that the DevEUIs must share the same device-profile as assigned to
	// the FUOTA Deployment.
	DevEuis       []string `protobuf:"bytes,2,rep,name=dev_euis,json=devEuis,proto3" json:"dev_euis,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddDevicesToFuotaDeploymentRequest) Reset() {
	*x = AddDevicesToFuotaDeploymentRequest{}
	mi := &file_api_fuota_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddDevicesToFuotaDeploymentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddDevicesToFuotaDeploymentRequest) ProtoMessage() {}

func (x *AddDevicesToFuotaDeploymentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AddDevicesToFuotaDeploymentRequest.ProtoReflect.Descriptor instead.
func (*AddDevicesToFuotaDeploymentRequest) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{13}
}

func (x *AddDevicesToFuotaDeploymentRequest) GetFuotaDeploymentId() string {
	if x != nil {
		return x.FuotaDeploymentId
	}
	return ""
}

func (x *AddDevicesToFuotaDeploymentRequest) GetDevEuis() []string {
	if x != nil {
		return x.DevEuis
	}
	return nil
}

type RemoveDevicesFromFuotaDeploymentRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// FUOTA Deployment ID.
	FuotaDeploymentId string `protobuf:"bytes,1,opt,name=fuota_deployment_id,json=fuotaDeploymentId,proto3" json:"fuota_deployment_id,omitempty"`
	// DevEUIs.
	DevEuis       []string `protobuf:"bytes,2,rep,name=dev_euis,json=devEuis,proto3" json:"dev_euis,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RemoveDevicesFromFuotaDeploymentRequest) Reset() {
	*x = RemoveDevicesFromFuotaDeploymentRequest{}
	mi := &file_api_fuota_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RemoveDevicesFromFuotaDeploymentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RemoveDevicesFromFuotaDeploymentRequest) ProtoMessage() {}

func (x *RemoveDevicesFromFuotaDeploymentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RemoveDevicesFromFuotaDeploymentRequest.ProtoReflect.Descriptor instead.
func (*RemoveDevicesFromFuotaDeploymentRequest) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{14}
}

func (x *RemoveDevicesFromFuotaDeploymentRequest) GetFuotaDeploymentId() string {
	if x != nil {
		return x.FuotaDeploymentId
	}
	return ""
}

func (x *RemoveDevicesFromFuotaDeploymentRequest) GetDevEuis() []string {
	if x != nil {
		return x.DevEuis
	}
	return nil
}

type ListFuotaDeploymentDevicesRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Max number of devices to return in the result-set.
	// If not set, it will be treated as 0, and the response will only return the total_count.
	Limit uint32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"`
	// Offset in the result-set (for pagination).
	Offset uint32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"`
	// FUOTA Deployment ID.
	FuotaDeploymentId string `protobuf:"bytes,3,opt,name=fuota_deployment_id,json=fuotaDeploymentId,proto3" json:"fuota_deployment_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *ListFuotaDeploymentDevicesRequest) Reset() {
	*x = ListFuotaDeploymentDevicesRequest{}
	mi := &file_api_fuota_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListFuotaDeploymentDevicesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListFuotaDeploymentDevicesRequest) ProtoMessage() {}

func (x *ListFuotaDeploymentDevicesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListFuotaDeploymentDevicesRequest.ProtoReflect.Descriptor instead.
func (*ListFuotaDeploymentDevicesRequest) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{15}
}

func (x *ListFuotaDeploymentDevicesRequest) GetLimit() uint32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *ListFuotaDeploymentDevicesRequest) GetOffset() uint32 {
	if x != nil {
		return x.Offset
	}
	return 0
}

func (x *ListFuotaDeploymentDevicesRequest) GetFuotaDeploymentId() string {
	if x != nil {
		return x.FuotaDeploymentId
	}
	return ""
}

type ListFuotaDeploymentDevicesResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Total number of devices.
	TotalCount uint32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
	// Result-set.
	Result        []*FuotaDeploymentDeviceListItem `protobuf:"bytes,2,rep,name=result,proto3" json:"result,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListFuotaDeploymentDevicesResponse) Reset() {
	*x = ListFuotaDeploymentDevicesResponse{}
	mi := &file_api_fuota_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListFuotaDeploymentDevicesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListFuotaDeploymentDevicesResponse) ProtoMessage() {}

func (x *ListFuotaDeploymentDevicesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListFuotaDeploymentDevicesResponse.ProtoReflect.Descriptor instead.
func (*ListFuotaDeploymentDevicesResponse) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{16}
}

func (x *ListFuotaDeploymentDevicesResponse) GetTotalCount() uint32 {
	if x != nil {
		return x.TotalCount
	}
	return 0
}

func (x *ListFuotaDeploymentDevicesResponse) GetResult() []*FuotaDeploymentDeviceListItem {
	if x != nil {
		return x.Result
	}
	return nil
}

type AddGatewaysToFuotaDeploymentRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// FUOTA Deployment ID.
	FuotaDeploymentId string `protobuf:"bytes,1,opt,name=fuota_deployment_id,json=fuotaDeploymentId,proto3" json:"fuota_deployment_id,omitempty"`
	// Gateway IDs.
	// Note that the Gateways must be under the same tenant as the FUOTA Deployment.
	GatewayIds    []string `protobuf:"bytes,2,rep,name=gateway_ids,json=gatewayIds,proto3" json:"gateway_ids,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddGatewaysToFuotaDeploymentRequest) Reset() {
	*x = AddGatewaysToFuotaDeploymentRequest{}
	mi := &file_api_fuota_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddGatewaysToFuotaDeploymentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddGatewaysToFuotaDeploymentRequest) ProtoMessage() {}

func (x *AddGatewaysToFuotaDeploymentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AddGatewaysToFuotaDeploymentRequest.ProtoReflect.Descriptor instead.
func (*AddGatewaysToFuotaDeploymentRequest) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{17}
}

func (x *AddGatewaysToFuotaDeploymentRequest) GetFuotaDeploymentId() string {
	if x != nil {
		return x.FuotaDeploymentId
	}
	return ""
}

func (x *AddGatewaysToFuotaDeploymentRequest) GetGatewayIds() []string {
	if x != nil {
		return x.GatewayIds
	}
	return nil
}

type RemoveGatewaysFromFuotaDeploymentRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// FUOTA Deployment ID.
	FuotaDeploymentId string `protobuf:"bytes,1,opt,name=fuota_deployment_id,json=fuotaDeploymentId,proto3" json:"fuota_deployment_id,omitempty"`
	// Gateway IDs.
	GatewayIds    []string `protobuf:"bytes,2,rep,name=gateway_ids,json=gatewayIds,proto3" json:"gateway_ids,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RemoveGatewaysFromFuotaDeploymentRequest) Reset() {
	*x = RemoveGatewaysFromFuotaDeploymentRequest{}
	mi := &file_api_fuota_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RemoveGatewaysFromFuotaDeploymentRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RemoveGatewaysFromFuotaDeploymentRequest) ProtoMessage() {}

func (x *RemoveGatewaysFromFuotaDeploymentRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[18]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RemoveGatewaysFromFuotaDeploymentRequest.ProtoReflect.Descriptor instead.
func (*RemoveGatewaysFromFuotaDeploymentRequest) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{18}
}

func (x *RemoveGatewaysFromFuotaDeploymentRequest) GetFuotaDeploymentId() string {
	if x != nil {
		return x.FuotaDeploymentId
	}
	return ""
}

func (x *RemoveGatewaysFromFuotaDeploymentRequest) GetGatewayIds() []string {
	if x != nil {
		return x.GatewayIds
	}
	return nil
}

type ListFuotaDeploymentGatewaysRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Max number of gateways to return in the result-set.
	// If not set, it will be treated as 0, and the response will only return the total_count.
	Limit uint32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"`
	// Offset in the result-set (for pagination).
	Offset uint32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"`
	// FUOTA Deployment ID.
	FuotaDeploymentId string `protobuf:"bytes,3,opt,name=fuota_deployment_id,json=fuotaDeploymentId,proto3" json:"fuota_deployment_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *ListFuotaDeploymentGatewaysRequest) Reset() {
	*x = ListFuotaDeploymentGatewaysRequest{}
	mi := &file_api_fuota_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListFuotaDeploymentGatewaysRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListFuotaDeploymentGatewaysRequest) ProtoMessage() {}

func (x *ListFuotaDeploymentGatewaysRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[19]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListFuotaDeploymentGatewaysRequest.ProtoReflect.Descriptor instead.
func (*ListFuotaDeploymentGatewaysRequest) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{19}
}

func (x *ListFuotaDeploymentGatewaysRequest) GetLimit() uint32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *ListFuotaDeploymentGatewaysRequest) GetOffset() uint32 {
	if x != nil {
		return x.Offset
	}
	return 0
}

func (x *ListFuotaDeploymentGatewaysRequest) GetFuotaDeploymentId() string {
	if x != nil {
		return x.FuotaDeploymentId
	}
	return ""
}

type ListFuotaDeploymentGatewaysResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Total number of gateways.
	TotalCount uint32 `protobuf:"varint,1,opt,name=total_count,json=totalCount,proto3" json:"total_count,omitempty"`
	// Result-set.
	Result        []*FuotaDeploymentGatewayListItem `protobuf:"bytes,2,rep,name=result,proto3" json:"result,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListFuotaDeploymentGatewaysResponse) Reset() {
	*x = ListFuotaDeploymentGatewaysResponse{}
	mi := &file_api_fuota_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListFuotaDeploymentGatewaysResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListFuotaDeploymentGatewaysResponse) ProtoMessage() {}

func (x *ListFuotaDeploymentGatewaysResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[20]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListFuotaDeploymentGatewaysResponse.ProtoReflect.Descriptor instead.
func (*ListFuotaDeploymentGatewaysResponse) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{20}
}

func (x *ListFuotaDeploymentGatewaysResponse) GetTotalCount() uint32 {
	if x != nil {
		return x.TotalCount
	}
	return 0
}

func (x *ListFuotaDeploymentGatewaysResponse) GetResult() []*FuotaDeploymentGatewayListItem {
	if x != nil {
		return x.Result
	}
	return nil
}

type ListFuotaDeploymentJobsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// FUOTA Deployment ID.
	FuotaDeploymentId string `protobuf:"bytes,1,opt,name=fuota_deployment_id,json=fuotaDeploymentId,proto3" json:"fuota_deployment_id,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *ListFuotaDeploymentJobsRequest) Reset() {
	*x = ListFuotaDeploymentJobsRequest{}
	mi := &file_api_fuota_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListFuotaDeploymentJobsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListFuotaDeploymentJobsRequest) ProtoMessage() {}

func (x *ListFuotaDeploymentJobsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[21]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListFuotaDeploymentJobsRequest.ProtoReflect.Descriptor instead.
func (*ListFuotaDeploymentJobsRequest) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{21}
}

func (x *ListFuotaDeploymentJobsRequest) GetFuotaDeploymentId() string {
	if x != nil {
		return x.FuotaDeploymentId
	}
	return ""
}

type ListFuotaDeploymentJobsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Jobs.
	Jobs          []*FuotaDeploymentJob `protobuf:"bytes,1,rep,name=jobs,proto3" json:"jobs,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListFuotaDeploymentJobsResponse) Reset() {
	*x = ListFuotaDeploymentJobsResponse{}
	mi := &file_api_fuota_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListFuotaDeploymentJobsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListFuotaDeploymentJobsResponse) ProtoMessage() {}

func (x *ListFuotaDeploymentJobsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[22]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListFuotaDeploymentJobsResponse.ProtoReflect.Descriptor instead.
func (*ListFuotaDeploymentJobsResponse) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{22}
}

func (x *ListFuotaDeploymentJobsResponse) GetJobs() []*FuotaDeploymentJob {
	if x != nil {
		return x.Jobs
	}
	return nil
}

type FuotaDeploymentJob struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Job identifier.
	Job string `protobuf:"bytes,1,opt,name=job,proto3" json:"job,omitempty"`
	// Created at.
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Completed at.
	CompletedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"`
	// Max. retry count.
	MaxRetryCount uint32 `protobuf:"varint,4,opt,name=max_retry_count,json=maxRetryCount,proto3" json:"max_retry_count,omitempty"`
	// Attempt count.
	AttemptCount uint32 `protobuf:"varint,5,opt,name=attempt_count,json=attemptCount,proto3" json:"attempt_count,omitempty"`
	// Scheduler run after.
	SchedulerRunAfter *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=scheduler_run_after,json=schedulerRunAfter,proto3" json:"scheduler_run_after,omitempty"`
	// Warning message.
	WarningMsg string `protobuf:"bytes,7,opt,name=warning_msg,json=warningMsg,proto3" json:"warning_msg,omitempty"`
	// Error message.
	ErrorMsg      string `protobuf:"bytes,8,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FuotaDeploymentJob) Reset() {
	*x = FuotaDeploymentJob{}
	mi := &file_api_fuota_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FuotaDeploymentJob) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FuotaDeploymentJob) ProtoMessage() {}

func (x *FuotaDeploymentJob) ProtoReflect() protoreflect.Message {
	mi := &file_api_fuota_proto_msgTypes[23]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FuotaDeploymentJob.ProtoReflect.Descriptor instead.
func (*FuotaDeploymentJob) Descriptor() ([]byte, []int) {
	return file_api_fuota_proto_rawDescGZIP(), []int{23}
}

func (x *FuotaDeploymentJob) GetJob() string {
	if x != nil {
		return x.Job
	}
	return ""
}

func (x *FuotaDeploymentJob) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *FuotaDeploymentJob) GetCompletedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CompletedAt
	}
	return nil
}

func (x *FuotaDeploymentJob) GetMaxRetryCount() uint32 {
	if x != nil {
		return x.MaxRetryCount
	}
	return 0
}

func (x *FuotaDeploymentJob) GetAttemptCount() uint32 {
	if x != nil {
		return x.AttemptCount
	}
	return 0
}

func (x *FuotaDeploymentJob) GetSchedulerRunAfter() *timestamppb.Timestamp {
	if x != nil {
		return x.SchedulerRunAfter
	}
	return nil
}

func (x *FuotaDeploymentJob) GetWarningMsg() string {
	if x != nil {
		return x.WarningMsg
	}
	return ""
}

func (x *FuotaDeploymentJob) GetErrorMsg() string {
	if x != nil {
		return x.ErrorMsg
	}
	return ""
}

var File_api_fuota_proto protoreflect.FileDescriptor

const file_api_fuota_proto_rawDesc = "" +
	"\n" +
	"\x0fapi/fuota.proto\x12\x03api\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x13common/common.proto\x1a\x19api/multicast_group.proto\"\xb1\v\n" +
	"\x0fFuotaDeployment\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12%\n" +
	"\x0eapplication_id\x18\x02 \x01(\tR\rapplicationId\x12*\n" +
	"\x11device_profile_id\x18\x03 \x01(\tR\x0fdeviceProfileId\x12\x12\n" +
	"\x04name\x18\x04 \x01(\tR\x04name\x12I\n" +
	"\x14multicast_group_type\x18\x05 \x01(\x0e2\x17.api.MulticastGroupTypeR\x12multicastGroupType\x12k\n" +
	"!multicast_class_c_scheduling_type\x18\x06 \x01(\x0e2!.api.MulticastGroupSchedulingTypeR\x1dmulticastClassCSchedulingType\x12!\n" +
	"\fmulticast_dr\x18\a \x01(\rR\vmulticastDr\x12S\n" +
	"'multicast_class_b_ping_slot_periodicity\x18\b \x01(\rR\"multicastClassBPingSlotPeriodicity\x12/\n" +
	"\x13multicast_frequency\x18\t \x01(\rR\x12multicastFrequency\x12+\n" +
	"\x11multicast_timeout\x18\n" +
	" \x01(\rR\x10multicastTimeout\x12>\n" +
	"\x1bcalculate_multicast_timeout\x18\v \x01(\bR\x19calculateMulticastTimeout\x125\n" +
	"\x17unicast_max_retry_count\x18\f \x01(\rR\x14unicastMaxRetryCount\x12>\n" +
	"\x1bfragmentation_fragment_size\x18\r \x01(\rR\x19fragmentationFragmentSize\x12Q\n" +
	"%calculate_fragmentation_fragment_size\x18\x0e \x01(\bR\"calculateFragmentationFragmentSize\x12N\n" +
	"#fragmentation_redundancy_percentage\x18\x0f \x01(\rR!fragmentationRedundancyPercentage\x12>\n" +
	"\x1bfragmentation_session_index\x18\x10 \x01(\rR\x19fragmentationSessionIndex\x121\n" +
	"\x14fragmentation_matrix\x18\x11 \x01(\rR\x13fragmentationMatrix\x12A\n" +
	"\x1dfragmentation_block_ack_delay\x18\x12 \x01(\rR\x1afragmentationBlockAckDelay\x129\n" +
	"\x18fragmentation_descriptor\x18\x13 \x01(\fR\x17fragmentationDescriptor\x12w\n" +
	"$request_fragmentation_session_status\x18\x14 \x01(\x0e2&.api.RequestFragmentationSessionStatusR!requestFragmentationSessionStatus\x12\x18\n" +
	"\apayload\x18\x15 \x01(\fR\apayload\x12o\n" +
	"\x1bon_complete_set_device_tags\x18\x16 \x03(\v21.api.FuotaDeployment.OnCompleteSetDeviceTagsEntryR\x17onCompleteSetDeviceTags\x1aJ\n" +
	"\x1cOnCompleteSetDeviceTagsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xad\x02\n" +
	"\x17FuotaDeploymentListItem\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x129\n" +
	"\n" +
	"created_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" +
	"\n" +
	"updated_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x129\n" +
	"\n" +
	"started_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tstartedAt\x12=\n" +
	"\fcompleted_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\vcompletedAt\x12\x12\n" +
	"\x04name\x18\x06 \x01(\tR\x04name\"\xe3\x04\n" +
	"\x1dFuotaDeploymentDeviceListItem\x12.\n" +
	"\x13fuota_deployment_id\x18\x01 \x01(\tR\x11fuotaDeploymentId\x12\x17\n" +
	"\adev_eui\x18\x02 \x01(\tR\x06devEui\x129\n" +
	"\n" +
	"created_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12=\n" +
	"\fcompleted_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\vcompletedAt\x12X\n" +
	"\x1bmc_group_setup_completed_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\x17mcGroupSetupCompletedAt\x12Q\n" +
	"\x17mc_session_completed_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\x14mcSessionCompletedAt\x12`\n" +
	"\x1ffrag_session_setup_completed_at\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\x1bfragSessionSetupCompletedAt\x12S\n" +
	"\x18frag_status_completed_at\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\x15fragStatusCompletedAt\x12\x1b\n" +
	"\terror_msg\x18\t \x01(\tR\berrorMsg\"\xaa\x01\n" +
	"\x1eFuotaDeploymentGatewayListItem\x12.\n" +
	"\x13fuota_deployment_id\x18\x01 \x01(\tR\x11fuotaDeploymentId\x12\x1d\n" +
	"\n" +
	"gateway_id\x18\x02 \x01(\tR\tgatewayId\x129\n" +
	"\n" +
	"created_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"T\n" +
	"\x1cCreateFuotaDeploymentRequest\x124\n" +
	"\n" +
	"deployment\x18\x01 \x01(\v2\x14.api.FuotaDeploymentR\n" +
	"deployment\"/\n" +
	"\x1dCreateFuotaDeploymentResponse\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\"+\n" +
	"\x19GetFuotaDeploymentRequest\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\"\xc2\x02\n" +
	"\x1aGetFuotaDeploymentResponse\x124\n" +
	"\n" +
	"deployment\x18\x01 \x01(\v2\x14.api.FuotaDeploymentR\n" +
	"deployment\x129\n" +
	"\n" +
	"created_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" +
	"\n" +
	"updated_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x129\n" +
	"\n" +
	"started_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tstartedAt\x12=\n" +
	"\fcompleted_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\vcompletedAt\"T\n" +
	"\x1cUpdateFuotaDeploymentRequest\x124\n" +
	"\n" +
	"deployment\x18\x01 \x01(\v2\x14.api.FuotaDeploymentR\n" +
	"deployment\".\n" +
	"\x1cDeleteFuotaDeploymentRequest\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\"-\n" +
	"\x1bStartFuotaDeploymentRequest\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\"r\n" +
	"\x1bListFuotaDeploymentsRequest\x12\x14\n" +
	"\x05limit\x18\x01 \x01(\rR\x05limit\x12\x16\n" +
	"\x06offset\x18\x02 \x01(\rR\x06offset\x12%\n" +
	"\x0eapplication_id\x18\x03 \x01(\tR\rapplicationId\"u\n" +
	"\x1cListFuotaDeploymentsResponse\x12\x1f\n" +
	"\vtotal_count\x18\x01 \x01(\rR\n" +
	"totalCount\x124\n" +
	"\x06result\x18\x02 \x03(\v2\x1c.api.FuotaDeploymentListItemR\x06result\"o\n" +
	"\"AddDevicesToFuotaDeploymentRequest\x12.\n" +
	"\x13fuota_deployment_id\x18\x01 \x01(\tR\x11fuotaDeploymentId\x12\x19\n" +
	"\bdev_euis\x18\x02 \x03(\tR\adevEuis\"t\n" +
	"'RemoveDevicesFromFuotaDeploymentRequest\x12.\n" +
	"\x13fuota_deployment_id\x18\x01 \x01(\tR\x11fuotaDeploymentId\x12\x19\n" +
	"\bdev_euis\x18\x02 \x03(\tR\adevEuis\"\x81\x01\n" +
	"!ListFuotaDeploymentDevicesRequest\x12\x14\n" +
	"\x05limit\x18\x01 \x01(\rR\x05limit\x12\x16\n" +
	"\x06offset\x18\x02 \x01(\rR\x06offset\x12.\n" +
	"\x13fuota_deployment_id\x18\x03 \x01(\tR\x11fuotaDeploymentId\"\x81\x01\n" +
	"\"ListFuotaDeploymentDevicesResponse\x12\x1f\n" +
	"\vtotal_count\x18\x01 \x01(\rR\n" +
	"totalCount\x12:\n" +
	"\x06result\x18\x02 \x03(\v2\".api.FuotaDeploymentDeviceListItemR\x06result\"v\n" +
	"#AddGatewaysToFuotaDeploymentRequest\x12.\n" +
	"\x13fuota_deployment_id\x18\x01 \x01(\tR\x11fuotaDeploymentId\x12\x1f\n" +
	"\vgateway_ids\x18\x02 \x03(\tR\n" +
	"gatewayIds\"{\n" +
	"(RemoveGatewaysFromFuotaDeploymentRequest\x12.\n" +
	"\x13fuota_deployment_id\x18\x01 \x01(\tR\x11fuotaDeploymentId\x12\x1f\n" +
	"\vgateway_ids\x18\x02 \x03(\tR\n" +
	"gatewayIds\"\x82\x01\n" +
	"\"ListFuotaDeploymentGatewaysRequest\x12\x14\n" +
	"\x05limit\x18\x01 \x01(\rR\x05limit\x12\x16\n" +
	"\x06offset\x18\x02 \x01(\rR\x06offset\x12.\n" +
	"\x13fuota_deployment_id\x18\x03 \x01(\tR\x11fuotaDeploymentId\"\x83\x01\n" +
	"#ListFuotaDeploymentGatewaysResponse\x12\x1f\n" +
	"\vtotal_count\x18\x01 \x01(\rR\n" +
	"totalCount\x12;\n" +
	"\x06result\x18\x02 \x03(\v2#.api.FuotaDeploymentGatewayListItemR\x06result\"P\n" +
	"\x1eListFuotaDeploymentJobsRequest\x12.\n" +
	"\x13fuota_deployment_id\x18\x01 \x01(\tR\x11fuotaDeploymentId\"N\n" +
	"\x1fListFuotaDeploymentJobsResponse\x12+\n" +
	"\x04jobs\x18\x01 \x03(\v2\x17.api.FuotaDeploymentJobR\x04jobs\"\xf7\x02\n" +
	"\x12FuotaDeploymentJob\x12\x10\n" +
	"\x03job\x18\x01 \x01(\tR\x03job\x129\n" +
	"\n" +
	"created_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12=\n" +
	"\fcompleted_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\vcompletedAt\x12&\n" +
	"\x0fmax_retry_count\x18\x04 \x01(\rR\rmaxRetryCount\x12#\n" +
	"\rattempt_count\x18\x05 \x01(\rR\fattemptCount\x12J\n" +
	"\x13scheduler_run_after\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\x11schedulerRunAfter\x12\x1f\n" +
	"\vwarning_msg\x18\a \x01(\tR\n" +
	"warningMsg\x12\x1b\n" +
	"\terror_msg\x18\b \x01(\tR\berrorMsg*j\n" +
	"!RequestFragmentationSessionStatus\x12\x0e\n" +
	"\n" +
	"NO_REQUEST\x10\x00\x12\x1a\n" +
	"\x16AFTER_FRAGMENT_ENQUEUE\x10\x01\x12\x19\n" +
	"\x15AFTER_SESSION_TIMEOUT\x10\x022\x82\t\n" +
	"\fFuotaService\x12[\n" +
	"\x10CreateDeployment\x12!.api.CreateFuotaDeploymentRequest\x1a\".api.CreateFuotaDeploymentResponse\"\x00\x12R\n" +
	"\rGetDeployment\x12\x1e.api.GetFuotaDeploymentRequest\x1a\x1f.api.GetFuotaDeploymentResponse\"\x00\x12O\n" +
	"\x10UpdateDeployment\x12!.api.UpdateFuotaDeploymentRequest\x1a\x16.google.protobuf.Empty\"\x00\x12O\n" +
	"\x10DeleteDeployment\x12!.api.DeleteFuotaDeploymentRequest\x1a\x16.google.protobuf.Empty\"\x00\x12M\n" +
	"\x0fStartDeployment\x12 .api.StartFuotaDeploymentRequest\x1a\x16.google.protobuf.Empty\"\x00\x12X\n" +
	"\x0fListDeployments\x12 .api.ListFuotaDeploymentsRequest\x1a!.api.ListFuotaDeploymentsResponse\"\x00\x12O\n" +
	"\n" +
	"AddDevices\x12'.api.AddDevicesToFuotaDeploymentRequest\x1a\x16.google.protobuf.Empty\"\x00\x12W\n" +
	"\rRemoveDevices\x12,.api.RemoveDevicesFromFuotaDeploymentRequest\x1a\x16.google.protobuf.Empty\"\x00\x12`\n" +
	"\vListDevices\x12&.api.ListFuotaDeploymentDevicesRequest\x1a'.api.ListFuotaDeploymentDevicesResponse\"\x00\x12Q\n" +
	"\vAddGateways\x12(.api.AddGatewaysToFuotaDeploymentRequest\x1a\x16.google.protobuf.Empty\"\x00\x12c\n" +
	"\fListGateways\x12'.api.ListFuotaDeploymentGatewaysRequest\x1a(.api.ListFuotaDeploymentGatewaysResponse\"\x00\x12Y\n" +
	"\x0eRemoveGateways\x12-.api.RemoveGatewaysFromFuotaDeploymentRequest\x1a\x16.google.protobuf.Empty\"\x00\x12W\n" +
	"\bListJobs\x12#.api.ListFuotaDeploymentJobsRequest\x1a$.api.ListFuotaDeploymentJobsResponse\"\x00B\x90\x01\n" +
	"\x11io.chirpstack.apiB\n" +
	"FuotaProtoP\x01Z.github.com/chirpstack/chirpstack/api/go/v4/api\xaa\x02\x0eChirpstack.Api\xca\x02\x0eChirpstack\\Api\xe2\x02\x1aGPBMetadata\\Chirpstack\\Apib\x06proto3"

var (
	file_api_fuota_proto_rawDescOnce sync.Once
	file_api_fuota_proto_rawDescData []byte
)

func file_api_fuota_proto_rawDescGZIP() []byte {
	file_api_fuota_proto_rawDescOnce.Do(func() {
		file_api_fuota_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_api_fuota_proto_rawDesc), len(file_api_fuota_proto_rawDesc)))
	})
	return file_api_fuota_proto_rawDescData
}

var file_api_fuota_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_api_fuota_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
var file_api_fuota_proto_goTypes = []any{
	(RequestFragmentationSessionStatus)(0),           // 0: api.RequestFragmentationSessionStatus
	(*FuotaDeployment)(nil),                          // 1: api.FuotaDeployment
	(*FuotaDeploymentListItem)(nil),                  // 2: api.FuotaDeploymentListItem
	(*FuotaDeploymentDeviceListItem)(nil),            // 3: api.FuotaDeploymentDeviceListItem
	(*FuotaDeploymentGatewayListItem)(nil),           // 4: api.FuotaDeploymentGatewayListItem
	(*CreateFuotaDeploymentRequest)(nil),             // 5: api.CreateFuotaDeploymentRequest
	(*CreateFuotaDeploymentResponse)(nil),            // 6: api.CreateFuotaDeploymentResponse
	(*GetFuotaDeploymentRequest)(nil),                // 7: api.GetFuotaDeploymentRequest
	(*GetFuotaDeploymentResponse)(nil),               // 8: api.GetFuotaDeploymentResponse
	(*UpdateFuotaDeploymentRequest)(nil),             // 9: api.UpdateFuotaDeploymentRequest
	(*DeleteFuotaDeploymentRequest)(nil),             // 10: api.DeleteFuotaDeploymentRequest
	(*StartFuotaDeploymentRequest)(nil),              // 11: api.StartFuotaDeploymentRequest
	(*ListFuotaDeploymentsRequest)(nil),              // 12: api.ListFuotaDeploymentsRequest
	(*ListFuotaDeploymentsResponse)(nil),             // 13: api.ListFuotaDeploymentsResponse
	(*AddDevicesToFuotaDeploymentRequest)(nil),       // 14: api.AddDevicesToFuotaDeploymentRequest
	(*RemoveDevicesFromFuotaDeploymentRequest)(nil),  // 15: api.RemoveDevicesFromFuotaDeploymentRequest
	(*ListFuotaDeploymentDevicesRequest)(nil),        // 16: api.ListFuotaDeploymentDevicesRequest
	(*ListFuotaDeploymentDevicesResponse)(nil),       // 17: api.ListFuotaDeploymentDevicesResponse
	(*AddGatewaysToFuotaDeploymentRequest)(nil),      // 18: api.AddGatewaysToFuotaDeploymentRequest
	(*RemoveGatewaysFromFuotaDeploymentRequest)(nil), // 19: api.RemoveGatewaysFromFuotaDeploymentRequest
	(*ListFuotaDeploymentGatewaysRequest)(nil),       // 20: api.ListFuotaDeploymentGatewaysRequest
	(*ListFuotaDeploymentGatewaysResponse)(nil),      // 21: api.ListFuotaDeploymentGatewaysResponse
	(*ListFuotaDeploymentJobsRequest)(nil),           // 22: api.ListFuotaDeploymentJobsRequest
	(*ListFuotaDeploymentJobsResponse)(nil),          // 23: api.ListFuotaDeploymentJobsResponse
	(*FuotaDeploymentJob)(nil),                       // 24: api.FuotaDeploymentJob
	nil,                                              // 25: api.FuotaDeployment.OnCompleteSetDeviceTagsEntry
	(MulticastGroupType)(0),                          // 26: api.MulticastGroupType
	(MulticastGroupSchedulingType)(0),                // 27: api.MulticastGroupSchedulingType
	(*timestamppb.Timestamp)(nil),                    // 28: google.protobuf.Timestamp
	(*emptypb.Empty)(nil),                            // 29: google.protobuf.Empty
}
var file_api_fuota_proto_depIdxs = []int32{
	26, // 0: api.FuotaDeployment.multicast_group_type:type_name -> api.MulticastGroupType
	27, // 1: api.FuotaDeployment.multicast_class_c_scheduling_type:type_name -> api.MulticastGroupSchedulingType
	0,  // 2: api.FuotaDeployment.request_fragmentation_session_status:type_name -> api.RequestFragmentationSessionStatus
	25, // 3: api.FuotaDeployment.on_complete_set_device_tags:type_name -> api.FuotaDeployment.OnCompleteSetDeviceTagsEntry
	28, // 4: api.FuotaDeploymentListItem.created_at:type_name -> google.protobuf.Timestamp
	28, // 5: api.FuotaDeploymentListItem.updated_at:type_name -> google.protobuf.Timestamp
	28, // 6: api.FuotaDeploymentListItem.started_at:type_name -> google.protobuf.Timestamp
	28, // 7: api.FuotaDeploymentListItem.completed_at:type_name -> google.protobuf.Timestamp
	28, // 8: api.FuotaDeploymentDeviceListItem.created_at:type_name -> google.protobuf.Timestamp
	28, // 9: api.FuotaDeploymentDeviceListItem.completed_at:type_name -> google.protobuf.Timestamp
	28, // 10: api.FuotaDeploymentDeviceListItem.mc_group_setup_completed_at:type_name -> google.protobuf.Timestamp
	28, // 11: api.FuotaDeploymentDeviceListItem.mc_session_completed_at:type_name -> google.protobuf.Timestamp
	28, // 12: api.FuotaDeploymentDeviceListItem.frag_session_setup_completed_at:type_name -> google.protobuf.Timestamp
	28, // 13: api.FuotaDeploymentDeviceListItem.frag_status_completed_at:type_name -> google.protobuf.Timestamp
	28, // 14: api.FuotaDeploymentGatewayListItem.created_at:type_name -> google.protobuf.Timestamp
	1,  // 15: api.CreateFuotaDeploymentRequest.deployment:type_name -> api.FuotaDeployment
	1,  // 16: api.GetFuotaDeploymentResponse.deployment:type_name -> api.FuotaDeployment
	28, // 17: api.GetFuotaDeploymentResponse.created_at:type_name -> google.protobuf.Timestamp
	28, // 18: api.GetFuotaDeploymentResponse.updated_at:type_name -> google.protobuf.Timestamp
	28, // 19: api.GetFuotaDeploymentResponse.started_at:type_name -> google.protobuf.Timestamp
	28, // 20: api.GetFuotaDeploymentResponse.completed_at:type_name -> google.protobuf.Timestamp
	1,  // 21: api.UpdateFuotaDeploymentRequest.deployment:type_name -> api.FuotaDeployment
	2,  // 22: api.ListFuotaDeploymentsResponse.result:type_name -> api.FuotaDeploymentListItem
	3,  // 23: api.ListFuotaDeploymentDevicesResponse.result:type_name -> api.FuotaDeploymentDeviceListItem
	4,  // 24: api.ListFuotaDeploymentGatewaysResponse.result:type_name -> api.FuotaDeploymentGatewayListItem
	24, // 25: api.ListFuotaDeploymentJobsResponse.jobs:type_name -> api.FuotaDeploymentJob
	28, // 26: api.FuotaDeploymentJob.created_at:type_name -> google.protobuf.Timestamp
	28, // 27: api.FuotaDeploymentJob.completed_at:type_name -> google.protobuf.Timestamp
	28, // 28: api.FuotaDeploymentJob.scheduler_run_after:type_name -> google.protobuf.Timestamp
	5,  // 29: api.FuotaService.CreateDeployment:input_type -> api.CreateFuotaDeploymentRequest
	7,  // 30: api.FuotaService.GetDeployment:input_type -> api.GetFuotaDeploymentRequest
	9,  // 31: api.FuotaService.UpdateDeployment:input_type -> api.UpdateFuotaDeploymentRequest
	10, // 32: api.FuotaService.DeleteDeployment:input_type -> api.DeleteFuotaDeploymentRequest
	11, // 33: api.FuotaService.StartDeployment:input_type -> api.StartFuotaDeploymentRequest
	12, // 34: api.FuotaService.ListDeployments:input_type -> api.ListFuotaDeploymentsRequest
	14, // 35: api.FuotaService.AddDevices:input_type -> api.AddDevicesToFuotaDeploymentRequest
	15, // 36: api.FuotaService.RemoveDevices:input_type -> api.RemoveDevicesFromFuotaDeploymentRequest
	16, // 37: api.FuotaService.ListDevices:input_type -> api.ListFuotaDeploymentDevicesRequest
	18, // 38: api.FuotaService.AddGateways:input_type -> api.AddGatewaysToFuotaDeploymentRequest
	20, // 39: api.FuotaService.ListGateways:input_type -> api.ListFuotaDeploymentGatewaysRequest
	19, // 40: api.FuotaService.RemoveGateways:input_type -> api.RemoveGatewaysFromFuotaDeploymentRequest
	22, // 41: api.FuotaService.ListJobs:input_type -> api.ListFuotaDeploymentJobsRequest
	6,  // 42: api.FuotaService.CreateDeployment:output_type -> api.CreateFuotaDeploymentResponse
	8,  // 43: api.FuotaService.GetDeployment:output_type -> api.GetFuotaDeploymentResponse
	29, // 44: api.FuotaService.UpdateDeployment:output_type -> google.protobuf.Empty
	29, // 45: api.FuotaService.DeleteDeployment:output_type -> google.protobuf.Empty
	29, // 46: api.FuotaService.StartDeployment:output_type -> google.protobuf.Empty
	13, // 47: api.FuotaService.ListDeployments:output_type -> api.ListFuotaDeploymentsResponse
	29, // 48: api.FuotaService.AddDevices:output_type -> google.protobuf.Empty
	29, // 49: api.FuotaService.RemoveDevices:output_type -> google.protobuf.Empty
	17, // 50: api.FuotaService.ListDevices:output_type -> api.ListFuotaDeploymentDevicesResponse
	29, // 51: api.FuotaService.AddGateways:output_type -> google.protobuf.Empty
	21, // 52: api.FuotaService.ListGateways:output_type -> api.ListFuotaDeploymentGatewaysResponse
	29, // 53: api.FuotaService.RemoveGateways:output_type -> google.protobuf.Empty
	23, // 54: api.FuotaService.ListJobs:output_type -> api.ListFuotaDeploymentJobsResponse
	42, // [42:55] is the sub-list for method output_type
	29, // [29:42] is the sub-list for method input_type
	29, // [29:29] is the sub-list for extension type_name
	29, // [29:29] is the sub-list for extension extendee
	0,  // [0:29] is the sub-list for field type_name
}

func init() { file_api_fuota_proto_init() }
func file_api_fuota_proto_init() {
	if File_api_fuota_proto != nil {
		return
	}
	file_api_multicast_group_proto_init()
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_fuota_proto_rawDesc), len(file_api_fuota_proto_rawDesc)),
			NumEnums:      1,
			NumMessages:   25,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_api_fuota_proto_goTypes,
		DependencyIndexes: file_api_fuota_proto_depIdxs,
		EnumInfos:         file_api_fuota_proto_enumTypes,
		MessageInfos:      file_api_fuota_proto_msgTypes,
	}.Build()
	File_api_fuota_proto = out.File
	file_api_fuota_proto_goTypes = nil
	file_api_fuota_proto_depIdxs = nil
}
