diff --git a/Dockerfile b/Dockerfile index fbcee5f..a5f4f7d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,7 +23,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ go mod download && go mod verify COPY buf.gen.yaml buf.yaml ./ -RUN buf generate buf.build/agynio/api --path agynio/api/chat/v1 --path agynio/api/threads/v1 +RUN buf generate buf.build/agynio/api --path agynio/api/chat/v1 --path agynio/api/threads/v1 --path agynio/api/runners/v1 --path agynio/api/runner/v1 --path agynio/api/identity/v1 COPY . . diff --git a/charts/chat/templates/_helpers.tpl b/charts/chat/templates/_helpers.tpl index 0ea276d..a313b1a 100644 --- a/charts/chat/templates/_helpers.tpl +++ b/charts/chat/templates/_helpers.tpl @@ -4,6 +4,12 @@ {{- $threadsAddress := .Values.chat.threadsAddress -}} {{- $env = append $env (dict "name" "THREADS_ADDRESS" "value" $threadsAddress) -}} +{{- $runnersAddress := .Values.chat.runnersAddress -}} +{{- $env = append $env (dict "name" "RUNNERS_ADDRESS" "value" $runnersAddress) -}} + +{{- $identityAddress := .Values.chat.identityAddress -}} +{{- $env = append $env (dict "name" "IDENTITY_ADDRESS" "value" $identityAddress) -}} + {{- $userEnv := .Values.env | default (list) -}} {{- $_ := set .Values "env" (concat $env $userEnv) -}} {{- end -}} diff --git a/charts/chat/values.yaml b/charts/chat/values.yaml index caaa6a0..fd2816d 100644 --- a/charts/chat/values.yaml +++ b/charts/chat/values.yaml @@ -156,3 +156,5 @@ metrics: # -- Chat-specific configuration chat: threadsAddress: "threads:50051" + runnersAddress: "runners:50051" + identityAddress: "identity:50051" diff --git a/cmd/chat/main.go b/cmd/chat/main.go index b979590..3708235 100644 --- a/cmd/chat/main.go +++ b/cmd/chat/main.go @@ -11,6 +11,8 @@ import ( "syscall" chatv1 "github.com/agynio/chat/gen/go/agynio/api/chat/v1" + identityv1 "github.com/agynio/chat/gen/go/agynio/api/identity/v1" + runnersv1 "github.com/agynio/chat/gen/go/agynio/api/runners/v1" threadsv1 "github.com/agynio/chat/gen/go/agynio/api/threads/v1" "github.com/jackc/pgx/v5/pgxpool" "google.golang.org/grpc" @@ -43,6 +45,18 @@ func run() error { } defer threadsConn.Close() + runnersConn, err := grpc.NewClient(cfg.RunnersAddress, grpc.WithTransportCredentials(insecure.NewCredentials())) + if err != nil { + return fmt.Errorf("dial runners: %w", err) + } + defer runnersConn.Close() + + identityConn, err := grpc.NewClient(cfg.IdentityAddress, grpc.WithTransportCredentials(insecure.NewCredentials())) + if err != nil { + return fmt.Errorf("dial identity: %w", err) + } + defer identityConn.Close() + poolCfg, err := pgxpool.ParseConfig(cfg.DatabaseURL) if err != nil { return fmt.Errorf("parse database url: %w", err) @@ -58,10 +72,12 @@ func run() error { } threadsClient := threadsv1.NewThreadsServiceClient(threadsConn) + runnersClient := runnersv1.NewRunnersServiceClient(runnersConn) + identityClient := identityv1.NewIdentityServiceClient(identityConn) chatStore := store.New(pool) grpcServer := grpc.NewServer() - chatv1.RegisterChatServiceServer(grpcServer, server.New(threadsClient, chatStore)) + chatv1.RegisterChatServiceServer(grpcServer, server.New(threadsClient, runnersClient, identityClient, chatStore)) lis, err := net.Listen("tcp", cfg.GRPCAddress) if err != nil { diff --git a/devspace.yaml b/devspace.yaml index b11a4b9..b6f851e 100644 --- a/devspace.yaml +++ b/devspace.yaml @@ -158,7 +158,7 @@ pipelines: sleep 5 echo "Generating protobuf types..." exec_container --label-selector=app.kubernetes.io/name=devspace-app,app.kubernetes.io/component=chat-e2e -n ${CHAT_NAMESPACE} -- \ - bash -c 'cd /opt/app/data && buf generate buf.build/agynio/api --path agynio/api/chat/v1 --path agynio/api/threads/v1' + bash -c 'cd /opt/app/data && buf generate buf.build/agynio/api --path agynio/api/chat/v1 --path agynio/api/threads/v1 --path agynio/api/runners/v1 --path agynio/api/runner/v1 --path agynio/api/identity/v1' echo "Running e2e tests..." exec_container --label-selector=app.kubernetes.io/name=devspace-app,app.kubernetes.io/component=chat-e2e -n ${CHAT_NAMESPACE} -- \ bash -c 'cd /opt/app/data && go test -v -count=1 ./test/e2e/...' diff --git a/gen/go/agynio/api/identity/v1/identity.pb.go b/gen/go/agynio/api/identity/v1/identity.pb.go new file mode 100644 index 0000000..5b11367 --- /dev/null +++ b/gen/go/agynio/api/identity/v1/identity.pb.go @@ -0,0 +1,1016 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.11 +// protoc (unknown) +// source: agynio/api/identity/v1/identity.proto + +package identityv1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 IdentityType int32 + +const ( + IdentityType_IDENTITY_TYPE_UNSPECIFIED IdentityType = 0 + IdentityType_IDENTITY_TYPE_AGENT IdentityType = 1 + IdentityType_IDENTITY_TYPE_RUNNER IdentityType = 2 + IdentityType_IDENTITY_TYPE_USER IdentityType = 4 + IdentityType_IDENTITY_TYPE_APP IdentityType = 5 +) + +// Enum value maps for IdentityType. +var ( + IdentityType_name = map[int32]string{ + 0: "IDENTITY_TYPE_UNSPECIFIED", + 1: "IDENTITY_TYPE_AGENT", + 2: "IDENTITY_TYPE_RUNNER", + 4: "IDENTITY_TYPE_USER", + 5: "IDENTITY_TYPE_APP", + } + IdentityType_value = map[string]int32{ + "IDENTITY_TYPE_UNSPECIFIED": 0, + "IDENTITY_TYPE_AGENT": 1, + "IDENTITY_TYPE_RUNNER": 2, + "IDENTITY_TYPE_USER": 4, + "IDENTITY_TYPE_APP": 5, + } +) + +func (x IdentityType) Enum() *IdentityType { + p := new(IdentityType) + *p = x + return p +} + +func (x IdentityType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IdentityType) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_identity_v1_identity_proto_enumTypes[0].Descriptor() +} + +func (IdentityType) Type() protoreflect.EnumType { + return &file_agynio_api_identity_v1_identity_proto_enumTypes[0] +} + +func (x IdentityType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IdentityType.Descriptor instead. +func (IdentityType) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{0} +} + +type RegisterIdentityRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + IdentityId string `protobuf:"bytes,1,opt,name=identity_id,json=identityId,proto3" json:"identity_id,omitempty"` + IdentityType IdentityType `protobuf:"varint,2,opt,name=identity_type,json=identityType,proto3,enum=agynio.api.identity.v1.IdentityType" json:"identity_type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RegisterIdentityRequest) Reset() { + *x = RegisterIdentityRequest{} + mi := &file_agynio_api_identity_v1_identity_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RegisterIdentityRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterIdentityRequest) ProtoMessage() {} + +func (x *RegisterIdentityRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_identity_v1_identity_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 RegisterIdentityRequest.ProtoReflect.Descriptor instead. +func (*RegisterIdentityRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{0} +} + +func (x *RegisterIdentityRequest) GetIdentityId() string { + if x != nil { + return x.IdentityId + } + return "" +} + +func (x *RegisterIdentityRequest) GetIdentityType() IdentityType { + if x != nil { + return x.IdentityType + } + return IdentityType_IDENTITY_TYPE_UNSPECIFIED +} + +type RegisterIdentityResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RegisterIdentityResponse) Reset() { + *x = RegisterIdentityResponse{} + mi := &file_agynio_api_identity_v1_identity_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RegisterIdentityResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterIdentityResponse) ProtoMessage() {} + +func (x *RegisterIdentityResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_identity_v1_identity_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 RegisterIdentityResponse.ProtoReflect.Descriptor instead. +func (*RegisterIdentityResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{1} +} + +type GetIdentityTypeRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + IdentityId string `protobuf:"bytes,1,opt,name=identity_id,json=identityId,proto3" json:"identity_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetIdentityTypeRequest) Reset() { + *x = GetIdentityTypeRequest{} + mi := &file_agynio_api_identity_v1_identity_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetIdentityTypeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetIdentityTypeRequest) ProtoMessage() {} + +func (x *GetIdentityTypeRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_identity_v1_identity_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 GetIdentityTypeRequest.ProtoReflect.Descriptor instead. +func (*GetIdentityTypeRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{2} +} + +func (x *GetIdentityTypeRequest) GetIdentityId() string { + if x != nil { + return x.IdentityId + } + return "" +} + +type GetIdentityTypeResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + IdentityType IdentityType `protobuf:"varint,1,opt,name=identity_type,json=identityType,proto3,enum=agynio.api.identity.v1.IdentityType" json:"identity_type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetIdentityTypeResponse) Reset() { + *x = GetIdentityTypeResponse{} + mi := &file_agynio_api_identity_v1_identity_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetIdentityTypeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetIdentityTypeResponse) ProtoMessage() {} + +func (x *GetIdentityTypeResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_identity_v1_identity_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 GetIdentityTypeResponse.ProtoReflect.Descriptor instead. +func (*GetIdentityTypeResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{3} +} + +func (x *GetIdentityTypeResponse) GetIdentityType() IdentityType { + if x != nil { + return x.IdentityType + } + return IdentityType_IDENTITY_TYPE_UNSPECIFIED +} + +type BatchGetIdentityTypesRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + IdentityIds []string `protobuf:"bytes,1,rep,name=identity_ids,json=identityIds,proto3" json:"identity_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BatchGetIdentityTypesRequest) Reset() { + *x = BatchGetIdentityTypesRequest{} + mi := &file_agynio_api_identity_v1_identity_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BatchGetIdentityTypesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchGetIdentityTypesRequest) ProtoMessage() {} + +func (x *BatchGetIdentityTypesRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_identity_v1_identity_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 BatchGetIdentityTypesRequest.ProtoReflect.Descriptor instead. +func (*BatchGetIdentityTypesRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{4} +} + +func (x *BatchGetIdentityTypesRequest) GetIdentityIds() []string { + if x != nil { + return x.IdentityIds + } + return nil +} + +type IdentityTypeEntry struct { + state protoimpl.MessageState `protogen:"open.v1"` + IdentityId string `protobuf:"bytes,1,opt,name=identity_id,json=identityId,proto3" json:"identity_id,omitempty"` + IdentityType IdentityType `protobuf:"varint,2,opt,name=identity_type,json=identityType,proto3,enum=agynio.api.identity.v1.IdentityType" json:"identity_type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IdentityTypeEntry) Reset() { + *x = IdentityTypeEntry{} + mi := &file_agynio_api_identity_v1_identity_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IdentityTypeEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdentityTypeEntry) ProtoMessage() {} + +func (x *IdentityTypeEntry) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_identity_v1_identity_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 IdentityTypeEntry.ProtoReflect.Descriptor instead. +func (*IdentityTypeEntry) Descriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{5} +} + +func (x *IdentityTypeEntry) GetIdentityId() string { + if x != nil { + return x.IdentityId + } + return "" +} + +func (x *IdentityTypeEntry) GetIdentityType() IdentityType { + if x != nil { + return x.IdentityType + } + return IdentityType_IDENTITY_TYPE_UNSPECIFIED +} + +type BatchGetIdentityTypesResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Entries []*IdentityTypeEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BatchGetIdentityTypesResponse) Reset() { + *x = BatchGetIdentityTypesResponse{} + mi := &file_agynio_api_identity_v1_identity_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BatchGetIdentityTypesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchGetIdentityTypesResponse) ProtoMessage() {} + +func (x *BatchGetIdentityTypesResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_identity_v1_identity_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 BatchGetIdentityTypesResponse.ProtoReflect.Descriptor instead. +func (*BatchGetIdentityTypesResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{6} +} + +func (x *BatchGetIdentityTypesResponse) GetEntries() []*IdentityTypeEntry { + if x != nil { + return x.Entries + } + return nil +} + +type SetNicknameRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + IdentityId string `protobuf:"bytes,2,opt,name=identity_id,json=identityId,proto3" json:"identity_id,omitempty"` + Nickname string `protobuf:"bytes,3,opt,name=nickname,proto3" json:"nickname,omitempty"` + // Optional app installation ID; required for app installation nicknames. + InstallationId *string `protobuf:"bytes,4,opt,name=installation_id,json=installationId,proto3,oneof" json:"installation_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SetNicknameRequest) Reset() { + *x = SetNicknameRequest{} + mi := &file_agynio_api_identity_v1_identity_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SetNicknameRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetNicknameRequest) ProtoMessage() {} + +func (x *SetNicknameRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_identity_v1_identity_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 SetNicknameRequest.ProtoReflect.Descriptor instead. +func (*SetNicknameRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{7} +} + +func (x *SetNicknameRequest) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +func (x *SetNicknameRequest) GetIdentityId() string { + if x != nil { + return x.IdentityId + } + return "" +} + +func (x *SetNicknameRequest) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *SetNicknameRequest) GetInstallationId() string { + if x != nil && x.InstallationId != nil { + return *x.InstallationId + } + return "" +} + +type SetNicknameResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SetNicknameResponse) Reset() { + *x = SetNicknameResponse{} + mi := &file_agynio_api_identity_v1_identity_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SetNicknameResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetNicknameResponse) ProtoMessage() {} + +func (x *SetNicknameResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_identity_v1_identity_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 SetNicknameResponse.ProtoReflect.Descriptor instead. +func (*SetNicknameResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{8} +} + +type RemoveNicknameRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + IdentityId string `protobuf:"bytes,2,opt,name=identity_id,json=identityId,proto3" json:"identity_id,omitempty"` + // Optional app installation ID; required for app installation nicknames. + InstallationId *string `protobuf:"bytes,3,opt,name=installation_id,json=installationId,proto3,oneof" json:"installation_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RemoveNicknameRequest) Reset() { + *x = RemoveNicknameRequest{} + mi := &file_agynio_api_identity_v1_identity_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RemoveNicknameRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveNicknameRequest) ProtoMessage() {} + +func (x *RemoveNicknameRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_identity_v1_identity_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 RemoveNicknameRequest.ProtoReflect.Descriptor instead. +func (*RemoveNicknameRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{9} +} + +func (x *RemoveNicknameRequest) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +func (x *RemoveNicknameRequest) GetIdentityId() string { + if x != nil { + return x.IdentityId + } + return "" +} + +func (x *RemoveNicknameRequest) GetInstallationId() string { + if x != nil && x.InstallationId != nil { + return *x.InstallationId + } + return "" +} + +type RemoveNicknameResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RemoveNicknameResponse) Reset() { + *x = RemoveNicknameResponse{} + mi := &file_agynio_api_identity_v1_identity_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RemoveNicknameResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveNicknameResponse) ProtoMessage() {} + +func (x *RemoveNicknameResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_identity_v1_identity_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 RemoveNicknameResponse.ProtoReflect.Descriptor instead. +func (*RemoveNicknameResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{10} +} + +type ResolveNicknameRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResolveNicknameRequest) Reset() { + *x = ResolveNicknameRequest{} + mi := &file_agynio_api_identity_v1_identity_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResolveNicknameRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResolveNicknameRequest) ProtoMessage() {} + +func (x *ResolveNicknameRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_identity_v1_identity_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 ResolveNicknameRequest.ProtoReflect.Descriptor instead. +func (*ResolveNicknameRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{11} +} + +func (x *ResolveNicknameRequest) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +func (x *ResolveNicknameRequest) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +type ResolveNicknameResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + IdentityId string `protobuf:"bytes,1,opt,name=identity_id,json=identityId,proto3" json:"identity_id,omitempty"` + IdentityType IdentityType `protobuf:"varint,2,opt,name=identity_type,json=identityType,proto3,enum=agynio.api.identity.v1.IdentityType" json:"identity_type,omitempty"` + InstallationId *string `protobuf:"bytes,3,opt,name=installation_id,json=installationId,proto3,oneof" json:"installation_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResolveNicknameResponse) Reset() { + *x = ResolveNicknameResponse{} + mi := &file_agynio_api_identity_v1_identity_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResolveNicknameResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResolveNicknameResponse) ProtoMessage() {} + +func (x *ResolveNicknameResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_identity_v1_identity_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 ResolveNicknameResponse.ProtoReflect.Descriptor instead. +func (*ResolveNicknameResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{12} +} + +func (x *ResolveNicknameResponse) GetIdentityId() string { + if x != nil { + return x.IdentityId + } + return "" +} + +func (x *ResolveNicknameResponse) GetIdentityType() IdentityType { + if x != nil { + return x.IdentityType + } + return IdentityType_IDENTITY_TYPE_UNSPECIFIED +} + +func (x *ResolveNicknameResponse) GetInstallationId() string { + if x != nil && x.InstallationId != nil { + return *x.InstallationId + } + return "" +} + +type BatchGetNicknamesRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + IdentityIds []string `protobuf:"bytes,2,rep,name=identity_ids,json=identityIds,proto3" json:"identity_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BatchGetNicknamesRequest) Reset() { + *x = BatchGetNicknamesRequest{} + mi := &file_agynio_api_identity_v1_identity_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BatchGetNicknamesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchGetNicknamesRequest) ProtoMessage() {} + +func (x *BatchGetNicknamesRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_identity_v1_identity_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 BatchGetNicknamesRequest.ProtoReflect.Descriptor instead. +func (*BatchGetNicknamesRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{13} +} + +func (x *BatchGetNicknamesRequest) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +func (x *BatchGetNicknamesRequest) GetIdentityIds() []string { + if x != nil { + return x.IdentityIds + } + return nil +} + +type NicknameEntry struct { + state protoimpl.MessageState `protogen:"open.v1"` + IdentityId string `protobuf:"bytes,1,opt,name=identity_id,json=identityId,proto3" json:"identity_id,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *NicknameEntry) Reset() { + *x = NicknameEntry{} + mi := &file_agynio_api_identity_v1_identity_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NicknameEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NicknameEntry) ProtoMessage() {} + +func (x *NicknameEntry) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_identity_v1_identity_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 NicknameEntry.ProtoReflect.Descriptor instead. +func (*NicknameEntry) Descriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{14} +} + +func (x *NicknameEntry) GetIdentityId() string { + if x != nil { + return x.IdentityId + } + return "" +} + +func (x *NicknameEntry) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +type BatchGetNicknamesResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Entries []*NicknameEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BatchGetNicknamesResponse) Reset() { + *x = BatchGetNicknamesResponse{} + mi := &file_agynio_api_identity_v1_identity_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BatchGetNicknamesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchGetNicknamesResponse) ProtoMessage() {} + +func (x *BatchGetNicknamesResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_identity_v1_identity_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 BatchGetNicknamesResponse.ProtoReflect.Descriptor instead. +func (*BatchGetNicknamesResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_identity_v1_identity_proto_rawDescGZIP(), []int{15} +} + +func (x *BatchGetNicknamesResponse) GetEntries() []*NicknameEntry { + if x != nil { + return x.Entries + } + return nil +} + +var File_agynio_api_identity_v1_identity_proto protoreflect.FileDescriptor + +const file_agynio_api_identity_v1_identity_proto_rawDesc = "" + + "\n" + + "%agynio/api/identity/v1/identity.proto\x12\x16agynio.api.identity.v1\"\x85\x01\n" + + "\x17RegisterIdentityRequest\x12\x1f\n" + + "\videntity_id\x18\x01 \x01(\tR\n" + + "identityId\x12I\n" + + "\ridentity_type\x18\x02 \x01(\x0e2$.agynio.api.identity.v1.IdentityTypeR\fidentityType\"\x1a\n" + + "\x18RegisterIdentityResponse\"9\n" + + "\x16GetIdentityTypeRequest\x12\x1f\n" + + "\videntity_id\x18\x01 \x01(\tR\n" + + "identityId\"d\n" + + "\x17GetIdentityTypeResponse\x12I\n" + + "\ridentity_type\x18\x01 \x01(\x0e2$.agynio.api.identity.v1.IdentityTypeR\fidentityType\"A\n" + + "\x1cBatchGetIdentityTypesRequest\x12!\n" + + "\fidentity_ids\x18\x01 \x03(\tR\videntityIds\"\x7f\n" + + "\x11IdentityTypeEntry\x12\x1f\n" + + "\videntity_id\x18\x01 \x01(\tR\n" + + "identityId\x12I\n" + + "\ridentity_type\x18\x02 \x01(\x0e2$.agynio.api.identity.v1.IdentityTypeR\fidentityType\"d\n" + + "\x1dBatchGetIdentityTypesResponse\x12C\n" + + "\aentries\x18\x01 \x03(\v2).agynio.api.identity.v1.IdentityTypeEntryR\aentries\"\xbc\x01\n" + + "\x12SetNicknameRequest\x12'\n" + + "\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1f\n" + + "\videntity_id\x18\x02 \x01(\tR\n" + + "identityId\x12\x1a\n" + + "\bnickname\x18\x03 \x01(\tR\bnickname\x12,\n" + + "\x0finstallation_id\x18\x04 \x01(\tH\x00R\x0einstallationId\x88\x01\x01B\x12\n" + + "\x10_installation_id\"\x15\n" + + "\x13SetNicknameResponse\"\xa3\x01\n" + + "\x15RemoveNicknameRequest\x12'\n" + + "\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1f\n" + + "\videntity_id\x18\x02 \x01(\tR\n" + + "identityId\x12,\n" + + "\x0finstallation_id\x18\x03 \x01(\tH\x00R\x0einstallationId\x88\x01\x01B\x12\n" + + "\x10_installation_id\"\x18\n" + + "\x16RemoveNicknameResponse\"]\n" + + "\x16ResolveNicknameRequest\x12'\n" + + "\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x1a\n" + + "\bnickname\x18\x02 \x01(\tR\bnickname\"\xc7\x01\n" + + "\x17ResolveNicknameResponse\x12\x1f\n" + + "\videntity_id\x18\x01 \x01(\tR\n" + + "identityId\x12I\n" + + "\ridentity_type\x18\x02 \x01(\x0e2$.agynio.api.identity.v1.IdentityTypeR\fidentityType\x12,\n" + + "\x0finstallation_id\x18\x03 \x01(\tH\x00R\x0einstallationId\x88\x01\x01B\x12\n" + + "\x10_installation_id\"f\n" + + "\x18BatchGetNicknamesRequest\x12'\n" + + "\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12!\n" + + "\fidentity_ids\x18\x02 \x03(\tR\videntityIds\"L\n" + + "\rNicknameEntry\x12\x1f\n" + + "\videntity_id\x18\x01 \x01(\tR\n" + + "identityId\x12\x1a\n" + + "\bnickname\x18\x02 \x01(\tR\bnickname\"\\\n" + + "\x19BatchGetNicknamesResponse\x12?\n" + + "\aentries\x18\x01 \x03(\v2%.agynio.api.identity.v1.NicknameEntryR\aentries*\xac\x01\n" + + "\fIdentityType\x12\x1d\n" + + "\x19IDENTITY_TYPE_UNSPECIFIED\x10\x00\x12\x17\n" + + "\x13IDENTITY_TYPE_AGENT\x10\x01\x12\x18\n" + + "\x14IDENTITY_TYPE_RUNNER\x10\x02\x12\x16\n" + + "\x12IDENTITY_TYPE_USER\x10\x04\x12\x15\n" + + "\x11IDENTITY_TYPE_APP\x10\x05\"\x04\b\x03\x10\x03*\x15IDENTITY_TYPE_CHANNEL2\xca\x06\n" + + "\x0fIdentityService\x12u\n" + + "\x10RegisterIdentity\x12/.agynio.api.identity.v1.RegisterIdentityRequest\x1a0.agynio.api.identity.v1.RegisterIdentityResponse\x12r\n" + + "\x0fGetIdentityType\x12..agynio.api.identity.v1.GetIdentityTypeRequest\x1a/.agynio.api.identity.v1.GetIdentityTypeResponse\x12\x84\x01\n" + + "\x15BatchGetIdentityTypes\x124.agynio.api.identity.v1.BatchGetIdentityTypesRequest\x1a5.agynio.api.identity.v1.BatchGetIdentityTypesResponse\x12f\n" + + "\vSetNickname\x12*.agynio.api.identity.v1.SetNicknameRequest\x1a+.agynio.api.identity.v1.SetNicknameResponse\x12o\n" + + "\x0eRemoveNickname\x12-.agynio.api.identity.v1.RemoveNicknameRequest\x1a..agynio.api.identity.v1.RemoveNicknameResponse\x12r\n" + + "\x0fResolveNickname\x12..agynio.api.identity.v1.ResolveNicknameRequest\x1a/.agynio.api.identity.v1.ResolveNicknameResponse\x12x\n" + + "\x11BatchGetNicknames\x120.agynio.api.identity.v1.BatchGetNicknamesRequest\x1a1.agynio.api.identity.v1.BatchGetNicknamesResponseB\xe7\x01\n" + + "\x1acom.agynio.api.identity.v1B\rIdentityProtoP\x01Z?github.com/agynio/chat/gen/go/agynio/api/identity/v1;identityv1\xa2\x02\x03AAI\xaa\x02\x16Agynio.Api.Identity.V1\xca\x02\x16Agynio\\Api\\Identity\\V1\xe2\x02\"Agynio\\Api\\Identity\\V1\\GPBMetadata\xea\x02\x19Agynio::Api::Identity::V1b\x06proto3" + +var ( + file_agynio_api_identity_v1_identity_proto_rawDescOnce sync.Once + file_agynio_api_identity_v1_identity_proto_rawDescData []byte +) + +func file_agynio_api_identity_v1_identity_proto_rawDescGZIP() []byte { + file_agynio_api_identity_v1_identity_proto_rawDescOnce.Do(func() { + file_agynio_api_identity_v1_identity_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_agynio_api_identity_v1_identity_proto_rawDesc), len(file_agynio_api_identity_v1_identity_proto_rawDesc))) + }) + return file_agynio_api_identity_v1_identity_proto_rawDescData +} + +var file_agynio_api_identity_v1_identity_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_agynio_api_identity_v1_identity_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_agynio_api_identity_v1_identity_proto_goTypes = []any{ + (IdentityType)(0), // 0: agynio.api.identity.v1.IdentityType + (*RegisterIdentityRequest)(nil), // 1: agynio.api.identity.v1.RegisterIdentityRequest + (*RegisterIdentityResponse)(nil), // 2: agynio.api.identity.v1.RegisterIdentityResponse + (*GetIdentityTypeRequest)(nil), // 3: agynio.api.identity.v1.GetIdentityTypeRequest + (*GetIdentityTypeResponse)(nil), // 4: agynio.api.identity.v1.GetIdentityTypeResponse + (*BatchGetIdentityTypesRequest)(nil), // 5: agynio.api.identity.v1.BatchGetIdentityTypesRequest + (*IdentityTypeEntry)(nil), // 6: agynio.api.identity.v1.IdentityTypeEntry + (*BatchGetIdentityTypesResponse)(nil), // 7: agynio.api.identity.v1.BatchGetIdentityTypesResponse + (*SetNicknameRequest)(nil), // 8: agynio.api.identity.v1.SetNicknameRequest + (*SetNicknameResponse)(nil), // 9: agynio.api.identity.v1.SetNicknameResponse + (*RemoveNicknameRequest)(nil), // 10: agynio.api.identity.v1.RemoveNicknameRequest + (*RemoveNicknameResponse)(nil), // 11: agynio.api.identity.v1.RemoveNicknameResponse + (*ResolveNicknameRequest)(nil), // 12: agynio.api.identity.v1.ResolveNicknameRequest + (*ResolveNicknameResponse)(nil), // 13: agynio.api.identity.v1.ResolveNicknameResponse + (*BatchGetNicknamesRequest)(nil), // 14: agynio.api.identity.v1.BatchGetNicknamesRequest + (*NicknameEntry)(nil), // 15: agynio.api.identity.v1.NicknameEntry + (*BatchGetNicknamesResponse)(nil), // 16: agynio.api.identity.v1.BatchGetNicknamesResponse +} +var file_agynio_api_identity_v1_identity_proto_depIdxs = []int32{ + 0, // 0: agynio.api.identity.v1.RegisterIdentityRequest.identity_type:type_name -> agynio.api.identity.v1.IdentityType + 0, // 1: agynio.api.identity.v1.GetIdentityTypeResponse.identity_type:type_name -> agynio.api.identity.v1.IdentityType + 0, // 2: agynio.api.identity.v1.IdentityTypeEntry.identity_type:type_name -> agynio.api.identity.v1.IdentityType + 6, // 3: agynio.api.identity.v1.BatchGetIdentityTypesResponse.entries:type_name -> agynio.api.identity.v1.IdentityTypeEntry + 0, // 4: agynio.api.identity.v1.ResolveNicknameResponse.identity_type:type_name -> agynio.api.identity.v1.IdentityType + 15, // 5: agynio.api.identity.v1.BatchGetNicknamesResponse.entries:type_name -> agynio.api.identity.v1.NicknameEntry + 1, // 6: agynio.api.identity.v1.IdentityService.RegisterIdentity:input_type -> agynio.api.identity.v1.RegisterIdentityRequest + 3, // 7: agynio.api.identity.v1.IdentityService.GetIdentityType:input_type -> agynio.api.identity.v1.GetIdentityTypeRequest + 5, // 8: agynio.api.identity.v1.IdentityService.BatchGetIdentityTypes:input_type -> agynio.api.identity.v1.BatchGetIdentityTypesRequest + 8, // 9: agynio.api.identity.v1.IdentityService.SetNickname:input_type -> agynio.api.identity.v1.SetNicknameRequest + 10, // 10: agynio.api.identity.v1.IdentityService.RemoveNickname:input_type -> agynio.api.identity.v1.RemoveNicknameRequest + 12, // 11: agynio.api.identity.v1.IdentityService.ResolveNickname:input_type -> agynio.api.identity.v1.ResolveNicknameRequest + 14, // 12: agynio.api.identity.v1.IdentityService.BatchGetNicknames:input_type -> agynio.api.identity.v1.BatchGetNicknamesRequest + 2, // 13: agynio.api.identity.v1.IdentityService.RegisterIdentity:output_type -> agynio.api.identity.v1.RegisterIdentityResponse + 4, // 14: agynio.api.identity.v1.IdentityService.GetIdentityType:output_type -> agynio.api.identity.v1.GetIdentityTypeResponse + 7, // 15: agynio.api.identity.v1.IdentityService.BatchGetIdentityTypes:output_type -> agynio.api.identity.v1.BatchGetIdentityTypesResponse + 9, // 16: agynio.api.identity.v1.IdentityService.SetNickname:output_type -> agynio.api.identity.v1.SetNicknameResponse + 11, // 17: agynio.api.identity.v1.IdentityService.RemoveNickname:output_type -> agynio.api.identity.v1.RemoveNicknameResponse + 13, // 18: agynio.api.identity.v1.IdentityService.ResolveNickname:output_type -> agynio.api.identity.v1.ResolveNicknameResponse + 16, // 19: agynio.api.identity.v1.IdentityService.BatchGetNicknames:output_type -> agynio.api.identity.v1.BatchGetNicknamesResponse + 13, // [13:20] is the sub-list for method output_type + 6, // [6:13] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_agynio_api_identity_v1_identity_proto_init() } +func file_agynio_api_identity_v1_identity_proto_init() { + if File_agynio_api_identity_v1_identity_proto != nil { + return + } + file_agynio_api_identity_v1_identity_proto_msgTypes[7].OneofWrappers = []any{} + file_agynio_api_identity_v1_identity_proto_msgTypes[9].OneofWrappers = []any{} + file_agynio_api_identity_v1_identity_proto_msgTypes[12].OneofWrappers = []any{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_agynio_api_identity_v1_identity_proto_rawDesc), len(file_agynio_api_identity_v1_identity_proto_rawDesc)), + NumEnums: 1, + NumMessages: 16, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_agynio_api_identity_v1_identity_proto_goTypes, + DependencyIndexes: file_agynio_api_identity_v1_identity_proto_depIdxs, + EnumInfos: file_agynio_api_identity_v1_identity_proto_enumTypes, + MessageInfos: file_agynio_api_identity_v1_identity_proto_msgTypes, + }.Build() + File_agynio_api_identity_v1_identity_proto = out.File + file_agynio_api_identity_v1_identity_proto_goTypes = nil + file_agynio_api_identity_v1_identity_proto_depIdxs = nil +} diff --git a/gen/go/agynio/api/identity/v1/identity_grpc.pb.go b/gen/go/agynio/api/identity/v1/identity_grpc.pb.go new file mode 100644 index 0000000..c114e00 --- /dev/null +++ b/gen/go/agynio/api/identity/v1/identity_grpc.pb.go @@ -0,0 +1,375 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.6.1 +// - protoc (unknown) +// source: agynio/api/identity/v1/identity.proto + +package identityv1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + IdentityService_RegisterIdentity_FullMethodName = "/agynio.api.identity.v1.IdentityService/RegisterIdentity" + IdentityService_GetIdentityType_FullMethodName = "/agynio.api.identity.v1.IdentityService/GetIdentityType" + IdentityService_BatchGetIdentityTypes_FullMethodName = "/agynio.api.identity.v1.IdentityService/BatchGetIdentityTypes" + IdentityService_SetNickname_FullMethodName = "/agynio.api.identity.v1.IdentityService/SetNickname" + IdentityService_RemoveNickname_FullMethodName = "/agynio.api.identity.v1.IdentityService/RemoveNickname" + IdentityService_ResolveNickname_FullMethodName = "/agynio.api.identity.v1.IdentityService/ResolveNickname" + IdentityService_BatchGetNicknames_FullMethodName = "/agynio.api.identity.v1.IdentityService/BatchGetNicknames" +) + +// IdentityServiceClient is the client API for IdentityService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +// +// IdentityService provides the canonical registry of identity IDs and types. +type IdentityServiceClient interface { + // RegisterIdentity stores a new identity ID and its type. + // Returns ALREADY_EXISTS if the identity_id is already registered. + RegisterIdentity(ctx context.Context, in *RegisterIdentityRequest, opts ...grpc.CallOption) (*RegisterIdentityResponse, error) + // GetIdentityType returns the type for a single identity ID. + // Returns NOT_FOUND if the identity_id is unknown. + GetIdentityType(ctx context.Context, in *GetIdentityTypeRequest, opts ...grpc.CallOption) (*GetIdentityTypeResponse, error) + // BatchGetIdentityTypes returns known identity types for the requested IDs. + // Unknown identity IDs are omitted from the response. + BatchGetIdentityTypes(ctx context.Context, in *BatchGetIdentityTypesRequest, opts ...grpc.CallOption) (*BatchGetIdentityTypesResponse, error) + // SetNickname sets or updates the nickname for an identity within an org. + // Returns ALREADY_EXISTS if the nickname is already taken in the org. + SetNickname(ctx context.Context, in *SetNicknameRequest, opts ...grpc.CallOption) (*SetNicknameResponse, error) + // RemoveNickname deletes the nickname entry for an identity within an org. + RemoveNickname(ctx context.Context, in *RemoveNicknameRequest, opts ...grpc.CallOption) (*RemoveNicknameResponse, error) + // ResolveNickname resolves an @nickname within an org to its identity. + ResolveNickname(ctx context.Context, in *ResolveNicknameRequest, opts ...grpc.CallOption) (*ResolveNicknameResponse, error) + // BatchGetNicknames resolves identity IDs to nicknames within an org. + // Unknown or unset nicknames are omitted from the response. + BatchGetNicknames(ctx context.Context, in *BatchGetNicknamesRequest, opts ...grpc.CallOption) (*BatchGetNicknamesResponse, error) +} + +type identityServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewIdentityServiceClient(cc grpc.ClientConnInterface) IdentityServiceClient { + return &identityServiceClient{cc} +} + +func (c *identityServiceClient) RegisterIdentity(ctx context.Context, in *RegisterIdentityRequest, opts ...grpc.CallOption) (*RegisterIdentityResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(RegisterIdentityResponse) + err := c.cc.Invoke(ctx, IdentityService_RegisterIdentity_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *identityServiceClient) GetIdentityType(ctx context.Context, in *GetIdentityTypeRequest, opts ...grpc.CallOption) (*GetIdentityTypeResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetIdentityTypeResponse) + err := c.cc.Invoke(ctx, IdentityService_GetIdentityType_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *identityServiceClient) BatchGetIdentityTypes(ctx context.Context, in *BatchGetIdentityTypesRequest, opts ...grpc.CallOption) (*BatchGetIdentityTypesResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(BatchGetIdentityTypesResponse) + err := c.cc.Invoke(ctx, IdentityService_BatchGetIdentityTypes_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *identityServiceClient) SetNickname(ctx context.Context, in *SetNicknameRequest, opts ...grpc.CallOption) (*SetNicknameResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(SetNicknameResponse) + err := c.cc.Invoke(ctx, IdentityService_SetNickname_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *identityServiceClient) RemoveNickname(ctx context.Context, in *RemoveNicknameRequest, opts ...grpc.CallOption) (*RemoveNicknameResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(RemoveNicknameResponse) + err := c.cc.Invoke(ctx, IdentityService_RemoveNickname_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *identityServiceClient) ResolveNickname(ctx context.Context, in *ResolveNicknameRequest, opts ...grpc.CallOption) (*ResolveNicknameResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ResolveNicknameResponse) + err := c.cc.Invoke(ctx, IdentityService_ResolveNickname_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *identityServiceClient) BatchGetNicknames(ctx context.Context, in *BatchGetNicknamesRequest, opts ...grpc.CallOption) (*BatchGetNicknamesResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(BatchGetNicknamesResponse) + err := c.cc.Invoke(ctx, IdentityService_BatchGetNicknames_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// IdentityServiceServer is the server API for IdentityService service. +// All implementations should embed UnimplementedIdentityServiceServer +// for forward compatibility. +// +// IdentityService provides the canonical registry of identity IDs and types. +type IdentityServiceServer interface { + // RegisterIdentity stores a new identity ID and its type. + // Returns ALREADY_EXISTS if the identity_id is already registered. + RegisterIdentity(context.Context, *RegisterIdentityRequest) (*RegisterIdentityResponse, error) + // GetIdentityType returns the type for a single identity ID. + // Returns NOT_FOUND if the identity_id is unknown. + GetIdentityType(context.Context, *GetIdentityTypeRequest) (*GetIdentityTypeResponse, error) + // BatchGetIdentityTypes returns known identity types for the requested IDs. + // Unknown identity IDs are omitted from the response. + BatchGetIdentityTypes(context.Context, *BatchGetIdentityTypesRequest) (*BatchGetIdentityTypesResponse, error) + // SetNickname sets or updates the nickname for an identity within an org. + // Returns ALREADY_EXISTS if the nickname is already taken in the org. + SetNickname(context.Context, *SetNicknameRequest) (*SetNicknameResponse, error) + // RemoveNickname deletes the nickname entry for an identity within an org. + RemoveNickname(context.Context, *RemoveNicknameRequest) (*RemoveNicknameResponse, error) + // ResolveNickname resolves an @nickname within an org to its identity. + ResolveNickname(context.Context, *ResolveNicknameRequest) (*ResolveNicknameResponse, error) + // BatchGetNicknames resolves identity IDs to nicknames within an org. + // Unknown or unset nicknames are omitted from the response. + BatchGetNicknames(context.Context, *BatchGetNicknamesRequest) (*BatchGetNicknamesResponse, error) +} + +// UnimplementedIdentityServiceServer should be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedIdentityServiceServer struct{} + +func (UnimplementedIdentityServiceServer) RegisterIdentity(context.Context, *RegisterIdentityRequest) (*RegisterIdentityResponse, error) { + return nil, status.Error(codes.Unimplemented, "method RegisterIdentity not implemented") +} +func (UnimplementedIdentityServiceServer) GetIdentityType(context.Context, *GetIdentityTypeRequest) (*GetIdentityTypeResponse, error) { + return nil, status.Error(codes.Unimplemented, "method GetIdentityType not implemented") +} +func (UnimplementedIdentityServiceServer) BatchGetIdentityTypes(context.Context, *BatchGetIdentityTypesRequest) (*BatchGetIdentityTypesResponse, error) { + return nil, status.Error(codes.Unimplemented, "method BatchGetIdentityTypes not implemented") +} +func (UnimplementedIdentityServiceServer) SetNickname(context.Context, *SetNicknameRequest) (*SetNicknameResponse, error) { + return nil, status.Error(codes.Unimplemented, "method SetNickname not implemented") +} +func (UnimplementedIdentityServiceServer) RemoveNickname(context.Context, *RemoveNicknameRequest) (*RemoveNicknameResponse, error) { + return nil, status.Error(codes.Unimplemented, "method RemoveNickname not implemented") +} +func (UnimplementedIdentityServiceServer) ResolveNickname(context.Context, *ResolveNicknameRequest) (*ResolveNicknameResponse, error) { + return nil, status.Error(codes.Unimplemented, "method ResolveNickname not implemented") +} +func (UnimplementedIdentityServiceServer) BatchGetNicknames(context.Context, *BatchGetNicknamesRequest) (*BatchGetNicknamesResponse, error) { + return nil, status.Error(codes.Unimplemented, "method BatchGetNicknames not implemented") +} +func (UnimplementedIdentityServiceServer) testEmbeddedByValue() {} + +// UnsafeIdentityServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to IdentityServiceServer will +// result in compilation errors. +type UnsafeIdentityServiceServer interface { + mustEmbedUnimplementedIdentityServiceServer() +} + +func RegisterIdentityServiceServer(s grpc.ServiceRegistrar, srv IdentityServiceServer) { + // If the following call panics, it indicates UnimplementedIdentityServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&IdentityService_ServiceDesc, srv) +} + +func _IdentityService_RegisterIdentity_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RegisterIdentityRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServiceServer).RegisterIdentity(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IdentityService_RegisterIdentity_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServiceServer).RegisterIdentity(ctx, req.(*RegisterIdentityRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IdentityService_GetIdentityType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetIdentityTypeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServiceServer).GetIdentityType(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IdentityService_GetIdentityType_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServiceServer).GetIdentityType(ctx, req.(*GetIdentityTypeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IdentityService_BatchGetIdentityTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchGetIdentityTypesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServiceServer).BatchGetIdentityTypes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IdentityService_BatchGetIdentityTypes_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServiceServer).BatchGetIdentityTypes(ctx, req.(*BatchGetIdentityTypesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IdentityService_SetNickname_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetNicknameRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServiceServer).SetNickname(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IdentityService_SetNickname_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServiceServer).SetNickname(ctx, req.(*SetNicknameRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IdentityService_RemoveNickname_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveNicknameRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServiceServer).RemoveNickname(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IdentityService_RemoveNickname_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServiceServer).RemoveNickname(ctx, req.(*RemoveNicknameRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IdentityService_ResolveNickname_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResolveNicknameRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServiceServer).ResolveNickname(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IdentityService_ResolveNickname_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServiceServer).ResolveNickname(ctx, req.(*ResolveNicknameRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _IdentityService_BatchGetNicknames_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchGetNicknamesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServiceServer).BatchGetNicknames(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: IdentityService_BatchGetNicknames_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServiceServer).BatchGetNicknames(ctx, req.(*BatchGetNicknamesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// IdentityService_ServiceDesc is the grpc.ServiceDesc for IdentityService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var IdentityService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "agynio.api.identity.v1.IdentityService", + HandlerType: (*IdentityServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "RegisterIdentity", + Handler: _IdentityService_RegisterIdentity_Handler, + }, + { + MethodName: "GetIdentityType", + Handler: _IdentityService_GetIdentityType_Handler, + }, + { + MethodName: "BatchGetIdentityTypes", + Handler: _IdentityService_BatchGetIdentityTypes_Handler, + }, + { + MethodName: "SetNickname", + Handler: _IdentityService_SetNickname_Handler, + }, + { + MethodName: "RemoveNickname", + Handler: _IdentityService_RemoveNickname_Handler, + }, + { + MethodName: "ResolveNickname", + Handler: _IdentityService_ResolveNickname_Handler, + }, + { + MethodName: "BatchGetNicknames", + Handler: _IdentityService_BatchGetNicknames_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "agynio/api/identity/v1/identity.proto", +} diff --git a/gen/go/agynio/api/runner/v1/runner.pb.go b/gen/go/agynio/api/runner/v1/runner.pb.go new file mode 100644 index 0000000..ca451f9 --- /dev/null +++ b/gen/go/agynio/api/runner/v1/runner.pb.go @@ -0,0 +1,4608 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.11 +// protoc (unknown) +// source: agynio/api/runner/v1/runner.proto + +package runnerv1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 VolumeKind int32 + +const ( + VolumeKind_VOLUME_KIND_UNSPECIFIED VolumeKind = 0 + VolumeKind_VOLUME_KIND_EPHEMERAL VolumeKind = 1 + VolumeKind_VOLUME_KIND_NAMED VolumeKind = 2 +) + +// Enum value maps for VolumeKind. +var ( + VolumeKind_name = map[int32]string{ + 0: "VOLUME_KIND_UNSPECIFIED", + 1: "VOLUME_KIND_EPHEMERAL", + 2: "VOLUME_KIND_NAMED", + } + VolumeKind_value = map[string]int32{ + "VOLUME_KIND_UNSPECIFIED": 0, + "VOLUME_KIND_EPHEMERAL": 1, + "VOLUME_KIND_NAMED": 2, + } +) + +func (x VolumeKind) Enum() *VolumeKind { + p := new(VolumeKind) + *p = x + return p +} + +func (x VolumeKind) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VolumeKind) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_runner_v1_runner_proto_enumTypes[0].Descriptor() +} + +func (VolumeKind) Type() protoreflect.EnumType { + return &file_agynio_api_runner_v1_runner_proto_enumTypes[0] +} + +func (x VolumeKind) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VolumeKind.Descriptor instead. +func (VolumeKind) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{0} +} + +type WorkloadStatus int32 + +const ( + WorkloadStatus_WORKLOAD_STATUS_UNSPECIFIED WorkloadStatus = 0 + WorkloadStatus_WORKLOAD_STATUS_RUNNING WorkloadStatus = 1 + WorkloadStatus_WORKLOAD_STATUS_STARTING WorkloadStatus = 2 + WorkloadStatus_WORKLOAD_STATUS_STOPPED WorkloadStatus = 3 + WorkloadStatus_WORKLOAD_STATUS_FAILED WorkloadStatus = 4 +) + +// Enum value maps for WorkloadStatus. +var ( + WorkloadStatus_name = map[int32]string{ + 0: "WORKLOAD_STATUS_UNSPECIFIED", + 1: "WORKLOAD_STATUS_RUNNING", + 2: "WORKLOAD_STATUS_STARTING", + 3: "WORKLOAD_STATUS_STOPPED", + 4: "WORKLOAD_STATUS_FAILED", + } + WorkloadStatus_value = map[string]int32{ + "WORKLOAD_STATUS_UNSPECIFIED": 0, + "WORKLOAD_STATUS_RUNNING": 1, + "WORKLOAD_STATUS_STARTING": 2, + "WORKLOAD_STATUS_STOPPED": 3, + "WORKLOAD_STATUS_FAILED": 4, + } +) + +func (x WorkloadStatus) Enum() *WorkloadStatus { + p := new(WorkloadStatus) + *p = x + return p +} + +func (x WorkloadStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WorkloadStatus) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_runner_v1_runner_proto_enumTypes[1].Descriptor() +} + +func (WorkloadStatus) Type() protoreflect.EnumType { + return &file_agynio_api_runner_v1_runner_proto_enumTypes[1] +} + +func (x WorkloadStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WorkloadStatus.Descriptor instead. +func (WorkloadStatus) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{1} +} + +type ContainerRole int32 + +const ( + ContainerRole_CONTAINER_ROLE_UNSPECIFIED ContainerRole = 0 + ContainerRole_CONTAINER_ROLE_MAIN ContainerRole = 1 + ContainerRole_CONTAINER_ROLE_SIDECAR ContainerRole = 2 + ContainerRole_CONTAINER_ROLE_INIT ContainerRole = 3 +) + +// Enum value maps for ContainerRole. +var ( + ContainerRole_name = map[int32]string{ + 0: "CONTAINER_ROLE_UNSPECIFIED", + 1: "CONTAINER_ROLE_MAIN", + 2: "CONTAINER_ROLE_SIDECAR", + 3: "CONTAINER_ROLE_INIT", + } + ContainerRole_value = map[string]int32{ + "CONTAINER_ROLE_UNSPECIFIED": 0, + "CONTAINER_ROLE_MAIN": 1, + "CONTAINER_ROLE_SIDECAR": 2, + "CONTAINER_ROLE_INIT": 3, + } +) + +func (x ContainerRole) Enum() *ContainerRole { + p := new(ContainerRole) + *p = x + return p +} + +func (x ContainerRole) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ContainerRole) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_runner_v1_runner_proto_enumTypes[2].Descriptor() +} + +func (ContainerRole) Type() protoreflect.EnumType { + return &file_agynio_api_runner_v1_runner_proto_enumTypes[2] +} + +func (x ContainerRole) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ContainerRole.Descriptor instead. +func (ContainerRole) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{2} +} + +type ContainerStatus int32 + +const ( + ContainerStatus_CONTAINER_STATUS_UNSPECIFIED ContainerStatus = 0 + ContainerStatus_CONTAINER_STATUS_RUNNING ContainerStatus = 1 + ContainerStatus_CONTAINER_STATUS_TERMINATED ContainerStatus = 2 + ContainerStatus_CONTAINER_STATUS_WAITING ContainerStatus = 3 +) + +// Enum value maps for ContainerStatus. +var ( + ContainerStatus_name = map[int32]string{ + 0: "CONTAINER_STATUS_UNSPECIFIED", + 1: "CONTAINER_STATUS_RUNNING", + 2: "CONTAINER_STATUS_TERMINATED", + 3: "CONTAINER_STATUS_WAITING", + } + ContainerStatus_value = map[string]int32{ + "CONTAINER_STATUS_UNSPECIFIED": 0, + "CONTAINER_STATUS_RUNNING": 1, + "CONTAINER_STATUS_TERMINATED": 2, + "CONTAINER_STATUS_WAITING": 3, + } +) + +func (x ContainerStatus) Enum() *ContainerStatus { + p := new(ContainerStatus) + *p = x + return p +} + +func (x ContainerStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ContainerStatus) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_runner_v1_runner_proto_enumTypes[3].Descriptor() +} + +func (ContainerStatus) Type() protoreflect.EnumType { + return &file_agynio_api_runner_v1_runner_proto_enumTypes[3] +} + +func (x ContainerStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ContainerStatus.Descriptor instead. +func (ContainerStatus) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{3} +} + +type ExecExitReason int32 + +const ( + ExecExitReason_EXEC_EXIT_REASON_UNSPECIFIED ExecExitReason = 0 + ExecExitReason_EXEC_EXIT_REASON_COMPLETED ExecExitReason = 1 + ExecExitReason_EXEC_EXIT_REASON_TIMEOUT ExecExitReason = 2 + ExecExitReason_EXEC_EXIT_REASON_IDLE_TIMEOUT ExecExitReason = 3 + ExecExitReason_EXEC_EXIT_REASON_CANCELLED ExecExitReason = 4 + ExecExitReason_EXEC_EXIT_REASON_RUNNER_ERROR ExecExitReason = 5 +) + +// Enum value maps for ExecExitReason. +var ( + ExecExitReason_name = map[int32]string{ + 0: "EXEC_EXIT_REASON_UNSPECIFIED", + 1: "EXEC_EXIT_REASON_COMPLETED", + 2: "EXEC_EXIT_REASON_TIMEOUT", + 3: "EXEC_EXIT_REASON_IDLE_TIMEOUT", + 4: "EXEC_EXIT_REASON_CANCELLED", + 5: "EXEC_EXIT_REASON_RUNNER_ERROR", + } + ExecExitReason_value = map[string]int32{ + "EXEC_EXIT_REASON_UNSPECIFIED": 0, + "EXEC_EXIT_REASON_COMPLETED": 1, + "EXEC_EXIT_REASON_TIMEOUT": 2, + "EXEC_EXIT_REASON_IDLE_TIMEOUT": 3, + "EXEC_EXIT_REASON_CANCELLED": 4, + "EXEC_EXIT_REASON_RUNNER_ERROR": 5, + } +) + +func (x ExecExitReason) Enum() *ExecExitReason { + p := new(ExecExitReason) + *p = x + return p +} + +func (x ExecExitReason) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ExecExitReason) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_runner_v1_runner_proto_enumTypes[4].Descriptor() +} + +func (ExecExitReason) Type() protoreflect.EnumType { + return &file_agynio_api_runner_v1_runner_proto_enumTypes[4] +} + +func (x ExecExitReason) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ExecExitReason.Descriptor instead. +func (ExecExitReason) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{4} +} + +type ReadyRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReadyRequest) Reset() { + *x = ReadyRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReadyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadyRequest) ProtoMessage() {} + +func (x *ReadyRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 ReadyRequest.ProtoReflect.Descriptor instead. +func (*ReadyRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{0} +} + +type ReadyResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` // e.g. "ok" + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReadyResponse) Reset() { + *x = ReadyResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReadyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadyResponse) ProtoMessage() {} + +func (x *ReadyResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 ReadyResponse.ProtoReflect.Descriptor instead. +func (*ReadyResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{1} +} + +func (x *ReadyResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +type RunnerError struct { + state protoimpl.MessageState `protogen:"open.v1"` + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + Details map[string]string `protobuf:"bytes,3,rep,name=details,proto3" json:"details,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Retryable bool `protobuf:"varint,4,opt,name=retryable,proto3" json:"retryable,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RunnerError) Reset() { + *x = RunnerError{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RunnerError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RunnerError) ProtoMessage() {} + +func (x *RunnerError) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 RunnerError.ProtoReflect.Descriptor instead. +func (*RunnerError) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{2} +} + +func (x *RunnerError) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *RunnerError) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *RunnerError) GetDetails() map[string]string { + if x != nil { + return x.Details + } + return nil +} + +func (x *RunnerError) GetRetryable() bool { + if x != nil { + return x.Retryable + } + return false +} + +type EnvVar struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *EnvVar) Reset() { + *x = EnvVar{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *EnvVar) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnvVar) ProtoMessage() {} + +func (x *EnvVar) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 EnvVar.ProtoReflect.Descriptor instead. +func (*EnvVar) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{3} +} + +func (x *EnvVar) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *EnvVar) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +// Volume specifications for a workload. +type VolumeSpec struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Logical name referenced by mounts. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Kind VolumeKind `protobuf:"varint,2,opt,name=kind,proto3,enum=agynio.api.runner.v1.VolumeKind" json:"kind,omitempty"` + // For named (persistent) volumes, the backend-level identifier. + // Docker example: "ha_ws_". + PersistentName string `protobuf:"bytes,3,opt,name=persistent_name,json=persistentName,proto3" json:"persistent_name,omitempty"` + // Labels applied to the persistent volume claim. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + AdditionalProperties map[string]string `protobuf:"bytes,100,rep,name=additional_properties,json=additionalProperties,proto3" json:"additional_properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *VolumeSpec) Reset() { + *x = VolumeSpec{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *VolumeSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VolumeSpec) ProtoMessage() {} + +func (x *VolumeSpec) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 VolumeSpec.ProtoReflect.Descriptor instead. +func (*VolumeSpec) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{4} +} + +func (x *VolumeSpec) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *VolumeSpec) GetKind() VolumeKind { + if x != nil { + return x.Kind + } + return VolumeKind_VOLUME_KIND_UNSPECIFIED +} + +func (x *VolumeSpec) GetPersistentName() string { + if x != nil { + return x.PersistentName + } + return "" +} + +func (x *VolumeSpec) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *VolumeSpec) GetAdditionalProperties() map[string]string { + if x != nil { + return x.AdditionalProperties + } + return nil +} + +type VolumeMount struct { + state protoimpl.MessageState `protogen:"open.v1"` + // References VolumeSpec.name. + Volume string `protobuf:"bytes,1,opt,name=volume,proto3" json:"volume,omitempty"` + MountPath string `protobuf:"bytes,2,opt,name=mount_path,json=mountPath,proto3" json:"mount_path,omitempty"` + ReadOnly bool `protobuf:"varint,3,opt,name=read_only,json=readOnly,proto3" json:"read_only,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *VolumeMount) Reset() { + *x = VolumeMount{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *VolumeMount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VolumeMount) ProtoMessage() {} + +func (x *VolumeMount) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 VolumeMount.ProtoReflect.Descriptor instead. +func (*VolumeMount) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{5} +} + +func (x *VolumeMount) GetVolume() string { + if x != nil { + return x.Volume + } + return "" +} + +func (x *VolumeMount) GetMountPath() string { + if x != nil { + return x.MountPath + } + return "" +} + +func (x *VolumeMount) GetReadOnly() bool { + if x != nil { + return x.ReadOnly + } + return false +} + +// ContainerSpec describes a single container within a workload. +type ContainerSpec struct { + state protoimpl.MessageState `protogen:"open.v1"` + Image string `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Cmd []string `protobuf:"bytes,3,rep,name=cmd,proto3" json:"cmd,omitempty"` + Entrypoint string `protobuf:"bytes,4,opt,name=entrypoint,proto3" json:"entrypoint,omitempty"` + Env []*EnvVar `protobuf:"bytes,5,rep,name=env,proto3" json:"env,omitempty"` + WorkingDir string `protobuf:"bytes,6,opt,name=working_dir,json=workingDir,proto3" json:"working_dir,omitempty"` + // Volume mounts inside this container. + Mounts []*VolumeMount `protobuf:"bytes,7,rep,name=mounts,proto3" json:"mounts,omitempty"` + // Required capabilities that the backend must satisfy for this container. + // Example values: "privileged", "dind". + RequiredCapabilities []string `protobuf:"bytes,8,rep,name=required_capabilities,json=requiredCapabilities,proto3" json:"required_capabilities,omitempty"` + // Backend-specific optional properties. + AdditionalProperties map[string]string `protobuf:"bytes,100,rep,name=additional_properties,json=additionalProperties,proto3" json:"additional_properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ContainerSpec) Reset() { + *x = ContainerSpec{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ContainerSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContainerSpec) ProtoMessage() {} + +func (x *ContainerSpec) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 ContainerSpec.ProtoReflect.Descriptor instead. +func (*ContainerSpec) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{6} +} + +func (x *ContainerSpec) GetImage() string { + if x != nil { + return x.Image + } + return "" +} + +func (x *ContainerSpec) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ContainerSpec) GetCmd() []string { + if x != nil { + return x.Cmd + } + return nil +} + +func (x *ContainerSpec) GetEntrypoint() string { + if x != nil { + return x.Entrypoint + } + return "" +} + +func (x *ContainerSpec) GetEnv() []*EnvVar { + if x != nil { + return x.Env + } + return nil +} + +func (x *ContainerSpec) GetWorkingDir() string { + if x != nil { + return x.WorkingDir + } + return "" +} + +func (x *ContainerSpec) GetMounts() []*VolumeMount { + if x != nil { + return x.Mounts + } + return nil +} + +func (x *ContainerSpec) GetRequiredCapabilities() []string { + if x != nil { + return x.RequiredCapabilities + } + return nil +} + +func (x *ContainerSpec) GetAdditionalProperties() map[string]string { + if x != nil { + return x.AdditionalProperties + } + return nil +} + +// DNS configuration for the workload pod. +type DnsConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + // DNS nameservers (e.g., ["127.0.0.1", "10.96.0.10"]). + Nameservers []string `protobuf:"bytes,1,rep,name=nameservers,proto3" json:"nameservers,omitempty"` + // DNS search domains (e.g., ["svc.cluster.local", "cluster.local"]). + Searches []string `protobuf:"bytes,2,rep,name=searches,proto3" json:"searches,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DnsConfig) Reset() { + *x = DnsConfig{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DnsConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DnsConfig) ProtoMessage() {} + +func (x *DnsConfig) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 DnsConfig.ProtoReflect.Descriptor instead. +func (*DnsConfig) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{7} +} + +func (x *DnsConfig) GetNameservers() []string { + if x != nil { + return x.Nameservers + } + return nil +} + +func (x *DnsConfig) GetSearches() []string { + if x != nil { + return x.Searches + } + return nil +} + +type ImagePullCredential struct { + state protoimpl.MessageState `protogen:"open.v1"` + Registry string `protobuf:"bytes,1,opt,name=registry,proto3" json:"registry,omitempty"` + Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` + Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ImagePullCredential) Reset() { + *x = ImagePullCredential{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ImagePullCredential) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImagePullCredential) ProtoMessage() {} + +func (x *ImagePullCredential) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 ImagePullCredential.ProtoReflect.Descriptor instead. +func (*ImagePullCredential) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{8} +} + +func (x *ImagePullCredential) GetRegistry() string { + if x != nil { + return x.Registry + } + return "" +} + +func (x *ImagePullCredential) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +func (x *ImagePullCredential) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +// A workload is a main container plus optional sidecars. +// Runner MUST ensure sidecars share the same network namespace as the main container. +type StartWorkloadRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Main *ContainerSpec `protobuf:"bytes,1,opt,name=main,proto3" json:"main,omitempty"` + Sidecars []*ContainerSpec `protobuf:"bytes,2,rep,name=sidecars,proto3" json:"sidecars,omitempty"` + Volumes []*VolumeSpec `protobuf:"bytes,3,rep,name=volumes,proto3" json:"volumes,omitempty"` + InitContainers []*ContainerSpec `protobuf:"bytes,4,rep,name=init_containers,json=initContainers,proto3" json:"init_containers,omitempty"` + // DNS configuration for the workload pod. When set, the runner + // overrides the default DNS policy with the provided nameservers + // and search domains. + DnsConfig *DnsConfig `protobuf:"bytes,5,opt,name=dns_config,json=dnsConfig,proto3" json:"dns_config,omitempty"` + ImagePullCredentials []*ImagePullCredential `protobuf:"bytes,6,rep,name=image_pull_credentials,json=imagePullCredentials,proto3" json:"image_pull_credentials,omitempty"` + // Labels applied to the workload pod. + Labels map[string]string `protobuf:"bytes,7,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Optional workload id to use for the runner instance. + WorkloadId string `protobuf:"bytes,8,opt,name=workload_id,json=workloadId,proto3" json:"workload_id,omitempty"` + // Runner-level capabilities required by the workload. Free-form strings + // (e.g., "privileged", "dind"). + Capabilities []string `protobuf:"bytes,9,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + AdditionalProperties map[string]string `protobuf:"bytes,100,rep,name=additional_properties,json=additionalProperties,proto3" json:"additional_properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StartWorkloadRequest) Reset() { + *x = StartWorkloadRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StartWorkloadRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartWorkloadRequest) ProtoMessage() {} + +func (x *StartWorkloadRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 StartWorkloadRequest.ProtoReflect.Descriptor instead. +func (*StartWorkloadRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{9} +} + +func (x *StartWorkloadRequest) GetMain() *ContainerSpec { + if x != nil { + return x.Main + } + return nil +} + +func (x *StartWorkloadRequest) GetSidecars() []*ContainerSpec { + if x != nil { + return x.Sidecars + } + return nil +} + +func (x *StartWorkloadRequest) GetVolumes() []*VolumeSpec { + if x != nil { + return x.Volumes + } + return nil +} + +func (x *StartWorkloadRequest) GetInitContainers() []*ContainerSpec { + if x != nil { + return x.InitContainers + } + return nil +} + +func (x *StartWorkloadRequest) GetDnsConfig() *DnsConfig { + if x != nil { + return x.DnsConfig + } + return nil +} + +func (x *StartWorkloadRequest) GetImagePullCredentials() []*ImagePullCredential { + if x != nil { + return x.ImagePullCredentials + } + return nil +} + +func (x *StartWorkloadRequest) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *StartWorkloadRequest) GetWorkloadId() string { + if x != nil { + return x.WorkloadId + } + return "" +} + +func (x *StartWorkloadRequest) GetCapabilities() []string { + if x != nil { + return x.Capabilities + } + return nil +} + +func (x *StartWorkloadRequest) GetAdditionalProperties() map[string]string { + if x != nil { + return x.AdditionalProperties + } + return nil +} + +type SidecarInstance struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SidecarInstance) Reset() { + *x = SidecarInstance{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SidecarInstance) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SidecarInstance) ProtoMessage() {} + +func (x *SidecarInstance) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 SidecarInstance.ProtoReflect.Descriptor instead. +func (*SidecarInstance) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{10} +} + +func (x *SidecarInstance) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SidecarInstance) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *SidecarInstance) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +type StartWorkloadResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Workload/group identifier. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Containers *WorkloadContainers `protobuf:"bytes,2,opt,name=containers,proto3" json:"containers,omitempty"` + Status WorkloadStatus `protobuf:"varint,3,opt,name=status,proto3,enum=agynio.api.runner.v1.WorkloadStatus" json:"status,omitempty"` + // Present when status is FAILED. + Failure *WorkloadFailure `protobuf:"bytes,4,opt,name=failure,proto3" json:"failure,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StartWorkloadResponse) Reset() { + *x = StartWorkloadResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StartWorkloadResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartWorkloadResponse) ProtoMessage() {} + +func (x *StartWorkloadResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 StartWorkloadResponse.ProtoReflect.Descriptor instead. +func (*StartWorkloadResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{11} +} + +func (x *StartWorkloadResponse) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *StartWorkloadResponse) GetContainers() *WorkloadContainers { + if x != nil { + return x.Containers + } + return nil +} + +func (x *StartWorkloadResponse) GetStatus() WorkloadStatus { + if x != nil { + return x.Status + } + return WorkloadStatus_WORKLOAD_STATUS_UNSPECIFIED +} + +func (x *StartWorkloadResponse) GetFailure() *WorkloadFailure { + if x != nil { + return x.Failure + } + return nil +} + +type WorkloadContainers struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Main container identifier. + Main string `protobuf:"bytes,1,opt,name=main,proto3" json:"main,omitempty"` + Sidecars []*SidecarInstance `protobuf:"bytes,2,rep,name=sidecars,proto3" json:"sidecars,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *WorkloadContainers) Reset() { + *x = WorkloadContainers{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WorkloadContainers) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkloadContainers) ProtoMessage() {} + +func (x *WorkloadContainers) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 WorkloadContainers.ProtoReflect.Descriptor instead. +func (*WorkloadContainers) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{12} +} + +func (x *WorkloadContainers) GetMain() string { + if x != nil { + return x.Main + } + return "" +} + +func (x *WorkloadContainers) GetSidecars() []*SidecarInstance { + if x != nil { + return x.Sidecars + } + return nil +} + +type WorkloadFailure struct { + state protoimpl.MessageState `protogen:"open.v1"` + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + Details map[string]string `protobuf:"bytes,3,rep,name=details,proto3" json:"details,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *WorkloadFailure) Reset() { + *x = WorkloadFailure{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WorkloadFailure) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkloadFailure) ProtoMessage() {} + +func (x *WorkloadFailure) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 WorkloadFailure.ProtoReflect.Descriptor instead. +func (*WorkloadFailure) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{13} +} + +func (x *WorkloadFailure) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *WorkloadFailure) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *WorkloadFailure) GetDetails() map[string]string { + if x != nil { + return x.Details + } + return nil +} + +type StopWorkloadRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + WorkloadId string `protobuf:"bytes,1,opt,name=workload_id,json=workloadId,proto3" json:"workload_id,omitempty"` + TimeoutSec uint32 `protobuf:"varint,2,opt,name=timeout_sec,json=timeoutSec,proto3" json:"timeout_sec,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StopWorkloadRequest) Reset() { + *x = StopWorkloadRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StopWorkloadRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StopWorkloadRequest) ProtoMessage() {} + +func (x *StopWorkloadRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 StopWorkloadRequest.ProtoReflect.Descriptor instead. +func (*StopWorkloadRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{14} +} + +func (x *StopWorkloadRequest) GetWorkloadId() string { + if x != nil { + return x.WorkloadId + } + return "" +} + +func (x *StopWorkloadRequest) GetTimeoutSec() uint32 { + if x != nil { + return x.TimeoutSec + } + return 0 +} + +type StopWorkloadResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StopWorkloadResponse) Reset() { + *x = StopWorkloadResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StopWorkloadResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StopWorkloadResponse) ProtoMessage() {} + +func (x *StopWorkloadResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 StopWorkloadResponse.ProtoReflect.Descriptor instead. +func (*StopWorkloadResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{15} +} + +type RemoveWorkloadRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + WorkloadId string `protobuf:"bytes,1,opt,name=workload_id,json=workloadId,proto3" json:"workload_id,omitempty"` + Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` + RemoveVolumes bool `protobuf:"varint,3,opt,name=remove_volumes,json=removeVolumes,proto3" json:"remove_volumes,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RemoveWorkloadRequest) Reset() { + *x = RemoveWorkloadRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RemoveWorkloadRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveWorkloadRequest) ProtoMessage() {} + +func (x *RemoveWorkloadRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 RemoveWorkloadRequest.ProtoReflect.Descriptor instead. +func (*RemoveWorkloadRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{16} +} + +func (x *RemoveWorkloadRequest) GetWorkloadId() string { + if x != nil { + return x.WorkloadId + } + return "" +} + +func (x *RemoveWorkloadRequest) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + +func (x *RemoveWorkloadRequest) GetRemoveVolumes() bool { + if x != nil { + return x.RemoveVolumes + } + return false +} + +type RemoveWorkloadResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RemoveWorkloadResponse) Reset() { + *x = RemoveWorkloadResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RemoveWorkloadResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveWorkloadResponse) ProtoMessage() {} + +func (x *RemoveWorkloadResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 RemoveWorkloadResponse.ProtoReflect.Descriptor instead. +func (*RemoveWorkloadResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{17} +} + +// Mirrors agynio.api.runners.v1.Container; keep fields in sync. +type WorkloadContainer struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Runtime-assigned identifier from the container runtime (audit only). + ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` + // Stable name unique within the workload, matches the Pod container name. + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Role ContainerRole `protobuf:"varint,3,opt,name=role,proto3,enum=agynio.api.runner.v1.ContainerRole" json:"role,omitempty"` + Image string `protobuf:"bytes,4,opt,name=image,proto3" json:"image,omitempty"` + Status ContainerStatus `protobuf:"varint,5,opt,name=status,proto3,enum=agynio.api.runner.v1.ContainerStatus" json:"status,omitempty"` + Reason *string `protobuf:"bytes,6,opt,name=reason,proto3,oneof" json:"reason,omitempty"` + Message *string `protobuf:"bytes,7,opt,name=message,proto3,oneof" json:"message,omitempty"` + ExitCode *int32 `protobuf:"varint,8,opt,name=exit_code,json=exitCode,proto3,oneof" json:"exit_code,omitempty"` + RestartCount int32 `protobuf:"varint,9,opt,name=restart_count,json=restartCount,proto3" json:"restart_count,omitempty"` + StartedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=started_at,json=startedAt,proto3,oneof" json:"started_at,omitempty"` + FinishedAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=finished_at,json=finishedAt,proto3,oneof" json:"finished_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *WorkloadContainer) Reset() { + *x = WorkloadContainer{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WorkloadContainer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkloadContainer) ProtoMessage() {} + +func (x *WorkloadContainer) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 WorkloadContainer.ProtoReflect.Descriptor instead. +func (*WorkloadContainer) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{18} +} + +func (x *WorkloadContainer) GetContainerId() string { + if x != nil { + return x.ContainerId + } + return "" +} + +func (x *WorkloadContainer) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *WorkloadContainer) GetRole() ContainerRole { + if x != nil { + return x.Role + } + return ContainerRole_CONTAINER_ROLE_UNSPECIFIED +} + +func (x *WorkloadContainer) GetImage() string { + if x != nil { + return x.Image + } + return "" +} + +func (x *WorkloadContainer) GetStatus() ContainerStatus { + if x != nil { + return x.Status + } + return ContainerStatus_CONTAINER_STATUS_UNSPECIFIED +} + +func (x *WorkloadContainer) GetReason() string { + if x != nil && x.Reason != nil { + return *x.Reason + } + return "" +} + +func (x *WorkloadContainer) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +func (x *WorkloadContainer) GetExitCode() int32 { + if x != nil && x.ExitCode != nil { + return *x.ExitCode + } + return 0 +} + +func (x *WorkloadContainer) GetRestartCount() int32 { + if x != nil { + return x.RestartCount + } + return 0 +} + +func (x *WorkloadContainer) GetStartedAt() *timestamppb.Timestamp { + if x != nil { + return x.StartedAt + } + return nil +} + +func (x *WorkloadContainer) GetFinishedAt() *timestamppb.Timestamp { + if x != nil { + return x.FinishedAt + } + return nil +} + +type InspectWorkloadRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + WorkloadId string `protobuf:"bytes,1,opt,name=workload_id,json=workloadId,proto3" json:"workload_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InspectWorkloadRequest) Reset() { + *x = InspectWorkloadRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InspectWorkloadRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InspectWorkloadRequest) ProtoMessage() {} + +func (x *InspectWorkloadRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 InspectWorkloadRequest.ProtoReflect.Descriptor instead. +func (*InspectWorkloadRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{19} +} + +func (x *InspectWorkloadRequest) GetWorkloadId() string { + if x != nil { + return x.WorkloadId + } + return "" +} + +// Inspect workload details plus per-container runtime state. +// Existing fields are preserved for backward compatibility. +type InspectWorkloadResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Image string `protobuf:"bytes,3,opt,name=image,proto3" json:"image,omitempty"` + ConfigImage string `protobuf:"bytes,4,opt,name=config_image,json=configImage,proto3" json:"config_image,omitempty"` + ConfigLabels map[string]string `protobuf:"bytes,5,rep,name=config_labels,json=configLabels,proto3" json:"config_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Mounts []*TargetMount `protobuf:"bytes,6,rep,name=mounts,proto3" json:"mounts,omitempty"` + StateStatus string `protobuf:"bytes,7,opt,name=state_status,json=stateStatus,proto3" json:"state_status,omitempty"` + StateRunning bool `protobuf:"varint,8,opt,name=state_running,json=stateRunning,proto3" json:"state_running,omitempty"` + Containers []*WorkloadContainer `protobuf:"bytes,9,rep,name=containers,proto3" json:"containers,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InspectWorkloadResponse) Reset() { + *x = InspectWorkloadResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InspectWorkloadResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InspectWorkloadResponse) ProtoMessage() {} + +func (x *InspectWorkloadResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 InspectWorkloadResponse.ProtoReflect.Descriptor instead. +func (*InspectWorkloadResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{20} +} + +func (x *InspectWorkloadResponse) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *InspectWorkloadResponse) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *InspectWorkloadResponse) GetImage() string { + if x != nil { + return x.Image + } + return "" +} + +func (x *InspectWorkloadResponse) GetConfigImage() string { + if x != nil { + return x.ConfigImage + } + return "" +} + +func (x *InspectWorkloadResponse) GetConfigLabels() map[string]string { + if x != nil { + return x.ConfigLabels + } + return nil +} + +func (x *InspectWorkloadResponse) GetMounts() []*TargetMount { + if x != nil { + return x.Mounts + } + return nil +} + +func (x *InspectWorkloadResponse) GetStateStatus() string { + if x != nil { + return x.StateStatus + } + return "" +} + +func (x *InspectWorkloadResponse) GetStateRunning() bool { + if x != nil { + return x.StateRunning + } + return false +} + +func (x *InspectWorkloadResponse) GetContainers() []*WorkloadContainer { + if x != nil { + return x.Containers + } + return nil +} + +type TargetMount struct { + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Source string `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"` + Destination string `protobuf:"bytes,3,opt,name=destination,proto3" json:"destination,omitempty"` + ReadOnly bool `protobuf:"varint,4,opt,name=read_only,json=readOnly,proto3" json:"read_only,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TargetMount) Reset() { + *x = TargetMount{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TargetMount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TargetMount) ProtoMessage() {} + +func (x *TargetMount) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 TargetMount.ProtoReflect.Descriptor instead. +func (*TargetMount) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{21} +} + +func (x *TargetMount) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *TargetMount) GetSource() string { + if x != nil { + return x.Source + } + return "" +} + +func (x *TargetMount) GetDestination() string { + if x != nil { + return x.Destination + } + return "" +} + +func (x *TargetMount) GetReadOnly() bool { + if x != nil { + return x.ReadOnly + } + return false +} + +type GetWorkloadLabelsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + WorkloadId string `protobuf:"bytes,1,opt,name=workload_id,json=workloadId,proto3" json:"workload_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetWorkloadLabelsRequest) Reset() { + *x = GetWorkloadLabelsRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetWorkloadLabelsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWorkloadLabelsRequest) ProtoMessage() {} + +func (x *GetWorkloadLabelsRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 GetWorkloadLabelsRequest.ProtoReflect.Descriptor instead. +func (*GetWorkloadLabelsRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{22} +} + +func (x *GetWorkloadLabelsRequest) GetWorkloadId() string { + if x != nil { + return x.WorkloadId + } + return "" +} + +type GetWorkloadLabelsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Labels map[string]string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetWorkloadLabelsResponse) Reset() { + *x = GetWorkloadLabelsResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetWorkloadLabelsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWorkloadLabelsResponse) ProtoMessage() {} + +func (x *GetWorkloadLabelsResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_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 GetWorkloadLabelsResponse.ProtoReflect.Descriptor instead. +func (*GetWorkloadLabelsResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{23} +} + +func (x *GetWorkloadLabelsResponse) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +type ListWorkloadsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListWorkloadsRequest) Reset() { + *x = ListWorkloadsRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListWorkloadsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWorkloadsRequest) ProtoMessage() {} + +func (x *ListWorkloadsRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[24] + 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 ListWorkloadsRequest.ProtoReflect.Descriptor instead. +func (*ListWorkloadsRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{24} +} + +type WorkloadListItem struct { + state protoimpl.MessageState `protogen:"open.v1"` + InstanceId string `protobuf:"bytes,1,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"` + WorkloadKey string `protobuf:"bytes,2,opt,name=workload_key,json=workloadKey,proto3" json:"workload_key,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *WorkloadListItem) Reset() { + *x = WorkloadListItem{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *WorkloadListItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkloadListItem) ProtoMessage() {} + +func (x *WorkloadListItem) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[25] + 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 WorkloadListItem.ProtoReflect.Descriptor instead. +func (*WorkloadListItem) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{25} +} + +func (x *WorkloadListItem) GetInstanceId() string { + if x != nil { + return x.InstanceId + } + return "" +} + +func (x *WorkloadListItem) GetWorkloadKey() string { + if x != nil { + return x.WorkloadKey + } + return "" +} + +type ListWorkloadsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Workloads []*WorkloadListItem `protobuf:"bytes,1,rep,name=workloads,proto3" json:"workloads,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListWorkloadsResponse) Reset() { + *x = ListWorkloadsResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListWorkloadsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWorkloadsResponse) ProtoMessage() {} + +func (x *ListWorkloadsResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[26] + 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 ListWorkloadsResponse.ProtoReflect.Descriptor instead. +func (*ListWorkloadsResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{26} +} + +func (x *ListWorkloadsResponse) GetWorkloads() []*WorkloadListItem { + if x != nil { + return x.Workloads + } + return nil +} + +type FindWorkloadsByLabelsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Labels map[string]string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + All bool `protobuf:"varint,2,opt,name=all,proto3" json:"all,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FindWorkloadsByLabelsRequest) Reset() { + *x = FindWorkloadsByLabelsRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FindWorkloadsByLabelsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindWorkloadsByLabelsRequest) ProtoMessage() {} + +func (x *FindWorkloadsByLabelsRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[27] + 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 FindWorkloadsByLabelsRequest.ProtoReflect.Descriptor instead. +func (*FindWorkloadsByLabelsRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{27} +} + +func (x *FindWorkloadsByLabelsRequest) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *FindWorkloadsByLabelsRequest) GetAll() bool { + if x != nil { + return x.All + } + return false +} + +type FindWorkloadsByLabelsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + TargetIds []string `protobuf:"bytes,1,rep,name=target_ids,json=targetIds,proto3" json:"target_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FindWorkloadsByLabelsResponse) Reset() { + *x = FindWorkloadsByLabelsResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FindWorkloadsByLabelsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FindWorkloadsByLabelsResponse) ProtoMessage() {} + +func (x *FindWorkloadsByLabelsResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[28] + 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 FindWorkloadsByLabelsResponse.ProtoReflect.Descriptor instead. +func (*FindWorkloadsByLabelsResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{28} +} + +func (x *FindWorkloadsByLabelsResponse) GetTargetIds() []string { + if x != nil { + return x.TargetIds + } + return nil +} + +type ListWorkloadsByVolumeRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + VolumeName string `protobuf:"bytes,1,opt,name=volume_name,json=volumeName,proto3" json:"volume_name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListWorkloadsByVolumeRequest) Reset() { + *x = ListWorkloadsByVolumeRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListWorkloadsByVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWorkloadsByVolumeRequest) ProtoMessage() {} + +func (x *ListWorkloadsByVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[29] + 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 ListWorkloadsByVolumeRequest.ProtoReflect.Descriptor instead. +func (*ListWorkloadsByVolumeRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{29} +} + +func (x *ListWorkloadsByVolumeRequest) GetVolumeName() string { + if x != nil { + return x.VolumeName + } + return "" +} + +type ListWorkloadsByVolumeResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + TargetIds []string `protobuf:"bytes,1,rep,name=target_ids,json=targetIds,proto3" json:"target_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListWorkloadsByVolumeResponse) Reset() { + *x = ListWorkloadsByVolumeResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListWorkloadsByVolumeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWorkloadsByVolumeResponse) ProtoMessage() {} + +func (x *ListWorkloadsByVolumeResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[30] + 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 ListWorkloadsByVolumeResponse.ProtoReflect.Descriptor instead. +func (*ListWorkloadsByVolumeResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{30} +} + +func (x *ListWorkloadsByVolumeResponse) GetTargetIds() []string { + if x != nil { + return x.TargetIds + } + return nil +} + +type ListVolumesRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListVolumesRequest) Reset() { + *x = ListVolumesRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListVolumesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListVolumesRequest) ProtoMessage() {} + +func (x *ListVolumesRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[31] + 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 ListVolumesRequest.ProtoReflect.Descriptor instead. +func (*ListVolumesRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{31} +} + +type VolumeListItem struct { + state protoimpl.MessageState `protogen:"open.v1"` + InstanceId string `protobuf:"bytes,1,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"` + VolumeKey string `protobuf:"bytes,2,opt,name=volume_key,json=volumeKey,proto3" json:"volume_key,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *VolumeListItem) Reset() { + *x = VolumeListItem{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *VolumeListItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VolumeListItem) ProtoMessage() {} + +func (x *VolumeListItem) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[32] + 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 VolumeListItem.ProtoReflect.Descriptor instead. +func (*VolumeListItem) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{32} +} + +func (x *VolumeListItem) GetInstanceId() string { + if x != nil { + return x.InstanceId + } + return "" +} + +func (x *VolumeListItem) GetVolumeKey() string { + if x != nil { + return x.VolumeKey + } + return "" +} + +type ListVolumesResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Volumes []*VolumeListItem `protobuf:"bytes,1,rep,name=volumes,proto3" json:"volumes,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListVolumesResponse) Reset() { + *x = ListVolumesResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListVolumesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListVolumesResponse) ProtoMessage() {} + +func (x *ListVolumesResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[33] + 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 ListVolumesResponse.ProtoReflect.Descriptor instead. +func (*ListVolumesResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{33} +} + +func (x *ListVolumesResponse) GetVolumes() []*VolumeListItem { + if x != nil { + return x.Volumes + } + return nil +} + +type RemoveVolumeRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + VolumeName string `protobuf:"bytes,1,opt,name=volume_name,json=volumeName,proto3" json:"volume_name,omitempty"` + Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RemoveVolumeRequest) Reset() { + *x = RemoveVolumeRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RemoveVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveVolumeRequest) ProtoMessage() {} + +func (x *RemoveVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[34] + 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 RemoveVolumeRequest.ProtoReflect.Descriptor instead. +func (*RemoveVolumeRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{34} +} + +func (x *RemoveVolumeRequest) GetVolumeName() string { + if x != nil { + return x.VolumeName + } + return "" +} + +func (x *RemoveVolumeRequest) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + +type RemoveVolumeResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RemoveVolumeResponse) Reset() { + *x = RemoveVolumeResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RemoveVolumeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveVolumeResponse) ProtoMessage() {} + +func (x *RemoveVolumeResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[35] + 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 RemoveVolumeResponse.ProtoReflect.Descriptor instead. +func (*RemoveVolumeResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{35} +} + +type TouchWorkloadRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + WorkloadId string `protobuf:"bytes,1,opt,name=workload_id,json=workloadId,proto3" json:"workload_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TouchWorkloadRequest) Reset() { + *x = TouchWorkloadRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TouchWorkloadRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TouchWorkloadRequest) ProtoMessage() {} + +func (x *TouchWorkloadRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[36] + 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 TouchWorkloadRequest.ProtoReflect.Descriptor instead. +func (*TouchWorkloadRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{36} +} + +func (x *TouchWorkloadRequest) GetWorkloadId() string { + if x != nil { + return x.WorkloadId + } + return "" +} + +type TouchWorkloadResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TouchWorkloadResponse) Reset() { + *x = TouchWorkloadResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TouchWorkloadResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TouchWorkloadResponse) ProtoMessage() {} + +func (x *TouchWorkloadResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[37] + 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 TouchWorkloadResponse.ProtoReflect.Descriptor instead. +func (*TouchWorkloadResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{37} +} + +type PutArchiveRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + WorkloadId string `protobuf:"bytes,1,opt,name=workload_id,json=workloadId,proto3" json:"workload_id,omitempty"` + Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` + TarPayload []byte `protobuf:"bytes,3,opt,name=tar_payload,json=tarPayload,proto3" json:"tar_payload,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PutArchiveRequest) Reset() { + *x = PutArchiveRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PutArchiveRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PutArchiveRequest) ProtoMessage() {} + +func (x *PutArchiveRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[38] + 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 PutArchiveRequest.ProtoReflect.Descriptor instead. +func (*PutArchiveRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{38} +} + +func (x *PutArchiveRequest) GetWorkloadId() string { + if x != nil { + return x.WorkloadId + } + return "" +} + +func (x *PutArchiveRequest) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *PutArchiveRequest) GetTarPayload() []byte { + if x != nil { + return x.TarPayload + } + return nil +} + +type PutArchiveResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PutArchiveResponse) Reset() { + *x = PutArchiveResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PutArchiveResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PutArchiveResponse) ProtoMessage() {} + +func (x *PutArchiveResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[39] + 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 PutArchiveResponse.ProtoReflect.Descriptor instead. +func (*PutArchiveResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{39} +} + +type StreamWorkloadLogsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + WorkloadId string `protobuf:"bytes,1,opt,name=workload_id,json=workloadId,proto3" json:"workload_id,omitempty"` + Follow bool `protobuf:"varint,2,opt,name=follow,proto3" json:"follow,omitempty"` + // Deprecated: used only when since_time is unset. + // + // Deprecated: Marked as deprecated in agynio/api/runner/v1/runner.proto. + Since int64 `protobuf:"varint,3,opt,name=since,proto3" json:"since,omitempty"` // epoch seconds; 0 = unset + // Deprecated: used only when tail_lines is unset. + // + // Deprecated: Marked as deprecated in agynio/api/runner/v1/runner.proto. + Tail uint32 `protobuf:"varint,4,opt,name=tail,proto3" json:"tail,omitempty"` // 0 = backend default + // Deprecated: retained for backward compatibility; servers may ignore. + // + // Deprecated: Marked as deprecated in agynio/api/runner/v1/runner.proto. + Stdout bool `protobuf:"varint,5,opt,name=stdout,proto3" json:"stdout,omitempty"` + // Deprecated: Marked as deprecated in agynio/api/runner/v1/runner.proto. + Stderr bool `protobuf:"varint,6,opt,name=stderr,proto3" json:"stderr,omitempty"` + // Deprecated: Marked as deprecated in agynio/api/runner/v1/runner.proto. + Timestamps bool `protobuf:"varint,7,opt,name=timestamps,proto3" json:"timestamps,omitempty"` + // Stable container name within the workload. Required; empty -> InvalidArgument. + ContainerName string `protobuf:"bytes,8,opt,name=container_name,json=containerName,proto3" json:"container_name,omitempty"` + // Number of lines from the end of the log to return (0 = backend default). + // When set (>0), overrides the deprecated tail field. + TailLines uint32 `protobuf:"varint,9,opt,name=tail_lines,json=tailLines,proto3" json:"tail_lines,omitempty"` + // Only return logs since this time (unset = all). + // When set, overrides the deprecated since field. + SinceTime *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=since_time,json=sinceTime,proto3" json:"since_time,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StreamWorkloadLogsRequest) Reset() { + *x = StreamWorkloadLogsRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StreamWorkloadLogsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamWorkloadLogsRequest) ProtoMessage() {} + +func (x *StreamWorkloadLogsRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[40] + 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 StreamWorkloadLogsRequest.ProtoReflect.Descriptor instead. +func (*StreamWorkloadLogsRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{40} +} + +func (x *StreamWorkloadLogsRequest) GetWorkloadId() string { + if x != nil { + return x.WorkloadId + } + return "" +} + +func (x *StreamWorkloadLogsRequest) GetFollow() bool { + if x != nil { + return x.Follow + } + return false +} + +// Deprecated: Marked as deprecated in agynio/api/runner/v1/runner.proto. +func (x *StreamWorkloadLogsRequest) GetSince() int64 { + if x != nil { + return x.Since + } + return 0 +} + +// Deprecated: Marked as deprecated in agynio/api/runner/v1/runner.proto. +func (x *StreamWorkloadLogsRequest) GetTail() uint32 { + if x != nil { + return x.Tail + } + return 0 +} + +// Deprecated: Marked as deprecated in agynio/api/runner/v1/runner.proto. +func (x *StreamWorkloadLogsRequest) GetStdout() bool { + if x != nil { + return x.Stdout + } + return false +} + +// Deprecated: Marked as deprecated in agynio/api/runner/v1/runner.proto. +func (x *StreamWorkloadLogsRequest) GetStderr() bool { + if x != nil { + return x.Stderr + } + return false +} + +// Deprecated: Marked as deprecated in agynio/api/runner/v1/runner.proto. +func (x *StreamWorkloadLogsRequest) GetTimestamps() bool { + if x != nil { + return x.Timestamps + } + return false +} + +func (x *StreamWorkloadLogsRequest) GetContainerName() string { + if x != nil { + return x.ContainerName + } + return "" +} + +func (x *StreamWorkloadLogsRequest) GetTailLines() uint32 { + if x != nil { + return x.TailLines + } + return 0 +} + +func (x *StreamWorkloadLogsRequest) GetSinceTime() *timestamppb.Timestamp { + if x != nil { + return x.SinceTime + } + return nil +} + +type StreamWorkloadLogsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Event: + // + // *StreamWorkloadLogsResponse_Chunk + // *StreamWorkloadLogsResponse_End + // *StreamWorkloadLogsResponse_Error + Event isStreamWorkloadLogsResponse_Event `protobuf_oneof:"event"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StreamWorkloadLogsResponse) Reset() { + *x = StreamWorkloadLogsResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StreamWorkloadLogsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamWorkloadLogsResponse) ProtoMessage() {} + +func (x *StreamWorkloadLogsResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[41] + 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 StreamWorkloadLogsResponse.ProtoReflect.Descriptor instead. +func (*StreamWorkloadLogsResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{41} +} + +func (x *StreamWorkloadLogsResponse) GetEvent() isStreamWorkloadLogsResponse_Event { + if x != nil { + return x.Event + } + return nil +} + +func (x *StreamWorkloadLogsResponse) GetChunk() *LogChunk { + if x != nil { + if x, ok := x.Event.(*StreamWorkloadLogsResponse_Chunk); ok { + return x.Chunk + } + } + return nil +} + +// Deprecated: Marked as deprecated in agynio/api/runner/v1/runner.proto. +func (x *StreamWorkloadLogsResponse) GetEnd() *LogEnd { + if x != nil { + if x, ok := x.Event.(*StreamWorkloadLogsResponse_End); ok { + return x.End + } + } + return nil +} + +// Deprecated: Marked as deprecated in agynio/api/runner/v1/runner.proto. +func (x *StreamWorkloadLogsResponse) GetError() *RunnerError { + if x != nil { + if x, ok := x.Event.(*StreamWorkloadLogsResponse_Error); ok { + return x.Error + } + } + return nil +} + +type isStreamWorkloadLogsResponse_Event interface { + isStreamWorkloadLogsResponse_Event() +} + +type StreamWorkloadLogsResponse_Chunk struct { + Chunk *LogChunk `protobuf:"bytes,1,opt,name=chunk,proto3,oneof"` +} + +type StreamWorkloadLogsResponse_End struct { + // Deprecated: end-of-stream is indicated by a clean gRPC EOF (OK). + // + // Deprecated: Marked as deprecated in agynio/api/runner/v1/runner.proto. + End *LogEnd `protobuf:"bytes,2,opt,name=end,proto3,oneof"` +} + +type StreamWorkloadLogsResponse_Error struct { + // Deprecated: errors must be surfaced via gRPC status codes. + // + // Deprecated: Marked as deprecated in agynio/api/runner/v1/runner.proto. + Error *RunnerError `protobuf:"bytes,3,opt,name=error,proto3,oneof"` +} + +func (*StreamWorkloadLogsResponse_Chunk) isStreamWorkloadLogsResponse_Event() {} + +func (*StreamWorkloadLogsResponse_End) isStreamWorkloadLogsResponse_Event() {} + +func (*StreamWorkloadLogsResponse_Error) isStreamWorkloadLogsResponse_Event() {} + +type LogChunk struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Ts *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=ts,proto3" json:"ts,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogChunk) Reset() { + *x = LogChunk{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogChunk) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogChunk) ProtoMessage() {} + +func (x *LogChunk) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[42] + 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 LogChunk.ProtoReflect.Descriptor instead. +func (*LogChunk) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{42} +} + +func (x *LogChunk) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *LogChunk) GetTs() *timestamppb.Timestamp { + if x != nil { + return x.Ts + } + return nil +} + +// Deprecated: end-of-stream is indicated by gRPC EOF. +type LogEnd struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogEnd) Reset() { + *x = LogEnd{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogEnd) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogEnd) ProtoMessage() {} + +func (x *LogEnd) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[43] + 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 LogEnd.ProtoReflect.Descriptor instead. +func (*LogEnd) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{43} +} + +type StreamEventsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Since int64 `protobuf:"varint,1,opt,name=since,proto3" json:"since,omitempty"` // epoch seconds; 0 = unset + Filters []*EventFilter `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StreamEventsRequest) Reset() { + *x = StreamEventsRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StreamEventsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamEventsRequest) ProtoMessage() {} + +func (x *StreamEventsRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[44] + 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 StreamEventsRequest.ProtoReflect.Descriptor instead. +func (*StreamEventsRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{44} +} + +func (x *StreamEventsRequest) GetSince() int64 { + if x != nil { + return x.Since + } + return 0 +} + +func (x *StreamEventsRequest) GetFilters() []*EventFilter { + if x != nil { + return x.Filters + } + return nil +} + +type EventFilter struct { + state protoimpl.MessageState `protogen:"open.v1"` + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Values []string `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *EventFilter) Reset() { + *x = EventFilter{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *EventFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventFilter) ProtoMessage() {} + +func (x *EventFilter) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[45] + 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 EventFilter.ProtoReflect.Descriptor instead. +func (*EventFilter) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{45} +} + +func (x *EventFilter) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *EventFilter) GetValues() []string { + if x != nil { + return x.Values + } + return nil +} + +type StreamEventsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Event: + // + // *StreamEventsResponse_Data + // *StreamEventsResponse_Error + Event isStreamEventsResponse_Event `protobuf_oneof:"event"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StreamEventsResponse) Reset() { + *x = StreamEventsResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StreamEventsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamEventsResponse) ProtoMessage() {} + +func (x *StreamEventsResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[46] + 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 StreamEventsResponse.ProtoReflect.Descriptor instead. +func (*StreamEventsResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{46} +} + +func (x *StreamEventsResponse) GetEvent() isStreamEventsResponse_Event { + if x != nil { + return x.Event + } + return nil +} + +func (x *StreamEventsResponse) GetData() *RunnerEventData { + if x != nil { + if x, ok := x.Event.(*StreamEventsResponse_Data); ok { + return x.Data + } + } + return nil +} + +func (x *StreamEventsResponse) GetError() *RunnerError { + if x != nil { + if x, ok := x.Event.(*StreamEventsResponse_Error); ok { + return x.Error + } + } + return nil +} + +type isStreamEventsResponse_Event interface { + isStreamEventsResponse_Event() +} + +type StreamEventsResponse_Data struct { + Data *RunnerEventData `protobuf:"bytes,1,opt,name=data,proto3,oneof"` +} + +type StreamEventsResponse_Error struct { + Error *RunnerError `protobuf:"bytes,2,opt,name=error,proto3,oneof"` +} + +func (*StreamEventsResponse_Data) isStreamEventsResponse_Event() {} + +func (*StreamEventsResponse_Error) isStreamEventsResponse_Event() {} + +type RunnerEventData struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Opaque JSON representation (preserves parity with docker events passthrough). + Json string `protobuf:"bytes,1,opt,name=json,proto3" json:"json,omitempty"` + Ts *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=ts,proto3" json:"ts,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RunnerEventData) Reset() { + *x = RunnerEventData{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RunnerEventData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RunnerEventData) ProtoMessage() {} + +func (x *RunnerEventData) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[47] + 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 RunnerEventData.ProtoReflect.Descriptor instead. +func (*RunnerEventData) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{47} +} + +func (x *RunnerEventData) GetJson() string { + if x != nil { + return x.Json + } + return "" +} + +func (x *RunnerEventData) GetTs() *timestamppb.Timestamp { + if x != nil { + return x.Ts + } + return nil +} + +type ExecRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Msg: + // + // *ExecRequest_Start + // *ExecRequest_Stdin + // *ExecRequest_Resize + Msg isExecRequest_Msg `protobuf_oneof:"msg"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ExecRequest) Reset() { + *x = ExecRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExecRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecRequest) ProtoMessage() {} + +func (x *ExecRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[48] + 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 ExecRequest.ProtoReflect.Descriptor instead. +func (*ExecRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{48} +} + +func (x *ExecRequest) GetMsg() isExecRequest_Msg { + if x != nil { + return x.Msg + } + return nil +} + +func (x *ExecRequest) GetStart() *ExecStartRequest { + if x != nil { + if x, ok := x.Msg.(*ExecRequest_Start); ok { + return x.Start + } + } + return nil +} + +func (x *ExecRequest) GetStdin() *ExecStdin { + if x != nil { + if x, ok := x.Msg.(*ExecRequest_Stdin); ok { + return x.Stdin + } + } + return nil +} + +func (x *ExecRequest) GetResize() *ExecResize { + if x != nil { + if x, ok := x.Msg.(*ExecRequest_Resize); ok { + return x.Resize + } + } + return nil +} + +type isExecRequest_Msg interface { + isExecRequest_Msg() +} + +type ExecRequest_Start struct { + Start *ExecStartRequest `protobuf:"bytes,1,opt,name=start,proto3,oneof"` +} + +type ExecRequest_Stdin struct { + Stdin *ExecStdin `protobuf:"bytes,2,opt,name=stdin,proto3,oneof"` +} + +type ExecRequest_Resize struct { + Resize *ExecResize `protobuf:"bytes,3,opt,name=resize,proto3,oneof"` +} + +func (*ExecRequest_Start) isExecRequest_Msg() {} + +func (*ExecRequest_Stdin) isExecRequest_Msg() {} + +func (*ExecRequest_Resize) isExecRequest_Msg() {} + +type ExecStartRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + TargetId string `protobuf:"bytes,2,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"` + // Exactly one must be set. + CommandArgv []string `protobuf:"bytes,3,rep,name=command_argv,json=commandArgv,proto3" json:"command_argv,omitempty"` + CommandShell string `protobuf:"bytes,4,opt,name=command_shell,json=commandShell,proto3" json:"command_shell,omitempty"` + Options *ExecOptions `protobuf:"bytes,5,opt,name=options,proto3" json:"options,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ExecStartRequest) Reset() { + *x = ExecStartRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExecStartRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecStartRequest) ProtoMessage() {} + +func (x *ExecStartRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[49] + 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 ExecStartRequest.ProtoReflect.Descriptor instead. +func (*ExecStartRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{49} +} + +func (x *ExecStartRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *ExecStartRequest) GetTargetId() string { + if x != nil { + return x.TargetId + } + return "" +} + +func (x *ExecStartRequest) GetCommandArgv() []string { + if x != nil { + return x.CommandArgv + } + return nil +} + +func (x *ExecStartRequest) GetCommandShell() string { + if x != nil { + return x.CommandShell + } + return "" +} + +func (x *ExecStartRequest) GetOptions() *ExecOptions { + if x != nil { + return x.Options + } + return nil +} + +type ExecOptions struct { + state protoimpl.MessageState `protogen:"open.v1"` + Workdir string `protobuf:"bytes,1,opt,name=workdir,proto3" json:"workdir,omitempty"` + Env []*EnvVar `protobuf:"bytes,2,rep,name=env,proto3" json:"env,omitempty"` + TimeoutMs uint64 `protobuf:"varint,3,opt,name=timeout_ms,json=timeoutMs,proto3" json:"timeout_ms,omitempty"` + IdleTimeoutMs uint64 `protobuf:"varint,4,opt,name=idle_timeout_ms,json=idleTimeoutMs,proto3" json:"idle_timeout_ms,omitempty"` + Tty bool `protobuf:"varint,5,opt,name=tty,proto3" json:"tty,omitempty"` + SeparateStderr bool `protobuf:"varint,6,opt,name=separate_stderr,json=separateStderr,proto3" json:"separate_stderr,omitempty"` + KillOnTimeout bool `protobuf:"varint,7,opt,name=kill_on_timeout,json=killOnTimeout,proto3" json:"kill_on_timeout,omitempty"` + LogToPid1 bool `protobuf:"varint,8,opt,name=log_to_pid1,json=logToPid1,proto3" json:"log_to_pid1,omitempty"` + ExitTailBytes uint64 `protobuf:"varint,9,opt,name=exit_tail_bytes,json=exitTailBytes,proto3" json:"exit_tail_bytes,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ExecOptions) Reset() { + *x = ExecOptions{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExecOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecOptions) ProtoMessage() {} + +func (x *ExecOptions) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[50] + 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 ExecOptions.ProtoReflect.Descriptor instead. +func (*ExecOptions) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{50} +} + +func (x *ExecOptions) GetWorkdir() string { + if x != nil { + return x.Workdir + } + return "" +} + +func (x *ExecOptions) GetEnv() []*EnvVar { + if x != nil { + return x.Env + } + return nil +} + +func (x *ExecOptions) GetTimeoutMs() uint64 { + if x != nil { + return x.TimeoutMs + } + return 0 +} + +func (x *ExecOptions) GetIdleTimeoutMs() uint64 { + if x != nil { + return x.IdleTimeoutMs + } + return 0 +} + +func (x *ExecOptions) GetTty() bool { + if x != nil { + return x.Tty + } + return false +} + +func (x *ExecOptions) GetSeparateStderr() bool { + if x != nil { + return x.SeparateStderr + } + return false +} + +func (x *ExecOptions) GetKillOnTimeout() bool { + if x != nil { + return x.KillOnTimeout + } + return false +} + +func (x *ExecOptions) GetLogToPid1() bool { + if x != nil { + return x.LogToPid1 + } + return false +} + +func (x *ExecOptions) GetExitTailBytes() uint64 { + if x != nil { + return x.ExitTailBytes + } + return 0 +} + +type ExecStdin struct { + state protoimpl.MessageState `protogen:"open.v1"` + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Eof bool `protobuf:"varint,2,opt,name=eof,proto3" json:"eof,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ExecStdin) Reset() { + *x = ExecStdin{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExecStdin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecStdin) ProtoMessage() {} + +func (x *ExecStdin) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[51] + 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 ExecStdin.ProtoReflect.Descriptor instead. +func (*ExecStdin) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{51} +} + +func (x *ExecStdin) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *ExecStdin) GetEof() bool { + if x != nil { + return x.Eof + } + return false +} + +type ExecResize struct { + state protoimpl.MessageState `protogen:"open.v1"` + Cols uint32 `protobuf:"varint,1,opt,name=cols,proto3" json:"cols,omitempty"` + Rows uint32 `protobuf:"varint,2,opt,name=rows,proto3" json:"rows,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ExecResize) Reset() { + *x = ExecResize{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExecResize) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecResize) ProtoMessage() {} + +func (x *ExecResize) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[52] + 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 ExecResize.ProtoReflect.Descriptor instead. +func (*ExecResize) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{52} +} + +func (x *ExecResize) GetCols() uint32 { + if x != nil { + return x.Cols + } + return 0 +} + +func (x *ExecResize) GetRows() uint32 { + if x != nil { + return x.Rows + } + return 0 +} + +type ExecResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Event: + // + // *ExecResponse_Started + // *ExecResponse_Stdout + // *ExecResponse_Stderr + // *ExecResponse_Exit + // *ExecResponse_Error + Event isExecResponse_Event `protobuf_oneof:"event"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ExecResponse) Reset() { + *x = ExecResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExecResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecResponse) ProtoMessage() {} + +func (x *ExecResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[53] + 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 ExecResponse.ProtoReflect.Descriptor instead. +func (*ExecResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{53} +} + +func (x *ExecResponse) GetEvent() isExecResponse_Event { + if x != nil { + return x.Event + } + return nil +} + +func (x *ExecResponse) GetStarted() *ExecStarted { + if x != nil { + if x, ok := x.Event.(*ExecResponse_Started); ok { + return x.Started + } + } + return nil +} + +func (x *ExecResponse) GetStdout() *ExecOutput { + if x != nil { + if x, ok := x.Event.(*ExecResponse_Stdout); ok { + return x.Stdout + } + } + return nil +} + +func (x *ExecResponse) GetStderr() *ExecOutput { + if x != nil { + if x, ok := x.Event.(*ExecResponse_Stderr); ok { + return x.Stderr + } + } + return nil +} + +func (x *ExecResponse) GetExit() *ExecExit { + if x != nil { + if x, ok := x.Event.(*ExecResponse_Exit); ok { + return x.Exit + } + } + return nil +} + +func (x *ExecResponse) GetError() *ExecError { + if x != nil { + if x, ok := x.Event.(*ExecResponse_Error); ok { + return x.Error + } + } + return nil +} + +type isExecResponse_Event interface { + isExecResponse_Event() +} + +type ExecResponse_Started struct { + Started *ExecStarted `protobuf:"bytes,1,opt,name=started,proto3,oneof"` +} + +type ExecResponse_Stdout struct { + Stdout *ExecOutput `protobuf:"bytes,2,opt,name=stdout,proto3,oneof"` +} + +type ExecResponse_Stderr struct { + Stderr *ExecOutput `protobuf:"bytes,3,opt,name=stderr,proto3,oneof"` +} + +type ExecResponse_Exit struct { + Exit *ExecExit `protobuf:"bytes,4,opt,name=exit,proto3,oneof"` +} + +type ExecResponse_Error struct { + Error *ExecError `protobuf:"bytes,5,opt,name=error,proto3,oneof"` +} + +func (*ExecResponse_Started) isExecResponse_Event() {} + +func (*ExecResponse_Stdout) isExecResponse_Event() {} + +func (*ExecResponse_Stderr) isExecResponse_Event() {} + +func (*ExecResponse_Exit) isExecResponse_Event() {} + +func (*ExecResponse_Error) isExecResponse_Event() {} + +type ExecStarted struct { + state protoimpl.MessageState `protogen:"open.v1"` + ExecutionId string `protobuf:"bytes,1,opt,name=execution_id,json=executionId,proto3" json:"execution_id,omitempty"` + StartedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ExecStarted) Reset() { + *x = ExecStarted{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExecStarted) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecStarted) ProtoMessage() {} + +func (x *ExecStarted) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[54] + 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 ExecStarted.ProtoReflect.Descriptor instead. +func (*ExecStarted) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{54} +} + +func (x *ExecStarted) GetExecutionId() string { + if x != nil { + return x.ExecutionId + } + return "" +} + +func (x *ExecStarted) GetStartedAt() *timestamppb.Timestamp { + if x != nil { + return x.StartedAt + } + return nil +} + +type ExecOutput struct { + state protoimpl.MessageState `protogen:"open.v1"` + Seq uint64 `protobuf:"varint,1,opt,name=seq,proto3" json:"seq,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + Ts *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=ts,proto3" json:"ts,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ExecOutput) Reset() { + *x = ExecOutput{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExecOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecOutput) ProtoMessage() {} + +func (x *ExecOutput) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[55] + 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 ExecOutput.ProtoReflect.Descriptor instead. +func (*ExecOutput) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{55} +} + +func (x *ExecOutput) GetSeq() uint64 { + if x != nil { + return x.Seq + } + return 0 +} + +func (x *ExecOutput) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *ExecOutput) GetTs() *timestamppb.Timestamp { + if x != nil { + return x.Ts + } + return nil +} + +type ExecExit struct { + state protoimpl.MessageState `protogen:"open.v1"` + ExecutionId string `protobuf:"bytes,1,opt,name=execution_id,json=executionId,proto3" json:"execution_id,omitempty"` + ExitCode int32 `protobuf:"varint,2,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` + Killed bool `protobuf:"varint,3,opt,name=killed,proto3" json:"killed,omitempty"` + Reason ExecExitReason `protobuf:"varint,4,opt,name=reason,proto3,enum=agynio.api.runner.v1.ExecExitReason" json:"reason,omitempty"` + StdoutTail []byte `protobuf:"bytes,5,opt,name=stdout_tail,json=stdoutTail,proto3" json:"stdout_tail,omitempty"` + StderrTail []byte `protobuf:"bytes,6,opt,name=stderr_tail,json=stderrTail,proto3" json:"stderr_tail,omitempty"` + FinishedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=finished_at,json=finishedAt,proto3" json:"finished_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ExecExit) Reset() { + *x = ExecExit{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExecExit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecExit) ProtoMessage() {} + +func (x *ExecExit) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[56] + 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 ExecExit.ProtoReflect.Descriptor instead. +func (*ExecExit) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{56} +} + +func (x *ExecExit) GetExecutionId() string { + if x != nil { + return x.ExecutionId + } + return "" +} + +func (x *ExecExit) GetExitCode() int32 { + if x != nil { + return x.ExitCode + } + return 0 +} + +func (x *ExecExit) GetKilled() bool { + if x != nil { + return x.Killed + } + return false +} + +func (x *ExecExit) GetReason() ExecExitReason { + if x != nil { + return x.Reason + } + return ExecExitReason_EXEC_EXIT_REASON_UNSPECIFIED +} + +func (x *ExecExit) GetStdoutTail() []byte { + if x != nil { + return x.StdoutTail + } + return nil +} + +func (x *ExecExit) GetStderrTail() []byte { + if x != nil { + return x.StderrTail + } + return nil +} + +func (x *ExecExit) GetFinishedAt() *timestamppb.Timestamp { + if x != nil { + return x.FinishedAt + } + return nil +} + +type ExecError struct { + state protoimpl.MessageState `protogen:"open.v1"` + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + Retryable bool `protobuf:"varint,3,opt,name=retryable,proto3" json:"retryable,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ExecError) Reset() { + *x = ExecError{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExecError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecError) ProtoMessage() {} + +func (x *ExecError) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[57] + 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 ExecError.ProtoReflect.Descriptor instead. +func (*ExecError) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{57} +} + +func (x *ExecError) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *ExecError) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *ExecError) GetRetryable() bool { + if x != nil { + return x.Retryable + } + return false +} + +type CancelExecutionRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ExecutionId string `protobuf:"bytes,1,opt,name=execution_id,json=executionId,proto3" json:"execution_id,omitempty"` + Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CancelExecutionRequest) Reset() { + *x = CancelExecutionRequest{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CancelExecutionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CancelExecutionRequest) ProtoMessage() {} + +func (x *CancelExecutionRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[58] + 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 CancelExecutionRequest.ProtoReflect.Descriptor instead. +func (*CancelExecutionRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{58} +} + +func (x *CancelExecutionRequest) GetExecutionId() string { + if x != nil { + return x.ExecutionId + } + return "" +} + +func (x *CancelExecutionRequest) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + +type CancelExecutionResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Cancelled bool `protobuf:"varint,1,opt,name=cancelled,proto3" json:"cancelled,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CancelExecutionResponse) Reset() { + *x = CancelExecutionResponse{} + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CancelExecutionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CancelExecutionResponse) ProtoMessage() {} + +func (x *CancelExecutionResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runner_v1_runner_proto_msgTypes[59] + 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 CancelExecutionResponse.ProtoReflect.Descriptor instead. +func (*CancelExecutionResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runner_v1_runner_proto_rawDescGZIP(), []int{59} +} + +func (x *CancelExecutionResponse) GetCancelled() bool { + if x != nil { + return x.Cancelled + } + return false +} + +var File_agynio_api_runner_v1_runner_proto protoreflect.FileDescriptor + +const file_agynio_api_runner_v1_runner_proto_rawDesc = "" + + "\n" + + "!agynio/api/runner/v1/runner.proto\x12\x14agynio.api.runner.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\x0e\n" + + "\fReadyRequest\"'\n" + + "\rReadyResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\"\xdf\x01\n" + + "\vRunnerError\x12\x12\n" + + "\x04code\x18\x01 \x01(\tR\x04code\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\x12H\n" + + "\adetails\x18\x03 \x03(\v2..agynio.api.runner.v1.RunnerError.DetailsEntryR\adetails\x12\x1c\n" + + "\tretryable\x18\x04 \x01(\bR\tretryable\x1a:\n" + + "\fDetailsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"2\n" + + "\x06EnvVar\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value\"\xba\x03\n" + + "\n" + + "VolumeSpec\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x124\n" + + "\x04kind\x18\x02 \x01(\x0e2 .agynio.api.runner.v1.VolumeKindR\x04kind\x12'\n" + + "\x0fpersistent_name\x18\x03 \x01(\tR\x0epersistentName\x12D\n" + + "\x06labels\x18\x04 \x03(\v2,.agynio.api.runner.v1.VolumeSpec.LabelsEntryR\x06labels\x12o\n" + + "\x15additional_properties\x18d \x03(\v2:.agynio.api.runner.v1.VolumeSpec.AdditionalPropertiesEntryR\x14additionalProperties\x1a9\n" + + "\vLabelsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aG\n" + + "\x19AdditionalPropertiesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"a\n" + + "\vVolumeMount\x12\x16\n" + + "\x06volume\x18\x01 \x01(\tR\x06volume\x12\x1d\n" + + "\n" + + "mount_path\x18\x02 \x01(\tR\tmountPath\x12\x1b\n" + + "\tread_only\x18\x03 \x01(\bR\breadOnly\"\xe9\x03\n" + + "\rContainerSpec\x12\x14\n" + + "\x05image\x18\x01 \x01(\tR\x05image\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x10\n" + + "\x03cmd\x18\x03 \x03(\tR\x03cmd\x12\x1e\n" + + "\n" + + "entrypoint\x18\x04 \x01(\tR\n" + + "entrypoint\x12.\n" + + "\x03env\x18\x05 \x03(\v2\x1c.agynio.api.runner.v1.EnvVarR\x03env\x12\x1f\n" + + "\vworking_dir\x18\x06 \x01(\tR\n" + + "workingDir\x129\n" + + "\x06mounts\x18\a \x03(\v2!.agynio.api.runner.v1.VolumeMountR\x06mounts\x123\n" + + "\x15required_capabilities\x18\b \x03(\tR\x14requiredCapabilities\x12r\n" + + "\x15additional_properties\x18d \x03(\v2=.agynio.api.runner.v1.ContainerSpec.AdditionalPropertiesEntryR\x14additionalProperties\x1aG\n" + + "\x19AdditionalPropertiesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"I\n" + + "\tDnsConfig\x12 \n" + + "\vnameservers\x18\x01 \x03(\tR\vnameservers\x12\x1a\n" + + "\bsearches\x18\x02 \x03(\tR\bsearches\"i\n" + + "\x13ImagePullCredential\x12\x1a\n" + + "\bregistry\x18\x01 \x01(\tR\bregistry\x12\x1a\n" + + "\busername\x18\x02 \x01(\tR\busername\x12\x1a\n" + + "\bpassword\x18\x03 \x01(\tR\bpassword\"\xcf\x06\n" + + "\x14StartWorkloadRequest\x127\n" + + "\x04main\x18\x01 \x01(\v2#.agynio.api.runner.v1.ContainerSpecR\x04main\x12?\n" + + "\bsidecars\x18\x02 \x03(\v2#.agynio.api.runner.v1.ContainerSpecR\bsidecars\x12:\n" + + "\avolumes\x18\x03 \x03(\v2 .agynio.api.runner.v1.VolumeSpecR\avolumes\x12L\n" + + "\x0finit_containers\x18\x04 \x03(\v2#.agynio.api.runner.v1.ContainerSpecR\x0einitContainers\x12>\n" + + "\n" + + "dns_config\x18\x05 \x01(\v2\x1f.agynio.api.runner.v1.DnsConfigR\tdnsConfig\x12_\n" + + "\x16image_pull_credentials\x18\x06 \x03(\v2).agynio.api.runner.v1.ImagePullCredentialR\x14imagePullCredentials\x12N\n" + + "\x06labels\x18\a \x03(\v26.agynio.api.runner.v1.StartWorkloadRequest.LabelsEntryR\x06labels\x12\x1f\n" + + "\vworkload_id\x18\b \x01(\tR\n" + + "workloadId\x12\"\n" + + "\fcapabilities\x18\t \x03(\tR\fcapabilities\x12y\n" + + "\x15additional_properties\x18d \x03(\v2D.agynio.api.runner.v1.StartWorkloadRequest.AdditionalPropertiesEntryR\x14additionalProperties\x1a9\n" + + "\vLabelsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aG\n" + + "\x19AdditionalPropertiesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"M\n" + + "\x0fSidecarInstance\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\x12\x16\n" + + "\x06status\x18\x03 \x01(\tR\x06status\"\x81\x02\n" + + "\x15StartWorkloadResponse\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12H\n" + + "\n" + + "containers\x18\x02 \x01(\v2(.agynio.api.runner.v1.WorkloadContainersR\n" + + "containers\x12<\n" + + "\x06status\x18\x03 \x01(\x0e2$.agynio.api.runner.v1.WorkloadStatusR\x06status\x12?\n" + + "\afailure\x18\x04 \x01(\v2%.agynio.api.runner.v1.WorkloadFailureR\afailureJ\x04\b\x05\x10\x06R\trunner_id\"k\n" + + "\x12WorkloadContainers\x12\x12\n" + + "\x04main\x18\x01 \x01(\tR\x04main\x12A\n" + + "\bsidecars\x18\x02 \x03(\v2%.agynio.api.runner.v1.SidecarInstanceR\bsidecars\"\xc9\x01\n" + + "\x0fWorkloadFailure\x12\x12\n" + + "\x04code\x18\x01 \x01(\tR\x04code\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\x12L\n" + + "\adetails\x18\x03 \x03(\v22.agynio.api.runner.v1.WorkloadFailure.DetailsEntryR\adetails\x1a:\n" + + "\fDetailsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"W\n" + + "\x13StopWorkloadRequest\x12\x1f\n" + + "\vworkload_id\x18\x01 \x01(\tR\n" + + "workloadId\x12\x1f\n" + + "\vtimeout_sec\x18\x02 \x01(\rR\n" + + "timeoutSec\"\x16\n" + + "\x14StopWorkloadResponse\"u\n" + + "\x15RemoveWorkloadRequest\x12\x1f\n" + + "\vworkload_id\x18\x01 \x01(\tR\n" + + "workloadId\x12\x14\n" + + "\x05force\x18\x02 \x01(\bR\x05force\x12%\n" + + "\x0eremove_volumes\x18\x03 \x01(\bR\rremoveVolumes\"\x18\n" + + "\x16RemoveWorkloadResponse\"\xa1\x04\n" + + "\x11WorkloadContainer\x12!\n" + + "\fcontainer_id\x18\x01 \x01(\tR\vcontainerId\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x127\n" + + "\x04role\x18\x03 \x01(\x0e2#.agynio.api.runner.v1.ContainerRoleR\x04role\x12\x14\n" + + "\x05image\x18\x04 \x01(\tR\x05image\x12=\n" + + "\x06status\x18\x05 \x01(\x0e2%.agynio.api.runner.v1.ContainerStatusR\x06status\x12\x1b\n" + + "\x06reason\x18\x06 \x01(\tH\x00R\x06reason\x88\x01\x01\x12\x1d\n" + + "\amessage\x18\a \x01(\tH\x01R\amessage\x88\x01\x01\x12 \n" + + "\texit_code\x18\b \x01(\x05H\x02R\bexitCode\x88\x01\x01\x12#\n" + + "\rrestart_count\x18\t \x01(\x05R\frestartCount\x12>\n" + + "\n" + + "started_at\x18\n" + + " \x01(\v2\x1a.google.protobuf.TimestampH\x03R\tstartedAt\x88\x01\x01\x12@\n" + + "\vfinished_at\x18\v \x01(\v2\x1a.google.protobuf.TimestampH\x04R\n" + + "finishedAt\x88\x01\x01B\t\n" + + "\a_reasonB\n" + + "\n" + + "\b_messageB\f\n" + + "\n" + + "_exit_codeB\r\n" + + "\v_started_atB\x0e\n" + + "\f_finished_at\"9\n" + + "\x16InspectWorkloadRequest\x12\x1f\n" + + "\vworkload_id\x18\x01 \x01(\tR\n" + + "workloadId\"\xe9\x03\n" + + "\x17InspectWorkloadResponse\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12\x14\n" + + "\x05image\x18\x03 \x01(\tR\x05image\x12!\n" + + "\fconfig_image\x18\x04 \x01(\tR\vconfigImage\x12d\n" + + "\rconfig_labels\x18\x05 \x03(\v2?.agynio.api.runner.v1.InspectWorkloadResponse.ConfigLabelsEntryR\fconfigLabels\x129\n" + + "\x06mounts\x18\x06 \x03(\v2!.agynio.api.runner.v1.TargetMountR\x06mounts\x12!\n" + + "\fstate_status\x18\a \x01(\tR\vstateStatus\x12#\n" + + "\rstate_running\x18\b \x01(\bR\fstateRunning\x12G\n" + + "\n" + + "containers\x18\t \x03(\v2'.agynio.api.runner.v1.WorkloadContainerR\n" + + "containers\x1a?\n" + + "\x11ConfigLabelsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"x\n" + + "\vTargetMount\x12\x12\n" + + "\x04type\x18\x01 \x01(\tR\x04type\x12\x16\n" + + "\x06source\x18\x02 \x01(\tR\x06source\x12 \n" + + "\vdestination\x18\x03 \x01(\tR\vdestination\x12\x1b\n" + + "\tread_only\x18\x04 \x01(\bR\breadOnly\";\n" + + "\x18GetWorkloadLabelsRequest\x12\x1f\n" + + "\vworkload_id\x18\x01 \x01(\tR\n" + + "workloadId\"\xab\x01\n" + + "\x19GetWorkloadLabelsResponse\x12S\n" + + "\x06labels\x18\x01 \x03(\v2;.agynio.api.runner.v1.GetWorkloadLabelsResponse.LabelsEntryR\x06labels\x1a9\n" + + "\vLabelsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x16\n" + + "\x14ListWorkloadsRequest\"V\n" + + "\x10WorkloadListItem\x12\x1f\n" + + "\vinstance_id\x18\x01 \x01(\tR\n" + + "instanceId\x12!\n" + + "\fworkload_key\x18\x02 \x01(\tR\vworkloadKey\"]\n" + + "\x15ListWorkloadsResponse\x12D\n" + + "\tworkloads\x18\x01 \x03(\v2&.agynio.api.runner.v1.WorkloadListItemR\tworkloads\"\xc3\x01\n" + + "\x1cFindWorkloadsByLabelsRequest\x12V\n" + + "\x06labels\x18\x01 \x03(\v2>.agynio.api.runner.v1.FindWorkloadsByLabelsRequest.LabelsEntryR\x06labels\x12\x10\n" + + "\x03all\x18\x02 \x01(\bR\x03all\x1a9\n" + + "\vLabelsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\">\n" + + "\x1dFindWorkloadsByLabelsResponse\x12\x1d\n" + + "\n" + + "target_ids\x18\x01 \x03(\tR\ttargetIds\"?\n" + + "\x1cListWorkloadsByVolumeRequest\x12\x1f\n" + + "\vvolume_name\x18\x01 \x01(\tR\n" + + "volumeName\">\n" + + "\x1dListWorkloadsByVolumeResponse\x12\x1d\n" + + "\n" + + "target_ids\x18\x01 \x03(\tR\ttargetIds\"\x14\n" + + "\x12ListVolumesRequest\"P\n" + + "\x0eVolumeListItem\x12\x1f\n" + + "\vinstance_id\x18\x01 \x01(\tR\n" + + "instanceId\x12\x1d\n" + + "\n" + + "volume_key\x18\x02 \x01(\tR\tvolumeKey\"U\n" + + "\x13ListVolumesResponse\x12>\n" + + "\avolumes\x18\x01 \x03(\v2$.agynio.api.runner.v1.VolumeListItemR\avolumes\"L\n" + + "\x13RemoveVolumeRequest\x12\x1f\n" + + "\vvolume_name\x18\x01 \x01(\tR\n" + + "volumeName\x12\x14\n" + + "\x05force\x18\x02 \x01(\bR\x05force\"\x16\n" + + "\x14RemoveVolumeResponse\"7\n" + + "\x14TouchWorkloadRequest\x12\x1f\n" + + "\vworkload_id\x18\x01 \x01(\tR\n" + + "workloadId\"\x17\n" + + "\x15TouchWorkloadResponse\"i\n" + + "\x11PutArchiveRequest\x12\x1f\n" + + "\vworkload_id\x18\x01 \x01(\tR\n" + + "workloadId\x12\x12\n" + + "\x04path\x18\x02 \x01(\tR\x04path\x12\x1f\n" + + "\vtar_payload\x18\x03 \x01(\fR\n" + + "tarPayload\"\x14\n" + + "\x12PutArchiveResponse\"\xe3\x02\n" + + "\x19StreamWorkloadLogsRequest\x12\x1f\n" + + "\vworkload_id\x18\x01 \x01(\tR\n" + + "workloadId\x12\x16\n" + + "\x06follow\x18\x02 \x01(\bR\x06follow\x12\x18\n" + + "\x05since\x18\x03 \x01(\x03B\x02\x18\x01R\x05since\x12\x16\n" + + "\x04tail\x18\x04 \x01(\rB\x02\x18\x01R\x04tail\x12\x1a\n" + + "\x06stdout\x18\x05 \x01(\bB\x02\x18\x01R\x06stdout\x12\x1a\n" + + "\x06stderr\x18\x06 \x01(\bB\x02\x18\x01R\x06stderr\x12\"\n" + + "\n" + + "timestamps\x18\a \x01(\bB\x02\x18\x01R\n" + + "timestamps\x12%\n" + + "\x0econtainer_name\x18\b \x01(\tR\rcontainerName\x12\x1d\n" + + "\n" + + "tail_lines\x18\t \x01(\rR\ttailLines\x129\n" + + "\n" + + "since_time\x18\n" + + " \x01(\v2\x1a.google.protobuf.TimestampR\tsinceTime\"\xd2\x01\n" + + "\x1aStreamWorkloadLogsResponse\x126\n" + + "\x05chunk\x18\x01 \x01(\v2\x1e.agynio.api.runner.v1.LogChunkH\x00R\x05chunk\x124\n" + + "\x03end\x18\x02 \x01(\v2\x1c.agynio.api.runner.v1.LogEndB\x02\x18\x01H\x00R\x03end\x12=\n" + + "\x05error\x18\x03 \x01(\v2!.agynio.api.runner.v1.RunnerErrorB\x02\x18\x01H\x00R\x05errorB\a\n" + + "\x05event\"J\n" + + "\bLogChunk\x12\x12\n" + + "\x04data\x18\x01 \x01(\fR\x04data\x12*\n" + + "\x02ts\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\x02ts\"\b\n" + + "\x06LogEnd\"h\n" + + "\x13StreamEventsRequest\x12\x14\n" + + "\x05since\x18\x01 \x01(\x03R\x05since\x12;\n" + + "\afilters\x18\x02 \x03(\v2!.agynio.api.runner.v1.EventFilterR\afilters\"7\n" + + "\vEventFilter\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x16\n" + + "\x06values\x18\x02 \x03(\tR\x06values\"\x97\x01\n" + + "\x14StreamEventsResponse\x12;\n" + + "\x04data\x18\x01 \x01(\v2%.agynio.api.runner.v1.RunnerEventDataH\x00R\x04data\x129\n" + + "\x05error\x18\x02 \x01(\v2!.agynio.api.runner.v1.RunnerErrorH\x00R\x05errorB\a\n" + + "\x05event\"Q\n" + + "\x0fRunnerEventData\x12\x12\n" + + "\x04json\x18\x01 \x01(\tR\x04json\x12*\n" + + "\x02ts\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\x02ts\"\xc9\x01\n" + + "\vExecRequest\x12>\n" + + "\x05start\x18\x01 \x01(\v2&.agynio.api.runner.v1.ExecStartRequestH\x00R\x05start\x127\n" + + "\x05stdin\x18\x02 \x01(\v2\x1f.agynio.api.runner.v1.ExecStdinH\x00R\x05stdin\x12:\n" + + "\x06resize\x18\x03 \x01(\v2 .agynio.api.runner.v1.ExecResizeH\x00R\x06resizeB\x05\n" + + "\x03msg\"\xd3\x01\n" + + "\x10ExecStartRequest\x12\x1d\n" + + "\n" + + "request_id\x18\x01 \x01(\tR\trequestId\x12\x1b\n" + + "\ttarget_id\x18\x02 \x01(\tR\btargetId\x12!\n" + + "\fcommand_argv\x18\x03 \x03(\tR\vcommandArgv\x12#\n" + + "\rcommand_shell\x18\x04 \x01(\tR\fcommandShell\x12;\n" + + "\aoptions\x18\x05 \x01(\v2!.agynio.api.runner.v1.ExecOptionsR\aoptions\"\xc9\x02\n" + + "\vExecOptions\x12\x18\n" + + "\aworkdir\x18\x01 \x01(\tR\aworkdir\x12.\n" + + "\x03env\x18\x02 \x03(\v2\x1c.agynio.api.runner.v1.EnvVarR\x03env\x12\x1d\n" + + "\n" + + "timeout_ms\x18\x03 \x01(\x04R\ttimeoutMs\x12&\n" + + "\x0fidle_timeout_ms\x18\x04 \x01(\x04R\ridleTimeoutMs\x12\x10\n" + + "\x03tty\x18\x05 \x01(\bR\x03tty\x12'\n" + + "\x0fseparate_stderr\x18\x06 \x01(\bR\x0eseparateStderr\x12&\n" + + "\x0fkill_on_timeout\x18\a \x01(\bR\rkillOnTimeout\x12\x1e\n" + + "\vlog_to_pid1\x18\b \x01(\bR\tlogToPid1\x12&\n" + + "\x0fexit_tail_bytes\x18\t \x01(\x04R\rexitTailBytes\"1\n" + + "\tExecStdin\x12\x12\n" + + "\x04data\x18\x01 \x01(\fR\x04data\x12\x10\n" + + "\x03eof\x18\x02 \x01(\bR\x03eof\"4\n" + + "\n" + + "ExecResize\x12\x12\n" + + "\x04cols\x18\x01 \x01(\rR\x04cols\x12\x12\n" + + "\x04rows\x18\x02 \x01(\rR\x04rows\"\xbd\x02\n" + + "\fExecResponse\x12=\n" + + "\astarted\x18\x01 \x01(\v2!.agynio.api.runner.v1.ExecStartedH\x00R\astarted\x12:\n" + + "\x06stdout\x18\x02 \x01(\v2 .agynio.api.runner.v1.ExecOutputH\x00R\x06stdout\x12:\n" + + "\x06stderr\x18\x03 \x01(\v2 .agynio.api.runner.v1.ExecOutputH\x00R\x06stderr\x124\n" + + "\x04exit\x18\x04 \x01(\v2\x1e.agynio.api.runner.v1.ExecExitH\x00R\x04exit\x127\n" + + "\x05error\x18\x05 \x01(\v2\x1f.agynio.api.runner.v1.ExecErrorH\x00R\x05errorB\a\n" + + "\x05event\"k\n" + + "\vExecStarted\x12!\n" + + "\fexecution_id\x18\x01 \x01(\tR\vexecutionId\x129\n" + + "\n" + + "started_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\tstartedAt\"^\n" + + "\n" + + "ExecOutput\x12\x10\n" + + "\x03seq\x18\x01 \x01(\x04R\x03seq\x12\x12\n" + + "\x04data\x18\x02 \x01(\fR\x04data\x12*\n" + + "\x02ts\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\x02ts\"\x9f\x02\n" + + "\bExecExit\x12!\n" + + "\fexecution_id\x18\x01 \x01(\tR\vexecutionId\x12\x1b\n" + + "\texit_code\x18\x02 \x01(\x05R\bexitCode\x12\x16\n" + + "\x06killed\x18\x03 \x01(\bR\x06killed\x12<\n" + + "\x06reason\x18\x04 \x01(\x0e2$.agynio.api.runner.v1.ExecExitReasonR\x06reason\x12\x1f\n" + + "\vstdout_tail\x18\x05 \x01(\fR\n" + + "stdoutTail\x12\x1f\n" + + "\vstderr_tail\x18\x06 \x01(\fR\n" + + "stderrTail\x12;\n" + + "\vfinished_at\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "finishedAt\"W\n" + + "\tExecError\x12\x12\n" + + "\x04code\x18\x01 \x01(\tR\x04code\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\x12\x1c\n" + + "\tretryable\x18\x03 \x01(\bR\tretryable\"Q\n" + + "\x16CancelExecutionRequest\x12!\n" + + "\fexecution_id\x18\x01 \x01(\tR\vexecutionId\x12\x14\n" + + "\x05force\x18\x02 \x01(\bR\x05force\"7\n" + + "\x17CancelExecutionResponse\x12\x1c\n" + + "\tcancelled\x18\x01 \x01(\bR\tcancelled*[\n" + + "\n" + + "VolumeKind\x12\x1b\n" + + "\x17VOLUME_KIND_UNSPECIFIED\x10\x00\x12\x19\n" + + "\x15VOLUME_KIND_EPHEMERAL\x10\x01\x12\x15\n" + + "\x11VOLUME_KIND_NAMED\x10\x02*\xa5\x01\n" + + "\x0eWorkloadStatus\x12\x1f\n" + + "\x1bWORKLOAD_STATUS_UNSPECIFIED\x10\x00\x12\x1b\n" + + "\x17WORKLOAD_STATUS_RUNNING\x10\x01\x12\x1c\n" + + "\x18WORKLOAD_STATUS_STARTING\x10\x02\x12\x1b\n" + + "\x17WORKLOAD_STATUS_STOPPED\x10\x03\x12\x1a\n" + + "\x16WORKLOAD_STATUS_FAILED\x10\x04*}\n" + + "\rContainerRole\x12\x1e\n" + + "\x1aCONTAINER_ROLE_UNSPECIFIED\x10\x00\x12\x17\n" + + "\x13CONTAINER_ROLE_MAIN\x10\x01\x12\x1a\n" + + "\x16CONTAINER_ROLE_SIDECAR\x10\x02\x12\x17\n" + + "\x13CONTAINER_ROLE_INIT\x10\x03*\x90\x01\n" + + "\x0fContainerStatus\x12 \n" + + "\x1cCONTAINER_STATUS_UNSPECIFIED\x10\x00\x12\x1c\n" + + "\x18CONTAINER_STATUS_RUNNING\x10\x01\x12\x1f\n" + + "\x1bCONTAINER_STATUS_TERMINATED\x10\x02\x12\x1c\n" + + "\x18CONTAINER_STATUS_WAITING\x10\x03*\xd6\x01\n" + + "\x0eExecExitReason\x12 \n" + + "\x1cEXEC_EXIT_REASON_UNSPECIFIED\x10\x00\x12\x1e\n" + + "\x1aEXEC_EXIT_REASON_COMPLETED\x10\x01\x12\x1c\n" + + "\x18EXEC_EXIT_REASON_TIMEOUT\x10\x02\x12!\n" + + "\x1dEXEC_EXIT_REASON_IDLE_TIMEOUT\x10\x03\x12\x1e\n" + + "\x1aEXEC_EXIT_REASON_CANCELLED\x10\x04\x12!\n" + + "\x1dEXEC_EXIT_REASON_RUNNER_ERROR\x10\x052\xb2\x0e\n" + + "\rRunnerService\x12P\n" + + "\x05Ready\x12\".agynio.api.runner.v1.ReadyRequest\x1a#.agynio.api.runner.v1.ReadyResponse\x12h\n" + + "\rStartWorkload\x12*.agynio.api.runner.v1.StartWorkloadRequest\x1a+.agynio.api.runner.v1.StartWorkloadResponse\x12e\n" + + "\fStopWorkload\x12).agynio.api.runner.v1.StopWorkloadRequest\x1a*.agynio.api.runner.v1.StopWorkloadResponse\x12k\n" + + "\x0eRemoveWorkload\x12+.agynio.api.runner.v1.RemoveWorkloadRequest\x1a,.agynio.api.runner.v1.RemoveWorkloadResponse\x12n\n" + + "\x0fInspectWorkload\x12,.agynio.api.runner.v1.InspectWorkloadRequest\x1a-.agynio.api.runner.v1.InspectWorkloadResponse\x12t\n" + + "\x11GetWorkloadLabels\x12..agynio.api.runner.v1.GetWorkloadLabelsRequest\x1a/.agynio.api.runner.v1.GetWorkloadLabelsResponse\x12h\n" + + "\rListWorkloads\x12*.agynio.api.runner.v1.ListWorkloadsRequest\x1a+.agynio.api.runner.v1.ListWorkloadsResponse\x12\x80\x01\n" + + "\x15FindWorkloadsByLabels\x122.agynio.api.runner.v1.FindWorkloadsByLabelsRequest\x1a3.agynio.api.runner.v1.FindWorkloadsByLabelsResponse\x12\x80\x01\n" + + "\x15ListWorkloadsByVolume\x122.agynio.api.runner.v1.ListWorkloadsByVolumeRequest\x1a3.agynio.api.runner.v1.ListWorkloadsByVolumeResponse\x12b\n" + + "\vListVolumes\x12(.agynio.api.runner.v1.ListVolumesRequest\x1a).agynio.api.runner.v1.ListVolumesResponse\x12e\n" + + "\fRemoveVolume\x12).agynio.api.runner.v1.RemoveVolumeRequest\x1a*.agynio.api.runner.v1.RemoveVolumeResponse\x12h\n" + + "\rTouchWorkload\x12*.agynio.api.runner.v1.TouchWorkloadRequest\x1a+.agynio.api.runner.v1.TouchWorkloadResponse\x12_\n" + + "\n" + + "PutArchive\x12'.agynio.api.runner.v1.PutArchiveRequest\x1a(.agynio.api.runner.v1.PutArchiveResponse\x12y\n" + + "\x12StreamWorkloadLogs\x12/.agynio.api.runner.v1.StreamWorkloadLogsRequest\x1a0.agynio.api.runner.v1.StreamWorkloadLogsResponse0\x01\x12g\n" + + "\fStreamEvents\x12).agynio.api.runner.v1.StreamEventsRequest\x1a*.agynio.api.runner.v1.StreamEventsResponse0\x01\x12Q\n" + + "\x04Exec\x12!.agynio.api.runner.v1.ExecRequest\x1a\".agynio.api.runner.v1.ExecResponse(\x010\x01\x12n\n" + + "\x0fCancelExecution\x12,.agynio.api.runner.v1.CancelExecutionRequest\x1a-.agynio.api.runner.v1.CancelExecutionResponseB\xd7\x01\n" + + "\x18com.agynio.api.runner.v1B\vRunnerProtoP\x01Z;github.com/agynio/chat/gen/go/agynio/api/runner/v1;runnerv1\xa2\x02\x03AAR\xaa\x02\x14Agynio.Api.Runner.V1\xca\x02\x14Agynio\\Api\\Runner\\V1\xe2\x02 Agynio\\Api\\Runner\\V1\\GPBMetadata\xea\x02\x17Agynio::Api::Runner::V1b\x06proto3" + +var ( + file_agynio_api_runner_v1_runner_proto_rawDescOnce sync.Once + file_agynio_api_runner_v1_runner_proto_rawDescData []byte +) + +func file_agynio_api_runner_v1_runner_proto_rawDescGZIP() []byte { + file_agynio_api_runner_v1_runner_proto_rawDescOnce.Do(func() { + file_agynio_api_runner_v1_runner_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_agynio_api_runner_v1_runner_proto_rawDesc), len(file_agynio_api_runner_v1_runner_proto_rawDesc))) + }) + return file_agynio_api_runner_v1_runner_proto_rawDescData +} + +var file_agynio_api_runner_v1_runner_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_agynio_api_runner_v1_runner_proto_msgTypes = make([]protoimpl.MessageInfo, 70) +var file_agynio_api_runner_v1_runner_proto_goTypes = []any{ + (VolumeKind)(0), // 0: agynio.api.runner.v1.VolumeKind + (WorkloadStatus)(0), // 1: agynio.api.runner.v1.WorkloadStatus + (ContainerRole)(0), // 2: agynio.api.runner.v1.ContainerRole + (ContainerStatus)(0), // 3: agynio.api.runner.v1.ContainerStatus + (ExecExitReason)(0), // 4: agynio.api.runner.v1.ExecExitReason + (*ReadyRequest)(nil), // 5: agynio.api.runner.v1.ReadyRequest + (*ReadyResponse)(nil), // 6: agynio.api.runner.v1.ReadyResponse + (*RunnerError)(nil), // 7: agynio.api.runner.v1.RunnerError + (*EnvVar)(nil), // 8: agynio.api.runner.v1.EnvVar + (*VolumeSpec)(nil), // 9: agynio.api.runner.v1.VolumeSpec + (*VolumeMount)(nil), // 10: agynio.api.runner.v1.VolumeMount + (*ContainerSpec)(nil), // 11: agynio.api.runner.v1.ContainerSpec + (*DnsConfig)(nil), // 12: agynio.api.runner.v1.DnsConfig + (*ImagePullCredential)(nil), // 13: agynio.api.runner.v1.ImagePullCredential + (*StartWorkloadRequest)(nil), // 14: agynio.api.runner.v1.StartWorkloadRequest + (*SidecarInstance)(nil), // 15: agynio.api.runner.v1.SidecarInstance + (*StartWorkloadResponse)(nil), // 16: agynio.api.runner.v1.StartWorkloadResponse + (*WorkloadContainers)(nil), // 17: agynio.api.runner.v1.WorkloadContainers + (*WorkloadFailure)(nil), // 18: agynio.api.runner.v1.WorkloadFailure + (*StopWorkloadRequest)(nil), // 19: agynio.api.runner.v1.StopWorkloadRequest + (*StopWorkloadResponse)(nil), // 20: agynio.api.runner.v1.StopWorkloadResponse + (*RemoveWorkloadRequest)(nil), // 21: agynio.api.runner.v1.RemoveWorkloadRequest + (*RemoveWorkloadResponse)(nil), // 22: agynio.api.runner.v1.RemoveWorkloadResponse + (*WorkloadContainer)(nil), // 23: agynio.api.runner.v1.WorkloadContainer + (*InspectWorkloadRequest)(nil), // 24: agynio.api.runner.v1.InspectWorkloadRequest + (*InspectWorkloadResponse)(nil), // 25: agynio.api.runner.v1.InspectWorkloadResponse + (*TargetMount)(nil), // 26: agynio.api.runner.v1.TargetMount + (*GetWorkloadLabelsRequest)(nil), // 27: agynio.api.runner.v1.GetWorkloadLabelsRequest + (*GetWorkloadLabelsResponse)(nil), // 28: agynio.api.runner.v1.GetWorkloadLabelsResponse + (*ListWorkloadsRequest)(nil), // 29: agynio.api.runner.v1.ListWorkloadsRequest + (*WorkloadListItem)(nil), // 30: agynio.api.runner.v1.WorkloadListItem + (*ListWorkloadsResponse)(nil), // 31: agynio.api.runner.v1.ListWorkloadsResponse + (*FindWorkloadsByLabelsRequest)(nil), // 32: agynio.api.runner.v1.FindWorkloadsByLabelsRequest + (*FindWorkloadsByLabelsResponse)(nil), // 33: agynio.api.runner.v1.FindWorkloadsByLabelsResponse + (*ListWorkloadsByVolumeRequest)(nil), // 34: agynio.api.runner.v1.ListWorkloadsByVolumeRequest + (*ListWorkloadsByVolumeResponse)(nil), // 35: agynio.api.runner.v1.ListWorkloadsByVolumeResponse + (*ListVolumesRequest)(nil), // 36: agynio.api.runner.v1.ListVolumesRequest + (*VolumeListItem)(nil), // 37: agynio.api.runner.v1.VolumeListItem + (*ListVolumesResponse)(nil), // 38: agynio.api.runner.v1.ListVolumesResponse + (*RemoveVolumeRequest)(nil), // 39: agynio.api.runner.v1.RemoveVolumeRequest + (*RemoveVolumeResponse)(nil), // 40: agynio.api.runner.v1.RemoveVolumeResponse + (*TouchWorkloadRequest)(nil), // 41: agynio.api.runner.v1.TouchWorkloadRequest + (*TouchWorkloadResponse)(nil), // 42: agynio.api.runner.v1.TouchWorkloadResponse + (*PutArchiveRequest)(nil), // 43: agynio.api.runner.v1.PutArchiveRequest + (*PutArchiveResponse)(nil), // 44: agynio.api.runner.v1.PutArchiveResponse + (*StreamWorkloadLogsRequest)(nil), // 45: agynio.api.runner.v1.StreamWorkloadLogsRequest + (*StreamWorkloadLogsResponse)(nil), // 46: agynio.api.runner.v1.StreamWorkloadLogsResponse + (*LogChunk)(nil), // 47: agynio.api.runner.v1.LogChunk + (*LogEnd)(nil), // 48: agynio.api.runner.v1.LogEnd + (*StreamEventsRequest)(nil), // 49: agynio.api.runner.v1.StreamEventsRequest + (*EventFilter)(nil), // 50: agynio.api.runner.v1.EventFilter + (*StreamEventsResponse)(nil), // 51: agynio.api.runner.v1.StreamEventsResponse + (*RunnerEventData)(nil), // 52: agynio.api.runner.v1.RunnerEventData + (*ExecRequest)(nil), // 53: agynio.api.runner.v1.ExecRequest + (*ExecStartRequest)(nil), // 54: agynio.api.runner.v1.ExecStartRequest + (*ExecOptions)(nil), // 55: agynio.api.runner.v1.ExecOptions + (*ExecStdin)(nil), // 56: agynio.api.runner.v1.ExecStdin + (*ExecResize)(nil), // 57: agynio.api.runner.v1.ExecResize + (*ExecResponse)(nil), // 58: agynio.api.runner.v1.ExecResponse + (*ExecStarted)(nil), // 59: agynio.api.runner.v1.ExecStarted + (*ExecOutput)(nil), // 60: agynio.api.runner.v1.ExecOutput + (*ExecExit)(nil), // 61: agynio.api.runner.v1.ExecExit + (*ExecError)(nil), // 62: agynio.api.runner.v1.ExecError + (*CancelExecutionRequest)(nil), // 63: agynio.api.runner.v1.CancelExecutionRequest + (*CancelExecutionResponse)(nil), // 64: agynio.api.runner.v1.CancelExecutionResponse + nil, // 65: agynio.api.runner.v1.RunnerError.DetailsEntry + nil, // 66: agynio.api.runner.v1.VolumeSpec.LabelsEntry + nil, // 67: agynio.api.runner.v1.VolumeSpec.AdditionalPropertiesEntry + nil, // 68: agynio.api.runner.v1.ContainerSpec.AdditionalPropertiesEntry + nil, // 69: agynio.api.runner.v1.StartWorkloadRequest.LabelsEntry + nil, // 70: agynio.api.runner.v1.StartWorkloadRequest.AdditionalPropertiesEntry + nil, // 71: agynio.api.runner.v1.WorkloadFailure.DetailsEntry + nil, // 72: agynio.api.runner.v1.InspectWorkloadResponse.ConfigLabelsEntry + nil, // 73: agynio.api.runner.v1.GetWorkloadLabelsResponse.LabelsEntry + nil, // 74: agynio.api.runner.v1.FindWorkloadsByLabelsRequest.LabelsEntry + (*timestamppb.Timestamp)(nil), // 75: google.protobuf.Timestamp +} +var file_agynio_api_runner_v1_runner_proto_depIdxs = []int32{ + 65, // 0: agynio.api.runner.v1.RunnerError.details:type_name -> agynio.api.runner.v1.RunnerError.DetailsEntry + 0, // 1: agynio.api.runner.v1.VolumeSpec.kind:type_name -> agynio.api.runner.v1.VolumeKind + 66, // 2: agynio.api.runner.v1.VolumeSpec.labels:type_name -> agynio.api.runner.v1.VolumeSpec.LabelsEntry + 67, // 3: agynio.api.runner.v1.VolumeSpec.additional_properties:type_name -> agynio.api.runner.v1.VolumeSpec.AdditionalPropertiesEntry + 8, // 4: agynio.api.runner.v1.ContainerSpec.env:type_name -> agynio.api.runner.v1.EnvVar + 10, // 5: agynio.api.runner.v1.ContainerSpec.mounts:type_name -> agynio.api.runner.v1.VolumeMount + 68, // 6: agynio.api.runner.v1.ContainerSpec.additional_properties:type_name -> agynio.api.runner.v1.ContainerSpec.AdditionalPropertiesEntry + 11, // 7: agynio.api.runner.v1.StartWorkloadRequest.main:type_name -> agynio.api.runner.v1.ContainerSpec + 11, // 8: agynio.api.runner.v1.StartWorkloadRequest.sidecars:type_name -> agynio.api.runner.v1.ContainerSpec + 9, // 9: agynio.api.runner.v1.StartWorkloadRequest.volumes:type_name -> agynio.api.runner.v1.VolumeSpec + 11, // 10: agynio.api.runner.v1.StartWorkloadRequest.init_containers:type_name -> agynio.api.runner.v1.ContainerSpec + 12, // 11: agynio.api.runner.v1.StartWorkloadRequest.dns_config:type_name -> agynio.api.runner.v1.DnsConfig + 13, // 12: agynio.api.runner.v1.StartWorkloadRequest.image_pull_credentials:type_name -> agynio.api.runner.v1.ImagePullCredential + 69, // 13: agynio.api.runner.v1.StartWorkloadRequest.labels:type_name -> agynio.api.runner.v1.StartWorkloadRequest.LabelsEntry + 70, // 14: agynio.api.runner.v1.StartWorkloadRequest.additional_properties:type_name -> agynio.api.runner.v1.StartWorkloadRequest.AdditionalPropertiesEntry + 17, // 15: agynio.api.runner.v1.StartWorkloadResponse.containers:type_name -> agynio.api.runner.v1.WorkloadContainers + 1, // 16: agynio.api.runner.v1.StartWorkloadResponse.status:type_name -> agynio.api.runner.v1.WorkloadStatus + 18, // 17: agynio.api.runner.v1.StartWorkloadResponse.failure:type_name -> agynio.api.runner.v1.WorkloadFailure + 15, // 18: agynio.api.runner.v1.WorkloadContainers.sidecars:type_name -> agynio.api.runner.v1.SidecarInstance + 71, // 19: agynio.api.runner.v1.WorkloadFailure.details:type_name -> agynio.api.runner.v1.WorkloadFailure.DetailsEntry + 2, // 20: agynio.api.runner.v1.WorkloadContainer.role:type_name -> agynio.api.runner.v1.ContainerRole + 3, // 21: agynio.api.runner.v1.WorkloadContainer.status:type_name -> agynio.api.runner.v1.ContainerStatus + 75, // 22: agynio.api.runner.v1.WorkloadContainer.started_at:type_name -> google.protobuf.Timestamp + 75, // 23: agynio.api.runner.v1.WorkloadContainer.finished_at:type_name -> google.protobuf.Timestamp + 72, // 24: agynio.api.runner.v1.InspectWorkloadResponse.config_labels:type_name -> agynio.api.runner.v1.InspectWorkloadResponse.ConfigLabelsEntry + 26, // 25: agynio.api.runner.v1.InspectWorkloadResponse.mounts:type_name -> agynio.api.runner.v1.TargetMount + 23, // 26: agynio.api.runner.v1.InspectWorkloadResponse.containers:type_name -> agynio.api.runner.v1.WorkloadContainer + 73, // 27: agynio.api.runner.v1.GetWorkloadLabelsResponse.labels:type_name -> agynio.api.runner.v1.GetWorkloadLabelsResponse.LabelsEntry + 30, // 28: agynio.api.runner.v1.ListWorkloadsResponse.workloads:type_name -> agynio.api.runner.v1.WorkloadListItem + 74, // 29: agynio.api.runner.v1.FindWorkloadsByLabelsRequest.labels:type_name -> agynio.api.runner.v1.FindWorkloadsByLabelsRequest.LabelsEntry + 37, // 30: agynio.api.runner.v1.ListVolumesResponse.volumes:type_name -> agynio.api.runner.v1.VolumeListItem + 75, // 31: agynio.api.runner.v1.StreamWorkloadLogsRequest.since_time:type_name -> google.protobuf.Timestamp + 47, // 32: agynio.api.runner.v1.StreamWorkloadLogsResponse.chunk:type_name -> agynio.api.runner.v1.LogChunk + 48, // 33: agynio.api.runner.v1.StreamWorkloadLogsResponse.end:type_name -> agynio.api.runner.v1.LogEnd + 7, // 34: agynio.api.runner.v1.StreamWorkloadLogsResponse.error:type_name -> agynio.api.runner.v1.RunnerError + 75, // 35: agynio.api.runner.v1.LogChunk.ts:type_name -> google.protobuf.Timestamp + 50, // 36: agynio.api.runner.v1.StreamEventsRequest.filters:type_name -> agynio.api.runner.v1.EventFilter + 52, // 37: agynio.api.runner.v1.StreamEventsResponse.data:type_name -> agynio.api.runner.v1.RunnerEventData + 7, // 38: agynio.api.runner.v1.StreamEventsResponse.error:type_name -> agynio.api.runner.v1.RunnerError + 75, // 39: agynio.api.runner.v1.RunnerEventData.ts:type_name -> google.protobuf.Timestamp + 54, // 40: agynio.api.runner.v1.ExecRequest.start:type_name -> agynio.api.runner.v1.ExecStartRequest + 56, // 41: agynio.api.runner.v1.ExecRequest.stdin:type_name -> agynio.api.runner.v1.ExecStdin + 57, // 42: agynio.api.runner.v1.ExecRequest.resize:type_name -> agynio.api.runner.v1.ExecResize + 55, // 43: agynio.api.runner.v1.ExecStartRequest.options:type_name -> agynio.api.runner.v1.ExecOptions + 8, // 44: agynio.api.runner.v1.ExecOptions.env:type_name -> agynio.api.runner.v1.EnvVar + 59, // 45: agynio.api.runner.v1.ExecResponse.started:type_name -> agynio.api.runner.v1.ExecStarted + 60, // 46: agynio.api.runner.v1.ExecResponse.stdout:type_name -> agynio.api.runner.v1.ExecOutput + 60, // 47: agynio.api.runner.v1.ExecResponse.stderr:type_name -> agynio.api.runner.v1.ExecOutput + 61, // 48: agynio.api.runner.v1.ExecResponse.exit:type_name -> agynio.api.runner.v1.ExecExit + 62, // 49: agynio.api.runner.v1.ExecResponse.error:type_name -> agynio.api.runner.v1.ExecError + 75, // 50: agynio.api.runner.v1.ExecStarted.started_at:type_name -> google.protobuf.Timestamp + 75, // 51: agynio.api.runner.v1.ExecOutput.ts:type_name -> google.protobuf.Timestamp + 4, // 52: agynio.api.runner.v1.ExecExit.reason:type_name -> agynio.api.runner.v1.ExecExitReason + 75, // 53: agynio.api.runner.v1.ExecExit.finished_at:type_name -> google.protobuf.Timestamp + 5, // 54: agynio.api.runner.v1.RunnerService.Ready:input_type -> agynio.api.runner.v1.ReadyRequest + 14, // 55: agynio.api.runner.v1.RunnerService.StartWorkload:input_type -> agynio.api.runner.v1.StartWorkloadRequest + 19, // 56: agynio.api.runner.v1.RunnerService.StopWorkload:input_type -> agynio.api.runner.v1.StopWorkloadRequest + 21, // 57: agynio.api.runner.v1.RunnerService.RemoveWorkload:input_type -> agynio.api.runner.v1.RemoveWorkloadRequest + 24, // 58: agynio.api.runner.v1.RunnerService.InspectWorkload:input_type -> agynio.api.runner.v1.InspectWorkloadRequest + 27, // 59: agynio.api.runner.v1.RunnerService.GetWorkloadLabels:input_type -> agynio.api.runner.v1.GetWorkloadLabelsRequest + 29, // 60: agynio.api.runner.v1.RunnerService.ListWorkloads:input_type -> agynio.api.runner.v1.ListWorkloadsRequest + 32, // 61: agynio.api.runner.v1.RunnerService.FindWorkloadsByLabels:input_type -> agynio.api.runner.v1.FindWorkloadsByLabelsRequest + 34, // 62: agynio.api.runner.v1.RunnerService.ListWorkloadsByVolume:input_type -> agynio.api.runner.v1.ListWorkloadsByVolumeRequest + 36, // 63: agynio.api.runner.v1.RunnerService.ListVolumes:input_type -> agynio.api.runner.v1.ListVolumesRequest + 39, // 64: agynio.api.runner.v1.RunnerService.RemoveVolume:input_type -> agynio.api.runner.v1.RemoveVolumeRequest + 41, // 65: agynio.api.runner.v1.RunnerService.TouchWorkload:input_type -> agynio.api.runner.v1.TouchWorkloadRequest + 43, // 66: agynio.api.runner.v1.RunnerService.PutArchive:input_type -> agynio.api.runner.v1.PutArchiveRequest + 45, // 67: agynio.api.runner.v1.RunnerService.StreamWorkloadLogs:input_type -> agynio.api.runner.v1.StreamWorkloadLogsRequest + 49, // 68: agynio.api.runner.v1.RunnerService.StreamEvents:input_type -> agynio.api.runner.v1.StreamEventsRequest + 53, // 69: agynio.api.runner.v1.RunnerService.Exec:input_type -> agynio.api.runner.v1.ExecRequest + 63, // 70: agynio.api.runner.v1.RunnerService.CancelExecution:input_type -> agynio.api.runner.v1.CancelExecutionRequest + 6, // 71: agynio.api.runner.v1.RunnerService.Ready:output_type -> agynio.api.runner.v1.ReadyResponse + 16, // 72: agynio.api.runner.v1.RunnerService.StartWorkload:output_type -> agynio.api.runner.v1.StartWorkloadResponse + 20, // 73: agynio.api.runner.v1.RunnerService.StopWorkload:output_type -> agynio.api.runner.v1.StopWorkloadResponse + 22, // 74: agynio.api.runner.v1.RunnerService.RemoveWorkload:output_type -> agynio.api.runner.v1.RemoveWorkloadResponse + 25, // 75: agynio.api.runner.v1.RunnerService.InspectWorkload:output_type -> agynio.api.runner.v1.InspectWorkloadResponse + 28, // 76: agynio.api.runner.v1.RunnerService.GetWorkloadLabels:output_type -> agynio.api.runner.v1.GetWorkloadLabelsResponse + 31, // 77: agynio.api.runner.v1.RunnerService.ListWorkloads:output_type -> agynio.api.runner.v1.ListWorkloadsResponse + 33, // 78: agynio.api.runner.v1.RunnerService.FindWorkloadsByLabels:output_type -> agynio.api.runner.v1.FindWorkloadsByLabelsResponse + 35, // 79: agynio.api.runner.v1.RunnerService.ListWorkloadsByVolume:output_type -> agynio.api.runner.v1.ListWorkloadsByVolumeResponse + 38, // 80: agynio.api.runner.v1.RunnerService.ListVolumes:output_type -> agynio.api.runner.v1.ListVolumesResponse + 40, // 81: agynio.api.runner.v1.RunnerService.RemoveVolume:output_type -> agynio.api.runner.v1.RemoveVolumeResponse + 42, // 82: agynio.api.runner.v1.RunnerService.TouchWorkload:output_type -> agynio.api.runner.v1.TouchWorkloadResponse + 44, // 83: agynio.api.runner.v1.RunnerService.PutArchive:output_type -> agynio.api.runner.v1.PutArchiveResponse + 46, // 84: agynio.api.runner.v1.RunnerService.StreamWorkloadLogs:output_type -> agynio.api.runner.v1.StreamWorkloadLogsResponse + 51, // 85: agynio.api.runner.v1.RunnerService.StreamEvents:output_type -> agynio.api.runner.v1.StreamEventsResponse + 58, // 86: agynio.api.runner.v1.RunnerService.Exec:output_type -> agynio.api.runner.v1.ExecResponse + 64, // 87: agynio.api.runner.v1.RunnerService.CancelExecution:output_type -> agynio.api.runner.v1.CancelExecutionResponse + 71, // [71:88] is the sub-list for method output_type + 54, // [54:71] is the sub-list for method input_type + 54, // [54:54] is the sub-list for extension type_name + 54, // [54:54] is the sub-list for extension extendee + 0, // [0:54] is the sub-list for field type_name +} + +func init() { file_agynio_api_runner_v1_runner_proto_init() } +func file_agynio_api_runner_v1_runner_proto_init() { + if File_agynio_api_runner_v1_runner_proto != nil { + return + } + file_agynio_api_runner_v1_runner_proto_msgTypes[18].OneofWrappers = []any{} + file_agynio_api_runner_v1_runner_proto_msgTypes[41].OneofWrappers = []any{ + (*StreamWorkloadLogsResponse_Chunk)(nil), + (*StreamWorkloadLogsResponse_End)(nil), + (*StreamWorkloadLogsResponse_Error)(nil), + } + file_agynio_api_runner_v1_runner_proto_msgTypes[46].OneofWrappers = []any{ + (*StreamEventsResponse_Data)(nil), + (*StreamEventsResponse_Error)(nil), + } + file_agynio_api_runner_v1_runner_proto_msgTypes[48].OneofWrappers = []any{ + (*ExecRequest_Start)(nil), + (*ExecRequest_Stdin)(nil), + (*ExecRequest_Resize)(nil), + } + file_agynio_api_runner_v1_runner_proto_msgTypes[53].OneofWrappers = []any{ + (*ExecResponse_Started)(nil), + (*ExecResponse_Stdout)(nil), + (*ExecResponse_Stderr)(nil), + (*ExecResponse_Exit)(nil), + (*ExecResponse_Error)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_agynio_api_runner_v1_runner_proto_rawDesc), len(file_agynio_api_runner_v1_runner_proto_rawDesc)), + NumEnums: 5, + NumMessages: 70, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_agynio_api_runner_v1_runner_proto_goTypes, + DependencyIndexes: file_agynio_api_runner_v1_runner_proto_depIdxs, + EnumInfos: file_agynio_api_runner_v1_runner_proto_enumTypes, + MessageInfos: file_agynio_api_runner_v1_runner_proto_msgTypes, + }.Build() + File_agynio_api_runner_v1_runner_proto = out.File + file_agynio_api_runner_v1_runner_proto_goTypes = nil + file_agynio_api_runner_v1_runner_proto_depIdxs = nil +} diff --git a/gen/go/agynio/api/runner/v1/runner_grpc.pb.go b/gen/go/agynio/api/runner/v1/runner_grpc.pb.go new file mode 100644 index 0000000..6cbbf8d --- /dev/null +++ b/gen/go/agynio/api/runner/v1/runner_grpc.pb.go @@ -0,0 +1,756 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.6.1 +// - protoc (unknown) +// source: agynio/api/runner/v1/runner.proto + +package runnerv1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + RunnerService_Ready_FullMethodName = "/agynio.api.runner.v1.RunnerService/Ready" + RunnerService_StartWorkload_FullMethodName = "/agynio.api.runner.v1.RunnerService/StartWorkload" + RunnerService_StopWorkload_FullMethodName = "/agynio.api.runner.v1.RunnerService/StopWorkload" + RunnerService_RemoveWorkload_FullMethodName = "/agynio.api.runner.v1.RunnerService/RemoveWorkload" + RunnerService_InspectWorkload_FullMethodName = "/agynio.api.runner.v1.RunnerService/InspectWorkload" + RunnerService_GetWorkloadLabels_FullMethodName = "/agynio.api.runner.v1.RunnerService/GetWorkloadLabels" + RunnerService_ListWorkloads_FullMethodName = "/agynio.api.runner.v1.RunnerService/ListWorkloads" + RunnerService_FindWorkloadsByLabels_FullMethodName = "/agynio.api.runner.v1.RunnerService/FindWorkloadsByLabels" + RunnerService_ListWorkloadsByVolume_FullMethodName = "/agynio.api.runner.v1.RunnerService/ListWorkloadsByVolume" + RunnerService_ListVolumes_FullMethodName = "/agynio.api.runner.v1.RunnerService/ListVolumes" + RunnerService_RemoveVolume_FullMethodName = "/agynio.api.runner.v1.RunnerService/RemoveVolume" + RunnerService_TouchWorkload_FullMethodName = "/agynio.api.runner.v1.RunnerService/TouchWorkload" + RunnerService_PutArchive_FullMethodName = "/agynio.api.runner.v1.RunnerService/PutArchive" + RunnerService_StreamWorkloadLogs_FullMethodName = "/agynio.api.runner.v1.RunnerService/StreamWorkloadLogs" + RunnerService_StreamEvents_FullMethodName = "/agynio.api.runner.v1.RunnerService/StreamEvents" + RunnerService_Exec_FullMethodName = "/agynio.api.runner.v1.RunnerService/Exec" + RunnerService_CancelExecution_FullMethodName = "/agynio.api.runner.v1.RunnerService/CancelExecution" +) + +// RunnerServiceClient is the client API for RunnerService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +// +// RunnerService mirrors the current docker-runner HTTP+WS+SSE surface, +// but replaces unary exec/run with a single streaming-only Exec RPC. +type RunnerServiceClient interface { + // Health/readiness + Ready(ctx context.Context, in *ReadyRequest, opts ...grpc.CallOption) (*ReadyResponse, error) + // Targets (containers today) + StartWorkload(ctx context.Context, in *StartWorkloadRequest, opts ...grpc.CallOption) (*StartWorkloadResponse, error) + StopWorkload(ctx context.Context, in *StopWorkloadRequest, opts ...grpc.CallOption) (*StopWorkloadResponse, error) + RemoveWorkload(ctx context.Context, in *RemoveWorkloadRequest, opts ...grpc.CallOption) (*RemoveWorkloadResponse, error) + // Minimal inspect surface with EXACT fields required by platform today. + InspectWorkload(ctx context.Context, in *InspectWorkloadRequest, opts ...grpc.CallOption) (*InspectWorkloadResponse, error) + GetWorkloadLabels(ctx context.Context, in *GetWorkloadLabelsRequest, opts ...grpc.CallOption) (*GetWorkloadLabelsResponse, error) + ListWorkloads(ctx context.Context, in *ListWorkloadsRequest, opts ...grpc.CallOption) (*ListWorkloadsResponse, error) + FindWorkloadsByLabels(ctx context.Context, in *FindWorkloadsByLabelsRequest, opts ...grpc.CallOption) (*FindWorkloadsByLabelsResponse, error) + ListWorkloadsByVolume(ctx context.Context, in *ListWorkloadsByVolumeRequest, opts ...grpc.CallOption) (*ListWorkloadsByVolumeResponse, error) + ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error) + RemoveVolume(ctx context.Context, in *RemoveVolumeRequest, opts ...grpc.CallOption) (*RemoveVolumeResponse, error) + TouchWorkload(ctx context.Context, in *TouchWorkloadRequest, opts ...grpc.CallOption) (*TouchWorkloadResponse, error) + PutArchive(ctx context.Context, in *PutArchiveRequest, opts ...grpc.CallOption) (*PutArchiveResponse, error) + // Streaming logs/events (SSE equivalents) + // StreamWorkloadLogs streams logs for a workload container addressed by container_name. + // Error/EOF contract (returned via gRPC status codes, not in-band): + // - NotFound for unknown workload or container + // - OK when logs are exhausted or the container terminates with the Pod still present + // - Unavailable when the Pod is deleted mid-stream + StreamWorkloadLogs(ctx context.Context, in *StreamWorkloadLogsRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[StreamWorkloadLogsResponse], error) + StreamEvents(ctx context.Context, in *StreamEventsRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[StreamEventsResponse], error) + // Exec (streaming-only; replaces /v1/exec/run and /v1/exec/interactive/ws) + Exec(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[ExecRequest, ExecResponse], error) + // Cancellation for a previously started execution_id. + CancelExecution(ctx context.Context, in *CancelExecutionRequest, opts ...grpc.CallOption) (*CancelExecutionResponse, error) +} + +type runnerServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewRunnerServiceClient(cc grpc.ClientConnInterface) RunnerServiceClient { + return &runnerServiceClient{cc} +} + +func (c *runnerServiceClient) Ready(ctx context.Context, in *ReadyRequest, opts ...grpc.CallOption) (*ReadyResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ReadyResponse) + err := c.cc.Invoke(ctx, RunnerService_Ready_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnerServiceClient) StartWorkload(ctx context.Context, in *StartWorkloadRequest, opts ...grpc.CallOption) (*StartWorkloadResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(StartWorkloadResponse) + err := c.cc.Invoke(ctx, RunnerService_StartWorkload_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnerServiceClient) StopWorkload(ctx context.Context, in *StopWorkloadRequest, opts ...grpc.CallOption) (*StopWorkloadResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(StopWorkloadResponse) + err := c.cc.Invoke(ctx, RunnerService_StopWorkload_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnerServiceClient) RemoveWorkload(ctx context.Context, in *RemoveWorkloadRequest, opts ...grpc.CallOption) (*RemoveWorkloadResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(RemoveWorkloadResponse) + err := c.cc.Invoke(ctx, RunnerService_RemoveWorkload_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnerServiceClient) InspectWorkload(ctx context.Context, in *InspectWorkloadRequest, opts ...grpc.CallOption) (*InspectWorkloadResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(InspectWorkloadResponse) + err := c.cc.Invoke(ctx, RunnerService_InspectWorkload_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnerServiceClient) GetWorkloadLabels(ctx context.Context, in *GetWorkloadLabelsRequest, opts ...grpc.CallOption) (*GetWorkloadLabelsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetWorkloadLabelsResponse) + err := c.cc.Invoke(ctx, RunnerService_GetWorkloadLabels_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnerServiceClient) ListWorkloads(ctx context.Context, in *ListWorkloadsRequest, opts ...grpc.CallOption) (*ListWorkloadsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListWorkloadsResponse) + err := c.cc.Invoke(ctx, RunnerService_ListWorkloads_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnerServiceClient) FindWorkloadsByLabels(ctx context.Context, in *FindWorkloadsByLabelsRequest, opts ...grpc.CallOption) (*FindWorkloadsByLabelsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(FindWorkloadsByLabelsResponse) + err := c.cc.Invoke(ctx, RunnerService_FindWorkloadsByLabels_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnerServiceClient) ListWorkloadsByVolume(ctx context.Context, in *ListWorkloadsByVolumeRequest, opts ...grpc.CallOption) (*ListWorkloadsByVolumeResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListWorkloadsByVolumeResponse) + err := c.cc.Invoke(ctx, RunnerService_ListWorkloadsByVolume_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnerServiceClient) ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListVolumesResponse) + err := c.cc.Invoke(ctx, RunnerService_ListVolumes_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnerServiceClient) RemoveVolume(ctx context.Context, in *RemoveVolumeRequest, opts ...grpc.CallOption) (*RemoveVolumeResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(RemoveVolumeResponse) + err := c.cc.Invoke(ctx, RunnerService_RemoveVolume_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnerServiceClient) TouchWorkload(ctx context.Context, in *TouchWorkloadRequest, opts ...grpc.CallOption) (*TouchWorkloadResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(TouchWorkloadResponse) + err := c.cc.Invoke(ctx, RunnerService_TouchWorkload_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnerServiceClient) PutArchive(ctx context.Context, in *PutArchiveRequest, opts ...grpc.CallOption) (*PutArchiveResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(PutArchiveResponse) + err := c.cc.Invoke(ctx, RunnerService_PutArchive_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnerServiceClient) StreamWorkloadLogs(ctx context.Context, in *StreamWorkloadLogsRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[StreamWorkloadLogsResponse], error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + stream, err := c.cc.NewStream(ctx, &RunnerService_ServiceDesc.Streams[0], RunnerService_StreamWorkloadLogs_FullMethodName, cOpts...) + if err != nil { + return nil, err + } + x := &grpc.GenericClientStream[StreamWorkloadLogsRequest, StreamWorkloadLogsResponse]{ClientStream: stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type RunnerService_StreamWorkloadLogsClient = grpc.ServerStreamingClient[StreamWorkloadLogsResponse] + +func (c *runnerServiceClient) StreamEvents(ctx context.Context, in *StreamEventsRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[StreamEventsResponse], error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + stream, err := c.cc.NewStream(ctx, &RunnerService_ServiceDesc.Streams[1], RunnerService_StreamEvents_FullMethodName, cOpts...) + if err != nil { + return nil, err + } + x := &grpc.GenericClientStream[StreamEventsRequest, StreamEventsResponse]{ClientStream: stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type RunnerService_StreamEventsClient = grpc.ServerStreamingClient[StreamEventsResponse] + +func (c *runnerServiceClient) Exec(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[ExecRequest, ExecResponse], error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + stream, err := c.cc.NewStream(ctx, &RunnerService_ServiceDesc.Streams[2], RunnerService_Exec_FullMethodName, cOpts...) + if err != nil { + return nil, err + } + x := &grpc.GenericClientStream[ExecRequest, ExecResponse]{ClientStream: stream} + return x, nil +} + +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type RunnerService_ExecClient = grpc.BidiStreamingClient[ExecRequest, ExecResponse] + +func (c *runnerServiceClient) CancelExecution(ctx context.Context, in *CancelExecutionRequest, opts ...grpc.CallOption) (*CancelExecutionResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(CancelExecutionResponse) + err := c.cc.Invoke(ctx, RunnerService_CancelExecution_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// RunnerServiceServer is the server API for RunnerService service. +// All implementations should embed UnimplementedRunnerServiceServer +// for forward compatibility. +// +// RunnerService mirrors the current docker-runner HTTP+WS+SSE surface, +// but replaces unary exec/run with a single streaming-only Exec RPC. +type RunnerServiceServer interface { + // Health/readiness + Ready(context.Context, *ReadyRequest) (*ReadyResponse, error) + // Targets (containers today) + StartWorkload(context.Context, *StartWorkloadRequest) (*StartWorkloadResponse, error) + StopWorkload(context.Context, *StopWorkloadRequest) (*StopWorkloadResponse, error) + RemoveWorkload(context.Context, *RemoveWorkloadRequest) (*RemoveWorkloadResponse, error) + // Minimal inspect surface with EXACT fields required by platform today. + InspectWorkload(context.Context, *InspectWorkloadRequest) (*InspectWorkloadResponse, error) + GetWorkloadLabels(context.Context, *GetWorkloadLabelsRequest) (*GetWorkloadLabelsResponse, error) + ListWorkloads(context.Context, *ListWorkloadsRequest) (*ListWorkloadsResponse, error) + FindWorkloadsByLabels(context.Context, *FindWorkloadsByLabelsRequest) (*FindWorkloadsByLabelsResponse, error) + ListWorkloadsByVolume(context.Context, *ListWorkloadsByVolumeRequest) (*ListWorkloadsByVolumeResponse, error) + ListVolumes(context.Context, *ListVolumesRequest) (*ListVolumesResponse, error) + RemoveVolume(context.Context, *RemoveVolumeRequest) (*RemoveVolumeResponse, error) + TouchWorkload(context.Context, *TouchWorkloadRequest) (*TouchWorkloadResponse, error) + PutArchive(context.Context, *PutArchiveRequest) (*PutArchiveResponse, error) + // Streaming logs/events (SSE equivalents) + // StreamWorkloadLogs streams logs for a workload container addressed by container_name. + // Error/EOF contract (returned via gRPC status codes, not in-band): + // - NotFound for unknown workload or container + // - OK when logs are exhausted or the container terminates with the Pod still present + // - Unavailable when the Pod is deleted mid-stream + StreamWorkloadLogs(*StreamWorkloadLogsRequest, grpc.ServerStreamingServer[StreamWorkloadLogsResponse]) error + StreamEvents(*StreamEventsRequest, grpc.ServerStreamingServer[StreamEventsResponse]) error + // Exec (streaming-only; replaces /v1/exec/run and /v1/exec/interactive/ws) + Exec(grpc.BidiStreamingServer[ExecRequest, ExecResponse]) error + // Cancellation for a previously started execution_id. + CancelExecution(context.Context, *CancelExecutionRequest) (*CancelExecutionResponse, error) +} + +// UnimplementedRunnerServiceServer should be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedRunnerServiceServer struct{} + +func (UnimplementedRunnerServiceServer) Ready(context.Context, *ReadyRequest) (*ReadyResponse, error) { + return nil, status.Error(codes.Unimplemented, "method Ready not implemented") +} +func (UnimplementedRunnerServiceServer) StartWorkload(context.Context, *StartWorkloadRequest) (*StartWorkloadResponse, error) { + return nil, status.Error(codes.Unimplemented, "method StartWorkload not implemented") +} +func (UnimplementedRunnerServiceServer) StopWorkload(context.Context, *StopWorkloadRequest) (*StopWorkloadResponse, error) { + return nil, status.Error(codes.Unimplemented, "method StopWorkload not implemented") +} +func (UnimplementedRunnerServiceServer) RemoveWorkload(context.Context, *RemoveWorkloadRequest) (*RemoveWorkloadResponse, error) { + return nil, status.Error(codes.Unimplemented, "method RemoveWorkload not implemented") +} +func (UnimplementedRunnerServiceServer) InspectWorkload(context.Context, *InspectWorkloadRequest) (*InspectWorkloadResponse, error) { + return nil, status.Error(codes.Unimplemented, "method InspectWorkload not implemented") +} +func (UnimplementedRunnerServiceServer) GetWorkloadLabels(context.Context, *GetWorkloadLabelsRequest) (*GetWorkloadLabelsResponse, error) { + return nil, status.Error(codes.Unimplemented, "method GetWorkloadLabels not implemented") +} +func (UnimplementedRunnerServiceServer) ListWorkloads(context.Context, *ListWorkloadsRequest) (*ListWorkloadsResponse, error) { + return nil, status.Error(codes.Unimplemented, "method ListWorkloads not implemented") +} +func (UnimplementedRunnerServiceServer) FindWorkloadsByLabels(context.Context, *FindWorkloadsByLabelsRequest) (*FindWorkloadsByLabelsResponse, error) { + return nil, status.Error(codes.Unimplemented, "method FindWorkloadsByLabels not implemented") +} +func (UnimplementedRunnerServiceServer) ListWorkloadsByVolume(context.Context, *ListWorkloadsByVolumeRequest) (*ListWorkloadsByVolumeResponse, error) { + return nil, status.Error(codes.Unimplemented, "method ListWorkloadsByVolume not implemented") +} +func (UnimplementedRunnerServiceServer) ListVolumes(context.Context, *ListVolumesRequest) (*ListVolumesResponse, error) { + return nil, status.Error(codes.Unimplemented, "method ListVolumes not implemented") +} +func (UnimplementedRunnerServiceServer) RemoveVolume(context.Context, *RemoveVolumeRequest) (*RemoveVolumeResponse, error) { + return nil, status.Error(codes.Unimplemented, "method RemoveVolume not implemented") +} +func (UnimplementedRunnerServiceServer) TouchWorkload(context.Context, *TouchWorkloadRequest) (*TouchWorkloadResponse, error) { + return nil, status.Error(codes.Unimplemented, "method TouchWorkload not implemented") +} +func (UnimplementedRunnerServiceServer) PutArchive(context.Context, *PutArchiveRequest) (*PutArchiveResponse, error) { + return nil, status.Error(codes.Unimplemented, "method PutArchive not implemented") +} +func (UnimplementedRunnerServiceServer) StreamWorkloadLogs(*StreamWorkloadLogsRequest, grpc.ServerStreamingServer[StreamWorkloadLogsResponse]) error { + return status.Error(codes.Unimplemented, "method StreamWorkloadLogs not implemented") +} +func (UnimplementedRunnerServiceServer) StreamEvents(*StreamEventsRequest, grpc.ServerStreamingServer[StreamEventsResponse]) error { + return status.Error(codes.Unimplemented, "method StreamEvents not implemented") +} +func (UnimplementedRunnerServiceServer) Exec(grpc.BidiStreamingServer[ExecRequest, ExecResponse]) error { + return status.Error(codes.Unimplemented, "method Exec not implemented") +} +func (UnimplementedRunnerServiceServer) CancelExecution(context.Context, *CancelExecutionRequest) (*CancelExecutionResponse, error) { + return nil, status.Error(codes.Unimplemented, "method CancelExecution not implemented") +} +func (UnimplementedRunnerServiceServer) testEmbeddedByValue() {} + +// UnsafeRunnerServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to RunnerServiceServer will +// result in compilation errors. +type UnsafeRunnerServiceServer interface { + mustEmbedUnimplementedRunnerServiceServer() +} + +func RegisterRunnerServiceServer(s grpc.ServiceRegistrar, srv RunnerServiceServer) { + // If the following call panics, it indicates UnimplementedRunnerServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&RunnerService_ServiceDesc, srv) +} + +func _RunnerService_Ready_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReadyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnerServiceServer).Ready(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnerService_Ready_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnerServiceServer).Ready(ctx, req.(*ReadyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnerService_StartWorkload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StartWorkloadRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnerServiceServer).StartWorkload(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnerService_StartWorkload_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnerServiceServer).StartWorkload(ctx, req.(*StartWorkloadRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnerService_StopWorkload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StopWorkloadRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnerServiceServer).StopWorkload(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnerService_StopWorkload_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnerServiceServer).StopWorkload(ctx, req.(*StopWorkloadRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnerService_RemoveWorkload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveWorkloadRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnerServiceServer).RemoveWorkload(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnerService_RemoveWorkload_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnerServiceServer).RemoveWorkload(ctx, req.(*RemoveWorkloadRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnerService_InspectWorkload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InspectWorkloadRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnerServiceServer).InspectWorkload(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnerService_InspectWorkload_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnerServiceServer).InspectWorkload(ctx, req.(*InspectWorkloadRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnerService_GetWorkloadLabels_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetWorkloadLabelsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnerServiceServer).GetWorkloadLabels(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnerService_GetWorkloadLabels_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnerServiceServer).GetWorkloadLabels(ctx, req.(*GetWorkloadLabelsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnerService_ListWorkloads_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListWorkloadsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnerServiceServer).ListWorkloads(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnerService_ListWorkloads_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnerServiceServer).ListWorkloads(ctx, req.(*ListWorkloadsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnerService_FindWorkloadsByLabels_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FindWorkloadsByLabelsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnerServiceServer).FindWorkloadsByLabels(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnerService_FindWorkloadsByLabels_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnerServiceServer).FindWorkloadsByLabels(ctx, req.(*FindWorkloadsByLabelsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnerService_ListWorkloadsByVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListWorkloadsByVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnerServiceServer).ListWorkloadsByVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnerService_ListWorkloadsByVolume_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnerServiceServer).ListWorkloadsByVolume(ctx, req.(*ListWorkloadsByVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnerService_ListVolumes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListVolumesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnerServiceServer).ListVolumes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnerService_ListVolumes_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnerServiceServer).ListVolumes(ctx, req.(*ListVolumesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnerService_RemoveVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnerServiceServer).RemoveVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnerService_RemoveVolume_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnerServiceServer).RemoveVolume(ctx, req.(*RemoveVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnerService_TouchWorkload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TouchWorkloadRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnerServiceServer).TouchWorkload(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnerService_TouchWorkload_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnerServiceServer).TouchWorkload(ctx, req.(*TouchWorkloadRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnerService_PutArchive_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PutArchiveRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnerServiceServer).PutArchive(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnerService_PutArchive_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnerServiceServer).PutArchive(ctx, req.(*PutArchiveRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnerService_StreamWorkloadLogs_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(StreamWorkloadLogsRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(RunnerServiceServer).StreamWorkloadLogs(m, &grpc.GenericServerStream[StreamWorkloadLogsRequest, StreamWorkloadLogsResponse]{ServerStream: stream}) +} + +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type RunnerService_StreamWorkloadLogsServer = grpc.ServerStreamingServer[StreamWorkloadLogsResponse] + +func _RunnerService_StreamEvents_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(StreamEventsRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(RunnerServiceServer).StreamEvents(m, &grpc.GenericServerStream[StreamEventsRequest, StreamEventsResponse]{ServerStream: stream}) +} + +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type RunnerService_StreamEventsServer = grpc.ServerStreamingServer[StreamEventsResponse] + +func _RunnerService_Exec_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(RunnerServiceServer).Exec(&grpc.GenericServerStream[ExecRequest, ExecResponse]{ServerStream: stream}) +} + +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type RunnerService_ExecServer = grpc.BidiStreamingServer[ExecRequest, ExecResponse] + +func _RunnerService_CancelExecution_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CancelExecutionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnerServiceServer).CancelExecution(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnerService_CancelExecution_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnerServiceServer).CancelExecution(ctx, req.(*CancelExecutionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// RunnerService_ServiceDesc is the grpc.ServiceDesc for RunnerService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var RunnerService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "agynio.api.runner.v1.RunnerService", + HandlerType: (*RunnerServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Ready", + Handler: _RunnerService_Ready_Handler, + }, + { + MethodName: "StartWorkload", + Handler: _RunnerService_StartWorkload_Handler, + }, + { + MethodName: "StopWorkload", + Handler: _RunnerService_StopWorkload_Handler, + }, + { + MethodName: "RemoveWorkload", + Handler: _RunnerService_RemoveWorkload_Handler, + }, + { + MethodName: "InspectWorkload", + Handler: _RunnerService_InspectWorkload_Handler, + }, + { + MethodName: "GetWorkloadLabels", + Handler: _RunnerService_GetWorkloadLabels_Handler, + }, + { + MethodName: "ListWorkloads", + Handler: _RunnerService_ListWorkloads_Handler, + }, + { + MethodName: "FindWorkloadsByLabels", + Handler: _RunnerService_FindWorkloadsByLabels_Handler, + }, + { + MethodName: "ListWorkloadsByVolume", + Handler: _RunnerService_ListWorkloadsByVolume_Handler, + }, + { + MethodName: "ListVolumes", + Handler: _RunnerService_ListVolumes_Handler, + }, + { + MethodName: "RemoveVolume", + Handler: _RunnerService_RemoveVolume_Handler, + }, + { + MethodName: "TouchWorkload", + Handler: _RunnerService_TouchWorkload_Handler, + }, + { + MethodName: "PutArchive", + Handler: _RunnerService_PutArchive_Handler, + }, + { + MethodName: "CancelExecution", + Handler: _RunnerService_CancelExecution_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "StreamWorkloadLogs", + Handler: _RunnerService_StreamWorkloadLogs_Handler, + ServerStreams: true, + }, + { + StreamName: "StreamEvents", + Handler: _RunnerService_StreamEvents_Handler, + ServerStreams: true, + }, + { + StreamName: "Exec", + Handler: _RunnerService_Exec_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, + Metadata: "agynio/api/runner/v1/runner.proto", +} diff --git a/gen/go/agynio/api/runners/v1/runners.pb.go b/gen/go/agynio/api/runners/v1/runners.pb.go new file mode 100644 index 0000000..306a165 --- /dev/null +++ b/gen/go/agynio/api/runners/v1/runners.pb.go @@ -0,0 +1,4741 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.11 +// protoc (unknown) +// source: agynio/api/runners/v1/runners.proto + +package runnersv1 + +import ( + v1 "github.com/agynio/chat/gen/go/agynio/api/runner/v1" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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 SortDirection int32 + +const ( + SortDirection_SORT_DIRECTION_UNSPECIFIED SortDirection = 0 + SortDirection_SORT_DIRECTION_ASC SortDirection = 1 + SortDirection_SORT_DIRECTION_DESC SortDirection = 2 +) + +// Enum value maps for SortDirection. +var ( + SortDirection_name = map[int32]string{ + 0: "SORT_DIRECTION_UNSPECIFIED", + 1: "SORT_DIRECTION_ASC", + 2: "SORT_DIRECTION_DESC", + } + SortDirection_value = map[string]int32{ + "SORT_DIRECTION_UNSPECIFIED": 0, + "SORT_DIRECTION_ASC": 1, + "SORT_DIRECTION_DESC": 2, + } +) + +func (x SortDirection) Enum() *SortDirection { + p := new(SortDirection) + *p = x + return p +} + +func (x SortDirection) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SortDirection) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_runners_v1_runners_proto_enumTypes[0].Descriptor() +} + +func (SortDirection) Type() protoreflect.EnumType { + return &file_agynio_api_runners_v1_runners_proto_enumTypes[0] +} + +func (x SortDirection) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SortDirection.Descriptor instead. +func (SortDirection) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{0} +} + +type RunnerStatus int32 + +const ( + RunnerStatus_RUNNER_STATUS_UNSPECIFIED RunnerStatus = 0 + RunnerStatus_RUNNER_STATUS_PENDING RunnerStatus = 1 + RunnerStatus_RUNNER_STATUS_ENROLLED RunnerStatus = 2 + RunnerStatus_RUNNER_STATUS_OFFLINE RunnerStatus = 3 +) + +// Enum value maps for RunnerStatus. +var ( + RunnerStatus_name = map[int32]string{ + 0: "RUNNER_STATUS_UNSPECIFIED", + 1: "RUNNER_STATUS_PENDING", + 2: "RUNNER_STATUS_ENROLLED", + 3: "RUNNER_STATUS_OFFLINE", + } + RunnerStatus_value = map[string]int32{ + "RUNNER_STATUS_UNSPECIFIED": 0, + "RUNNER_STATUS_PENDING": 1, + "RUNNER_STATUS_ENROLLED": 2, + "RUNNER_STATUS_OFFLINE": 3, + } +) + +func (x RunnerStatus) Enum() *RunnerStatus { + p := new(RunnerStatus) + *p = x + return p +} + +func (x RunnerStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RunnerStatus) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_runners_v1_runners_proto_enumTypes[1].Descriptor() +} + +func (RunnerStatus) Type() protoreflect.EnumType { + return &file_agynio_api_runners_v1_runners_proto_enumTypes[1] +} + +func (x RunnerStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RunnerStatus.Descriptor instead. +func (RunnerStatus) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{1} +} + +type WorkloadStatus int32 + +const ( + WorkloadStatus_WORKLOAD_STATUS_UNSPECIFIED WorkloadStatus = 0 + WorkloadStatus_WORKLOAD_STATUS_STARTING WorkloadStatus = 1 + WorkloadStatus_WORKLOAD_STATUS_RUNNING WorkloadStatus = 2 + WorkloadStatus_WORKLOAD_STATUS_STOPPING WorkloadStatus = 3 + WorkloadStatus_WORKLOAD_STATUS_STOPPED WorkloadStatus = 4 + WorkloadStatus_WORKLOAD_STATUS_FAILED WorkloadStatus = 5 +) + +// Enum value maps for WorkloadStatus. +var ( + WorkloadStatus_name = map[int32]string{ + 0: "WORKLOAD_STATUS_UNSPECIFIED", + 1: "WORKLOAD_STATUS_STARTING", + 2: "WORKLOAD_STATUS_RUNNING", + 3: "WORKLOAD_STATUS_STOPPING", + 4: "WORKLOAD_STATUS_STOPPED", + 5: "WORKLOAD_STATUS_FAILED", + } + WorkloadStatus_value = map[string]int32{ + "WORKLOAD_STATUS_UNSPECIFIED": 0, + "WORKLOAD_STATUS_STARTING": 1, + "WORKLOAD_STATUS_RUNNING": 2, + "WORKLOAD_STATUS_STOPPING": 3, + "WORKLOAD_STATUS_STOPPED": 4, + "WORKLOAD_STATUS_FAILED": 5, + } +) + +func (x WorkloadStatus) Enum() *WorkloadStatus { + p := new(WorkloadStatus) + *p = x + return p +} + +func (x WorkloadStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WorkloadStatus) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_runners_v1_runners_proto_enumTypes[2].Descriptor() +} + +func (WorkloadStatus) Type() protoreflect.EnumType { + return &file_agynio_api_runners_v1_runners_proto_enumTypes[2] +} + +func (x WorkloadStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WorkloadStatus.Descriptor instead. +func (WorkloadStatus) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{2} +} + +type WorkloadFailureReason int32 + +const ( + WorkloadFailureReason_WORKLOAD_FAILURE_REASON_UNSPECIFIED WorkloadFailureReason = 0 + WorkloadFailureReason_WORKLOAD_FAILURE_REASON_START_FAILED WorkloadFailureReason = 1 + WorkloadFailureReason_WORKLOAD_FAILURE_REASON_IMAGE_PULL_FAILED WorkloadFailureReason = 2 + WorkloadFailureReason_WORKLOAD_FAILURE_REASON_CONFIG_INVALID WorkloadFailureReason = 3 + WorkloadFailureReason_WORKLOAD_FAILURE_REASON_CRASHLOOP WorkloadFailureReason = 4 + WorkloadFailureReason_WORKLOAD_FAILURE_REASON_RUNTIME_LOST WorkloadFailureReason = 5 +) + +// Enum value maps for WorkloadFailureReason. +var ( + WorkloadFailureReason_name = map[int32]string{ + 0: "WORKLOAD_FAILURE_REASON_UNSPECIFIED", + 1: "WORKLOAD_FAILURE_REASON_START_FAILED", + 2: "WORKLOAD_FAILURE_REASON_IMAGE_PULL_FAILED", + 3: "WORKLOAD_FAILURE_REASON_CONFIG_INVALID", + 4: "WORKLOAD_FAILURE_REASON_CRASHLOOP", + 5: "WORKLOAD_FAILURE_REASON_RUNTIME_LOST", + } + WorkloadFailureReason_value = map[string]int32{ + "WORKLOAD_FAILURE_REASON_UNSPECIFIED": 0, + "WORKLOAD_FAILURE_REASON_START_FAILED": 1, + "WORKLOAD_FAILURE_REASON_IMAGE_PULL_FAILED": 2, + "WORKLOAD_FAILURE_REASON_CONFIG_INVALID": 3, + "WORKLOAD_FAILURE_REASON_CRASHLOOP": 4, + "WORKLOAD_FAILURE_REASON_RUNTIME_LOST": 5, + } +) + +func (x WorkloadFailureReason) Enum() *WorkloadFailureReason { + p := new(WorkloadFailureReason) + *p = x + return p +} + +func (x WorkloadFailureReason) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WorkloadFailureReason) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_runners_v1_runners_proto_enumTypes[3].Descriptor() +} + +func (WorkloadFailureReason) Type() protoreflect.EnumType { + return &file_agynio_api_runners_v1_runners_proto_enumTypes[3] +} + +func (x WorkloadFailureReason) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WorkloadFailureReason.Descriptor instead. +func (WorkloadFailureReason) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{3} +} + +type ContainerRole int32 + +const ( + ContainerRole_CONTAINER_ROLE_UNSPECIFIED ContainerRole = 0 + ContainerRole_CONTAINER_ROLE_MAIN ContainerRole = 1 + ContainerRole_CONTAINER_ROLE_SIDECAR ContainerRole = 2 + ContainerRole_CONTAINER_ROLE_INIT ContainerRole = 3 +) + +// Enum value maps for ContainerRole. +var ( + ContainerRole_name = map[int32]string{ + 0: "CONTAINER_ROLE_UNSPECIFIED", + 1: "CONTAINER_ROLE_MAIN", + 2: "CONTAINER_ROLE_SIDECAR", + 3: "CONTAINER_ROLE_INIT", + } + ContainerRole_value = map[string]int32{ + "CONTAINER_ROLE_UNSPECIFIED": 0, + "CONTAINER_ROLE_MAIN": 1, + "CONTAINER_ROLE_SIDECAR": 2, + "CONTAINER_ROLE_INIT": 3, + } +) + +func (x ContainerRole) Enum() *ContainerRole { + p := new(ContainerRole) + *p = x + return p +} + +func (x ContainerRole) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ContainerRole) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_runners_v1_runners_proto_enumTypes[4].Descriptor() +} + +func (ContainerRole) Type() protoreflect.EnumType { + return &file_agynio_api_runners_v1_runners_proto_enumTypes[4] +} + +func (x ContainerRole) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ContainerRole.Descriptor instead. +func (ContainerRole) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{4} +} + +type ContainerStatus int32 + +const ( + ContainerStatus_CONTAINER_STATUS_UNSPECIFIED ContainerStatus = 0 + ContainerStatus_CONTAINER_STATUS_RUNNING ContainerStatus = 1 + ContainerStatus_CONTAINER_STATUS_TERMINATED ContainerStatus = 2 + ContainerStatus_CONTAINER_STATUS_WAITING ContainerStatus = 3 +) + +// Enum value maps for ContainerStatus. +var ( + ContainerStatus_name = map[int32]string{ + 0: "CONTAINER_STATUS_UNSPECIFIED", + 1: "CONTAINER_STATUS_RUNNING", + 2: "CONTAINER_STATUS_TERMINATED", + 3: "CONTAINER_STATUS_WAITING", + } + ContainerStatus_value = map[string]int32{ + "CONTAINER_STATUS_UNSPECIFIED": 0, + "CONTAINER_STATUS_RUNNING": 1, + "CONTAINER_STATUS_TERMINATED": 2, + "CONTAINER_STATUS_WAITING": 3, + } +) + +func (x ContainerStatus) Enum() *ContainerStatus { + p := new(ContainerStatus) + *p = x + return p +} + +func (x ContainerStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ContainerStatus) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_runners_v1_runners_proto_enumTypes[5].Descriptor() +} + +func (ContainerStatus) Type() protoreflect.EnumType { + return &file_agynio_api_runners_v1_runners_proto_enumTypes[5] +} + +func (x ContainerStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ContainerStatus.Descriptor instead. +func (ContainerStatus) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{5} +} + +type ListWorkloadsSortField int32 + +const ( + ListWorkloadsSortField_LIST_WORKLOADS_SORT_FIELD_UNSPECIFIED ListWorkloadsSortField = 0 + ListWorkloadsSortField_LIST_WORKLOADS_SORT_FIELD_STARTED ListWorkloadsSortField = 1 + ListWorkloadsSortField_LIST_WORKLOADS_SORT_FIELD_AGENT ListWorkloadsSortField = 2 + ListWorkloadsSortField_LIST_WORKLOADS_SORT_FIELD_RUNNER ListWorkloadsSortField = 3 + ListWorkloadsSortField_LIST_WORKLOADS_SORT_FIELD_STATUS ListWorkloadsSortField = 4 + ListWorkloadsSortField_LIST_WORKLOADS_SORT_FIELD_DURATION ListWorkloadsSortField = 5 +) + +// Enum value maps for ListWorkloadsSortField. +var ( + ListWorkloadsSortField_name = map[int32]string{ + 0: "LIST_WORKLOADS_SORT_FIELD_UNSPECIFIED", + 1: "LIST_WORKLOADS_SORT_FIELD_STARTED", + 2: "LIST_WORKLOADS_SORT_FIELD_AGENT", + 3: "LIST_WORKLOADS_SORT_FIELD_RUNNER", + 4: "LIST_WORKLOADS_SORT_FIELD_STATUS", + 5: "LIST_WORKLOADS_SORT_FIELD_DURATION", + } + ListWorkloadsSortField_value = map[string]int32{ + "LIST_WORKLOADS_SORT_FIELD_UNSPECIFIED": 0, + "LIST_WORKLOADS_SORT_FIELD_STARTED": 1, + "LIST_WORKLOADS_SORT_FIELD_AGENT": 2, + "LIST_WORKLOADS_SORT_FIELD_RUNNER": 3, + "LIST_WORKLOADS_SORT_FIELD_STATUS": 4, + "LIST_WORKLOADS_SORT_FIELD_DURATION": 5, + } +) + +func (x ListWorkloadsSortField) Enum() *ListWorkloadsSortField { + p := new(ListWorkloadsSortField) + *p = x + return p +} + +func (x ListWorkloadsSortField) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListWorkloadsSortField) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_runners_v1_runners_proto_enumTypes[6].Descriptor() +} + +func (ListWorkloadsSortField) Type() protoreflect.EnumType { + return &file_agynio_api_runners_v1_runners_proto_enumTypes[6] +} + +func (x ListWorkloadsSortField) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListWorkloadsSortField.Descriptor instead. +func (ListWorkloadsSortField) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{6} +} + +type VolumeStatus int32 + +const ( + VolumeStatus_VOLUME_STATUS_UNSPECIFIED VolumeStatus = 0 + VolumeStatus_VOLUME_STATUS_PROVISIONING VolumeStatus = 1 + VolumeStatus_VOLUME_STATUS_ACTIVE VolumeStatus = 2 + VolumeStatus_VOLUME_STATUS_DEPROVISIONING VolumeStatus = 3 + VolumeStatus_VOLUME_STATUS_DELETED VolumeStatus = 4 + VolumeStatus_VOLUME_STATUS_FAILED VolumeStatus = 5 +) + +// Enum value maps for VolumeStatus. +var ( + VolumeStatus_name = map[int32]string{ + 0: "VOLUME_STATUS_UNSPECIFIED", + 1: "VOLUME_STATUS_PROVISIONING", + 2: "VOLUME_STATUS_ACTIVE", + 3: "VOLUME_STATUS_DEPROVISIONING", + 4: "VOLUME_STATUS_DELETED", + 5: "VOLUME_STATUS_FAILED", + } + VolumeStatus_value = map[string]int32{ + "VOLUME_STATUS_UNSPECIFIED": 0, + "VOLUME_STATUS_PROVISIONING": 1, + "VOLUME_STATUS_ACTIVE": 2, + "VOLUME_STATUS_DEPROVISIONING": 3, + "VOLUME_STATUS_DELETED": 4, + "VOLUME_STATUS_FAILED": 5, + } +) + +func (x VolumeStatus) Enum() *VolumeStatus { + p := new(VolumeStatus) + *p = x + return p +} + +func (x VolumeStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VolumeStatus) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_runners_v1_runners_proto_enumTypes[7].Descriptor() +} + +func (VolumeStatus) Type() protoreflect.EnumType { + return &file_agynio_api_runners_v1_runners_proto_enumTypes[7] +} + +func (x VolumeStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VolumeStatus.Descriptor instead. +func (VolumeStatus) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{7} +} + +type AttachmentKind int32 + +const ( + AttachmentKind_ATTACHMENT_KIND_UNSPECIFIED AttachmentKind = 0 + AttachmentKind_ATTACHMENT_KIND_AGENT AttachmentKind = 1 + AttachmentKind_ATTACHMENT_KIND_MCP AttachmentKind = 2 + AttachmentKind_ATTACHMENT_KIND_HOOK AttachmentKind = 3 +) + +// Enum value maps for AttachmentKind. +var ( + AttachmentKind_name = map[int32]string{ + 0: "ATTACHMENT_KIND_UNSPECIFIED", + 1: "ATTACHMENT_KIND_AGENT", + 2: "ATTACHMENT_KIND_MCP", + 3: "ATTACHMENT_KIND_HOOK", + } + AttachmentKind_value = map[string]int32{ + "ATTACHMENT_KIND_UNSPECIFIED": 0, + "ATTACHMENT_KIND_AGENT": 1, + "ATTACHMENT_KIND_MCP": 2, + "ATTACHMENT_KIND_HOOK": 3, + } +) + +func (x AttachmentKind) Enum() *AttachmentKind { + p := new(AttachmentKind) + *p = x + return p +} + +func (x AttachmentKind) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AttachmentKind) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_runners_v1_runners_proto_enumTypes[8].Descriptor() +} + +func (AttachmentKind) Type() protoreflect.EnumType { + return &file_agynio_api_runners_v1_runners_proto_enumTypes[8] +} + +func (x AttachmentKind) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AttachmentKind.Descriptor instead. +func (AttachmentKind) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{8} +} + +type VolumeAttachmentFilterKind int32 + +const ( + VolumeAttachmentFilterKind_VOLUME_ATTACHMENT_FILTER_KIND_UNSPECIFIED VolumeAttachmentFilterKind = 0 + VolumeAttachmentFilterKind_VOLUME_ATTACHMENT_FILTER_KIND_AGENT VolumeAttachmentFilterKind = 1 + VolumeAttachmentFilterKind_VOLUME_ATTACHMENT_FILTER_KIND_MCP VolumeAttachmentFilterKind = 2 + VolumeAttachmentFilterKind_VOLUME_ATTACHMENT_FILTER_KIND_HOOK VolumeAttachmentFilterKind = 3 + VolumeAttachmentFilterKind_VOLUME_ATTACHMENT_FILTER_KIND_UNATTACHED VolumeAttachmentFilterKind = 4 +) + +// Enum value maps for VolumeAttachmentFilterKind. +var ( + VolumeAttachmentFilterKind_name = map[int32]string{ + 0: "VOLUME_ATTACHMENT_FILTER_KIND_UNSPECIFIED", + 1: "VOLUME_ATTACHMENT_FILTER_KIND_AGENT", + 2: "VOLUME_ATTACHMENT_FILTER_KIND_MCP", + 3: "VOLUME_ATTACHMENT_FILTER_KIND_HOOK", + 4: "VOLUME_ATTACHMENT_FILTER_KIND_UNATTACHED", + } + VolumeAttachmentFilterKind_value = map[string]int32{ + "VOLUME_ATTACHMENT_FILTER_KIND_UNSPECIFIED": 0, + "VOLUME_ATTACHMENT_FILTER_KIND_AGENT": 1, + "VOLUME_ATTACHMENT_FILTER_KIND_MCP": 2, + "VOLUME_ATTACHMENT_FILTER_KIND_HOOK": 3, + "VOLUME_ATTACHMENT_FILTER_KIND_UNATTACHED": 4, + } +) + +func (x VolumeAttachmentFilterKind) Enum() *VolumeAttachmentFilterKind { + p := new(VolumeAttachmentFilterKind) + *p = x + return p +} + +func (x VolumeAttachmentFilterKind) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VolumeAttachmentFilterKind) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_runners_v1_runners_proto_enumTypes[9].Descriptor() +} + +func (VolumeAttachmentFilterKind) Type() protoreflect.EnumType { + return &file_agynio_api_runners_v1_runners_proto_enumTypes[9] +} + +func (x VolumeAttachmentFilterKind) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VolumeAttachmentFilterKind.Descriptor instead. +func (VolumeAttachmentFilterKind) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{9} +} + +type ListVolumesSortField int32 + +const ( + ListVolumesSortField_LIST_VOLUMES_SORT_FIELD_UNSPECIFIED ListVolumesSortField = 0 + ListVolumesSortField_LIST_VOLUMES_SORT_FIELD_NAME ListVolumesSortField = 1 + ListVolumesSortField_LIST_VOLUMES_SORT_FIELD_SIZE ListVolumesSortField = 2 + ListVolumesSortField_LIST_VOLUMES_SORT_FIELD_STATUS ListVolumesSortField = 3 + ListVolumesSortField_LIST_VOLUMES_SORT_FIELD_CREATED ListVolumesSortField = 4 +) + +// Enum value maps for ListVolumesSortField. +var ( + ListVolumesSortField_name = map[int32]string{ + 0: "LIST_VOLUMES_SORT_FIELD_UNSPECIFIED", + 1: "LIST_VOLUMES_SORT_FIELD_NAME", + 2: "LIST_VOLUMES_SORT_FIELD_SIZE", + 3: "LIST_VOLUMES_SORT_FIELD_STATUS", + 4: "LIST_VOLUMES_SORT_FIELD_CREATED", + } + ListVolumesSortField_value = map[string]int32{ + "LIST_VOLUMES_SORT_FIELD_UNSPECIFIED": 0, + "LIST_VOLUMES_SORT_FIELD_NAME": 1, + "LIST_VOLUMES_SORT_FIELD_SIZE": 2, + "LIST_VOLUMES_SORT_FIELD_STATUS": 3, + "LIST_VOLUMES_SORT_FIELD_CREATED": 4, + } +) + +func (x ListVolumesSortField) Enum() *ListVolumesSortField { + p := new(ListVolumesSortField) + *p = x + return p +} + +func (x ListVolumesSortField) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListVolumesSortField) Descriptor() protoreflect.EnumDescriptor { + return file_agynio_api_runners_v1_runners_proto_enumTypes[10].Descriptor() +} + +func (ListVolumesSortField) Type() protoreflect.EnumType { + return &file_agynio_api_runners_v1_runners_proto_enumTypes[10] +} + +func (x ListVolumesSortField) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListVolumesSortField.Descriptor instead. +func (ListVolumesSortField) EnumDescriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{10} +} + +type EntityMeta struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + CreatedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *EntityMeta) Reset() { + *x = EntityMeta{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *EntityMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EntityMeta) ProtoMessage() {} + +func (x *EntityMeta) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 EntityMeta.ProtoReflect.Descriptor instead. +func (*EntityMeta) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{0} +} + +func (x *EntityMeta) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *EntityMeta) GetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.CreatedAt + } + return nil +} + +func (x *EntityMeta) GetUpdatedAt() *timestamppb.Timestamp { + if x != nil { + return x.UpdatedAt + } + return nil +} + +type SampledAtEntry struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + SampledAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=sampled_at,json=sampledAt,proto3" json:"sampled_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SampledAtEntry) Reset() { + *x = SampledAtEntry{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SampledAtEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SampledAtEntry) ProtoMessage() {} + +func (x *SampledAtEntry) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 SampledAtEntry.ProtoReflect.Descriptor instead. +func (*SampledAtEntry) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{1} +} + +func (x *SampledAtEntry) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *SampledAtEntry) GetSampledAt() *timestamppb.Timestamp { + if x != nil { + return x.SampledAt + } + return nil +} + +type Runner struct { + state protoimpl.MessageState `protogen:"open.v1"` + Meta *EntityMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + OrganizationId *string `protobuf:"bytes,3,opt,name=organization_id,json=organizationId,proto3,oneof" json:"organization_id,omitempty"` + IdentityId string `protobuf:"bytes,4,opt,name=identity_id,json=identityId,proto3" json:"identity_id,omitempty"` + Status RunnerStatus `protobuf:"varint,5,opt,name=status,proto3,enum=agynio.api.runners.v1.RunnerStatus" json:"status,omitempty"` + Labels map[string]string `protobuf:"bytes,6,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Per-runner OpenZiti service name (e.g. "runner-{id}") + OpenzitiServiceName string `protobuf:"bytes,7,opt,name=openziti_service_name,json=openzitiServiceName,proto3" json:"openziti_service_name,omitempty"` + // Capabilities supported by this runner. Free-form strings (e.g., "privileged", "dind"). + Capabilities []string `protobuf:"bytes,8,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Runner) Reset() { + *x = Runner{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Runner) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Runner) ProtoMessage() {} + +func (x *Runner) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 Runner.ProtoReflect.Descriptor instead. +func (*Runner) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{2} +} + +func (x *Runner) GetMeta() *EntityMeta { + if x != nil { + return x.Meta + } + return nil +} + +func (x *Runner) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Runner) GetOrganizationId() string { + if x != nil && x.OrganizationId != nil { + return *x.OrganizationId + } + return "" +} + +func (x *Runner) GetIdentityId() string { + if x != nil { + return x.IdentityId + } + return "" +} + +func (x *Runner) GetStatus() RunnerStatus { + if x != nil { + return x.Status + } + return RunnerStatus_RUNNER_STATUS_UNSPECIFIED +} + +func (x *Runner) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Runner) GetOpenzitiServiceName() string { + if x != nil { + return x.OpenzitiServiceName + } + return "" +} + +func (x *Runner) GetCapabilities() []string { + if x != nil { + return x.Capabilities + } + return nil +} + +type RegisterRunnerRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + OrganizationId *string `protobuf:"bytes,2,opt,name=organization_id,json=organizationId,proto3,oneof" json:"organization_id,omitempty"` + Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Capabilities supported by this runner. Free-form strings (e.g., "privileged", "dind"). + Capabilities []string `protobuf:"bytes,4,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RegisterRunnerRequest) Reset() { + *x = RegisterRunnerRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RegisterRunnerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterRunnerRequest) ProtoMessage() {} + +func (x *RegisterRunnerRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 RegisterRunnerRequest.ProtoReflect.Descriptor instead. +func (*RegisterRunnerRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{3} +} + +func (x *RegisterRunnerRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RegisterRunnerRequest) GetOrganizationId() string { + if x != nil && x.OrganizationId != nil { + return *x.OrganizationId + } + return "" +} + +func (x *RegisterRunnerRequest) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *RegisterRunnerRequest) GetCapabilities() []string { + if x != nil { + return x.Capabilities + } + return nil +} + +type RegisterRunnerResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Runner *Runner `protobuf:"bytes,1,opt,name=runner,proto3" json:"runner,omitempty"` + ServiceToken string `protobuf:"bytes,2,opt,name=service_token,json=serviceToken,proto3" json:"service_token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RegisterRunnerResponse) Reset() { + *x = RegisterRunnerResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RegisterRunnerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterRunnerResponse) ProtoMessage() {} + +func (x *RegisterRunnerResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 RegisterRunnerResponse.ProtoReflect.Descriptor instead. +func (*RegisterRunnerResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{4} +} + +func (x *RegisterRunnerResponse) GetRunner() *Runner { + if x != nil { + return x.Runner + } + return nil +} + +func (x *RegisterRunnerResponse) GetServiceToken() string { + if x != nil { + return x.ServiceToken + } + return "" +} + +type GetRunnerRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetRunnerRequest) Reset() { + *x = GetRunnerRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetRunnerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRunnerRequest) ProtoMessage() {} + +func (x *GetRunnerRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 GetRunnerRequest.ProtoReflect.Descriptor instead. +func (*GetRunnerRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{5} +} + +func (x *GetRunnerRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type GetRunnerResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Runner *Runner `protobuf:"bytes,1,opt,name=runner,proto3" json:"runner,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetRunnerResponse) Reset() { + *x = GetRunnerResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetRunnerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRunnerResponse) ProtoMessage() {} + +func (x *GetRunnerResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 GetRunnerResponse.ProtoReflect.Descriptor instead. +func (*GetRunnerResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{6} +} + +func (x *GetRunnerResponse) GetRunner() *Runner { + if x != nil { + return x.Runner + } + return nil +} + +type ListRunnersRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + OrganizationId *string `protobuf:"bytes,3,opt,name=organization_id,json=organizationId,proto3,oneof" json:"organization_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListRunnersRequest) Reset() { + *x = ListRunnersRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRunnersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRunnersRequest) ProtoMessage() {} + +func (x *ListRunnersRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 ListRunnersRequest.ProtoReflect.Descriptor instead. +func (*ListRunnersRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{7} +} + +func (x *ListRunnersRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListRunnersRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListRunnersRequest) GetOrganizationId() string { + if x != nil && x.OrganizationId != nil { + return *x.OrganizationId + } + return "" +} + +type ListRunnersResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Runners []*Runner `protobuf:"bytes,1,rep,name=runners,proto3" json:"runners,omitempty"` + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListRunnersResponse) Reset() { + *x = ListRunnersResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRunnersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRunnersResponse) ProtoMessage() {} + +func (x *ListRunnersResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 ListRunnersResponse.ProtoReflect.Descriptor instead. +func (*ListRunnersResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{8} +} + +func (x *ListRunnersResponse) GetRunners() []*Runner { + if x != nil { + return x.Runners + } + return nil +} + +func (x *ListRunnersResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +type UpdateRunnerRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name *string `protobuf:"bytes,2,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Labels replace the existing map; omitted keys are removed. + Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Capabilities replace the existing list; an empty list clears all capabilities. + Capabilities []string `protobuf:"bytes,4,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateRunnerRequest) Reset() { + *x = UpdateRunnerRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateRunnerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateRunnerRequest) ProtoMessage() {} + +func (x *UpdateRunnerRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 UpdateRunnerRequest.ProtoReflect.Descriptor instead. +func (*UpdateRunnerRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{9} +} + +func (x *UpdateRunnerRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *UpdateRunnerRequest) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *UpdateRunnerRequest) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *UpdateRunnerRequest) GetCapabilities() []string { + if x != nil { + return x.Capabilities + } + return nil +} + +type UpdateRunnerResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Runner *Runner `protobuf:"bytes,1,opt,name=runner,proto3" json:"runner,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateRunnerResponse) Reset() { + *x = UpdateRunnerResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateRunnerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateRunnerResponse) ProtoMessage() {} + +func (x *UpdateRunnerResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 UpdateRunnerResponse.ProtoReflect.Descriptor instead. +func (*UpdateRunnerResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{10} +} + +func (x *UpdateRunnerResponse) GetRunner() *Runner { + if x != nil { + return x.Runner + } + return nil +} + +type DeleteRunnerRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteRunnerRequest) Reset() { + *x = DeleteRunnerRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteRunnerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteRunnerRequest) ProtoMessage() {} + +func (x *DeleteRunnerRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 DeleteRunnerRequest.ProtoReflect.Descriptor instead. +func (*DeleteRunnerRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{11} +} + +func (x *DeleteRunnerRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type DeleteRunnerResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteRunnerResponse) Reset() { + *x = DeleteRunnerResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteRunnerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteRunnerResponse) ProtoMessage() {} + +func (x *DeleteRunnerResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 DeleteRunnerResponse.ProtoReflect.Descriptor instead. +func (*DeleteRunnerResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{12} +} + +type ValidateServiceTokenRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + TokenHash string `protobuf:"bytes,1,opt,name=token_hash,json=tokenHash,proto3" json:"token_hash,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ValidateServiceTokenRequest) Reset() { + *x = ValidateServiceTokenRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ValidateServiceTokenRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidateServiceTokenRequest) ProtoMessage() {} + +func (x *ValidateServiceTokenRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 ValidateServiceTokenRequest.ProtoReflect.Descriptor instead. +func (*ValidateServiceTokenRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{13} +} + +func (x *ValidateServiceTokenRequest) GetTokenHash() string { + if x != nil { + return x.TokenHash + } + return "" +} + +type ValidateServiceTokenResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Runner *Runner `protobuf:"bytes,1,opt,name=runner,proto3" json:"runner,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ValidateServiceTokenResponse) Reset() { + *x = ValidateServiceTokenResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ValidateServiceTokenResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidateServiceTokenResponse) ProtoMessage() {} + +func (x *ValidateServiceTokenResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 ValidateServiceTokenResponse.ProtoReflect.Descriptor instead. +func (*ValidateServiceTokenResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{14} +} + +func (x *ValidateServiceTokenResponse) GetRunner() *Runner { + if x != nil { + return x.Runner + } + return nil +} + +type EnrollRunnerRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ServiceToken string `protobuf:"bytes,1,opt,name=service_token,json=serviceToken,proto3" json:"service_token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *EnrollRunnerRequest) Reset() { + *x = EnrollRunnerRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *EnrollRunnerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnrollRunnerRequest) ProtoMessage() {} + +func (x *EnrollRunnerRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 EnrollRunnerRequest.ProtoReflect.Descriptor instead. +func (*EnrollRunnerRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{15} +} + +func (x *EnrollRunnerRequest) GetServiceToken() string { + if x != nil { + return x.ServiceToken + } + return "" +} + +type EnrollRunnerResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + IdentityJson []byte `protobuf:"bytes,1,opt,name=identity_json,json=identityJson,proto3" json:"identity_json,omitempty"` + ServiceName string `protobuf:"bytes,2,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` + IdentityId string `protobuf:"bytes,3,opt,name=identity_id,json=identityId,proto3" json:"identity_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *EnrollRunnerResponse) Reset() { + *x = EnrollRunnerResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *EnrollRunnerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnrollRunnerResponse) ProtoMessage() {} + +func (x *EnrollRunnerResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 EnrollRunnerResponse.ProtoReflect.Descriptor instead. +func (*EnrollRunnerResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{16} +} + +func (x *EnrollRunnerResponse) GetIdentityJson() []byte { + if x != nil { + return x.IdentityJson + } + return nil +} + +func (x *EnrollRunnerResponse) GetServiceName() string { + if x != nil { + return x.ServiceName + } + return "" +} + +func (x *EnrollRunnerResponse) GetIdentityId() string { + if x != nil { + return x.IdentityId + } + return "" +} + +type Container struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Runtime-assigned identifier from the container runtime (audit only). + ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` + // Stable name unique within the workload, matches the Pod container name. + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Role ContainerRole `protobuf:"varint,3,opt,name=role,proto3,enum=agynio.api.runners.v1.ContainerRole" json:"role,omitempty"` + Image string `protobuf:"bytes,4,opt,name=image,proto3" json:"image,omitempty"` + Status ContainerStatus `protobuf:"varint,5,opt,name=status,proto3,enum=agynio.api.runners.v1.ContainerStatus" json:"status,omitempty"` + Reason *string `protobuf:"bytes,6,opt,name=reason,proto3,oneof" json:"reason,omitempty"` + Message *string `protobuf:"bytes,7,opt,name=message,proto3,oneof" json:"message,omitempty"` + ExitCode *int32 `protobuf:"varint,8,opt,name=exit_code,json=exitCode,proto3,oneof" json:"exit_code,omitempty"` + RestartCount int32 `protobuf:"varint,9,opt,name=restart_count,json=restartCount,proto3" json:"restart_count,omitempty"` + StartedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=started_at,json=startedAt,proto3,oneof" json:"started_at,omitempty"` + FinishedAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=finished_at,json=finishedAt,proto3,oneof" json:"finished_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Container) Reset() { + *x = Container{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Container) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Container) ProtoMessage() {} + +func (x *Container) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 Container.ProtoReflect.Descriptor instead. +func (*Container) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{17} +} + +func (x *Container) GetContainerId() string { + if x != nil { + return x.ContainerId + } + return "" +} + +func (x *Container) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Container) GetRole() ContainerRole { + if x != nil { + return x.Role + } + return ContainerRole_CONTAINER_ROLE_UNSPECIFIED +} + +func (x *Container) GetImage() string { + if x != nil { + return x.Image + } + return "" +} + +func (x *Container) GetStatus() ContainerStatus { + if x != nil { + return x.Status + } + return ContainerStatus_CONTAINER_STATUS_UNSPECIFIED +} + +func (x *Container) GetReason() string { + if x != nil && x.Reason != nil { + return *x.Reason + } + return "" +} + +func (x *Container) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +func (x *Container) GetExitCode() int32 { + if x != nil && x.ExitCode != nil { + return *x.ExitCode + } + return 0 +} + +func (x *Container) GetRestartCount() int32 { + if x != nil { + return x.RestartCount + } + return 0 +} + +func (x *Container) GetStartedAt() *timestamppb.Timestamp { + if x != nil { + return x.StartedAt + } + return nil +} + +func (x *Container) GetFinishedAt() *timestamppb.Timestamp { + if x != nil { + return x.FinishedAt + } + return nil +} + +type Workload struct { + state protoimpl.MessageState `protogen:"open.v1"` + Meta *EntityMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` + RunnerId string `protobuf:"bytes,2,opt,name=runner_id,json=runnerId,proto3" json:"runner_id,omitempty"` + ThreadId string `protobuf:"bytes,3,opt,name=thread_id,json=threadId,proto3" json:"thread_id,omitempty"` + AgentId string `protobuf:"bytes,4,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` + OrganizationId string `protobuf:"bytes,5,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + Status WorkloadStatus `protobuf:"varint,6,opt,name=status,proto3,enum=agynio.api.runners.v1.WorkloadStatus" json:"status,omitempty"` + Containers []*Container `protobuf:"bytes,7,rep,name=containers,proto3" json:"containers,omitempty"` + ZitiIdentityId string `protobuf:"bytes,8,opt,name=ziti_identity_id,json=zitiIdentityId,proto3" json:"ziti_identity_id,omitempty"` + InstanceId *string `protobuf:"bytes,9,opt,name=instance_id,json=instanceId,proto3,oneof" json:"instance_id,omitempty"` + LastActivityAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=last_activity_at,json=lastActivityAt,proto3" json:"last_activity_at,omitempty"` + LastMeteringSampledAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=last_metering_sampled_at,json=lastMeteringSampledAt,proto3,oneof" json:"last_metering_sampled_at,omitempty"` + RemovedAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=removed_at,json=removedAt,proto3,oneof" json:"removed_at,omitempty"` + AllocatedCpuMillicores int32 `protobuf:"varint,13,opt,name=allocated_cpu_millicores,json=allocatedCpuMillicores,proto3" json:"allocated_cpu_millicores,omitempty"` + AllocatedRamBytes int64 `protobuf:"varint,14,opt,name=allocated_ram_bytes,json=allocatedRamBytes,proto3" json:"allocated_ram_bytes,omitempty"` + // Machine-readable reason for failures when status is WORKLOAD_STATUS_FAILED. + // When status is not FAILED, this value may be unset or stale. + FailureReason *WorkloadFailureReason `protobuf:"varint,15,opt,name=failure_reason,json=failureReason,proto3,enum=agynio.api.runners.v1.WorkloadFailureReason,oneof" json:"failure_reason,omitempty"` + // Human-readable failure detail for failed workloads; not intended for + // programmatic parsing. When status is not FAILED, this value may be unset + // or stale. + FailureMessage *string `protobuf:"bytes,16,opt,name=failure_message,json=failureMessage,proto3,oneof" json:"failure_message,omitempty"` + // Denormalized display name for agent_id. + AgentName string `protobuf:"bytes,17,opt,name=agent_name,json=agentName,proto3" json:"agent_name,omitempty"` + // Denormalized display name for runner_id. + RunnerName string `protobuf:"bytes,18,opt,name=runner_name,json=runnerName,proto3" json:"runner_name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Workload) Reset() { + *x = Workload{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Workload) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Workload) ProtoMessage() {} + +func (x *Workload) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 Workload.ProtoReflect.Descriptor instead. +func (*Workload) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{18} +} + +func (x *Workload) GetMeta() *EntityMeta { + if x != nil { + return x.Meta + } + return nil +} + +func (x *Workload) GetRunnerId() string { + if x != nil { + return x.RunnerId + } + return "" +} + +func (x *Workload) GetThreadId() string { + if x != nil { + return x.ThreadId + } + return "" +} + +func (x *Workload) GetAgentId() string { + if x != nil { + return x.AgentId + } + return "" +} + +func (x *Workload) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +func (x *Workload) GetStatus() WorkloadStatus { + if x != nil { + return x.Status + } + return WorkloadStatus_WORKLOAD_STATUS_UNSPECIFIED +} + +func (x *Workload) GetContainers() []*Container { + if x != nil { + return x.Containers + } + return nil +} + +func (x *Workload) GetZitiIdentityId() string { + if x != nil { + return x.ZitiIdentityId + } + return "" +} + +func (x *Workload) GetInstanceId() string { + if x != nil && x.InstanceId != nil { + return *x.InstanceId + } + return "" +} + +func (x *Workload) GetLastActivityAt() *timestamppb.Timestamp { + if x != nil { + return x.LastActivityAt + } + return nil +} + +func (x *Workload) GetLastMeteringSampledAt() *timestamppb.Timestamp { + if x != nil { + return x.LastMeteringSampledAt + } + return nil +} + +func (x *Workload) GetRemovedAt() *timestamppb.Timestamp { + if x != nil { + return x.RemovedAt + } + return nil +} + +func (x *Workload) GetAllocatedCpuMillicores() int32 { + if x != nil { + return x.AllocatedCpuMillicores + } + return 0 +} + +func (x *Workload) GetAllocatedRamBytes() int64 { + if x != nil { + return x.AllocatedRamBytes + } + return 0 +} + +func (x *Workload) GetFailureReason() WorkloadFailureReason { + if x != nil && x.FailureReason != nil { + return *x.FailureReason + } + return WorkloadFailureReason_WORKLOAD_FAILURE_REASON_UNSPECIFIED +} + +func (x *Workload) GetFailureMessage() string { + if x != nil && x.FailureMessage != nil { + return *x.FailureMessage + } + return "" +} + +func (x *Workload) GetAgentName() string { + if x != nil { + return x.AgentName + } + return "" +} + +func (x *Workload) GetRunnerName() string { + if x != nil { + return x.RunnerName + } + return "" +} + +type CreateWorkloadRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + RunnerId string `protobuf:"bytes,2,opt,name=runner_id,json=runnerId,proto3" json:"runner_id,omitempty"` + ThreadId string `protobuf:"bytes,3,opt,name=thread_id,json=threadId,proto3" json:"thread_id,omitempty"` + AgentId string `protobuf:"bytes,4,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` + OrganizationId string `protobuf:"bytes,5,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + Status WorkloadStatus `protobuf:"varint,6,opt,name=status,proto3,enum=agynio.api.runners.v1.WorkloadStatus" json:"status,omitempty"` + Containers []*Container `protobuf:"bytes,7,rep,name=containers,proto3" json:"containers,omitempty"` + ZitiIdentityId string `protobuf:"bytes,8,opt,name=ziti_identity_id,json=zitiIdentityId,proto3" json:"ziti_identity_id,omitempty"` + AllocatedCpuMillicores int32 `protobuf:"varint,9,opt,name=allocated_cpu_millicores,json=allocatedCpuMillicores,proto3" json:"allocated_cpu_millicores,omitempty"` + AllocatedRamBytes int64 `protobuf:"varint,10,opt,name=allocated_ram_bytes,json=allocatedRamBytes,proto3" json:"allocated_ram_bytes,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreateWorkloadRequest) Reset() { + *x = CreateWorkloadRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateWorkloadRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateWorkloadRequest) ProtoMessage() {} + +func (x *CreateWorkloadRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 CreateWorkloadRequest.ProtoReflect.Descriptor instead. +func (*CreateWorkloadRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{19} +} + +func (x *CreateWorkloadRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *CreateWorkloadRequest) GetRunnerId() string { + if x != nil { + return x.RunnerId + } + return "" +} + +func (x *CreateWorkloadRequest) GetThreadId() string { + if x != nil { + return x.ThreadId + } + return "" +} + +func (x *CreateWorkloadRequest) GetAgentId() string { + if x != nil { + return x.AgentId + } + return "" +} + +func (x *CreateWorkloadRequest) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +func (x *CreateWorkloadRequest) GetStatus() WorkloadStatus { + if x != nil { + return x.Status + } + return WorkloadStatus_WORKLOAD_STATUS_UNSPECIFIED +} + +func (x *CreateWorkloadRequest) GetContainers() []*Container { + if x != nil { + return x.Containers + } + return nil +} + +func (x *CreateWorkloadRequest) GetZitiIdentityId() string { + if x != nil { + return x.ZitiIdentityId + } + return "" +} + +func (x *CreateWorkloadRequest) GetAllocatedCpuMillicores() int32 { + if x != nil { + return x.AllocatedCpuMillicores + } + return 0 +} + +func (x *CreateWorkloadRequest) GetAllocatedRamBytes() int64 { + if x != nil { + return x.AllocatedRamBytes + } + return 0 +} + +type CreateWorkloadResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Workload *Workload `protobuf:"bytes,1,opt,name=workload,proto3" json:"workload,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreateWorkloadResponse) Reset() { + *x = CreateWorkloadResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateWorkloadResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateWorkloadResponse) ProtoMessage() {} + +func (x *CreateWorkloadResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 CreateWorkloadResponse.ProtoReflect.Descriptor instead. +func (*CreateWorkloadResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{20} +} + +func (x *CreateWorkloadResponse) GetWorkload() *Workload { + if x != nil { + return x.Workload + } + return nil +} + +type UpdateWorkloadRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Status *WorkloadStatus `protobuf:"varint,2,opt,name=status,proto3,enum=agynio.api.runners.v1.WorkloadStatus,oneof" json:"status,omitempty"` + Containers []*Container `protobuf:"bytes,3,rep,name=containers,proto3" json:"containers,omitempty"` + InstanceId *string `protobuf:"bytes,4,opt,name=instance_id,json=instanceId,proto3,oneof" json:"instance_id,omitempty"` + RemovedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=removed_at,json=removedAt,proto3,oneof" json:"removed_at,omitempty"` + LastMeteringSampledAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=last_metering_sampled_at,json=lastMeteringSampledAt,proto3,oneof" json:"last_metering_sampled_at,omitempty"` + // Use this RPC to set or update failure details. + FailureReason *WorkloadFailureReason `protobuf:"varint,7,opt,name=failure_reason,json=failureReason,proto3,enum=agynio.api.runners.v1.WorkloadFailureReason,oneof" json:"failure_reason,omitempty"` + // Human-readable failure detail; not intended for programmatic parsing. + FailureMessage *string `protobuf:"bytes,8,opt,name=failure_message,json=failureMessage,proto3,oneof" json:"failure_message,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateWorkloadRequest) Reset() { + *x = UpdateWorkloadRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateWorkloadRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateWorkloadRequest) ProtoMessage() {} + +func (x *UpdateWorkloadRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 UpdateWorkloadRequest.ProtoReflect.Descriptor instead. +func (*UpdateWorkloadRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{21} +} + +func (x *UpdateWorkloadRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *UpdateWorkloadRequest) GetStatus() WorkloadStatus { + if x != nil && x.Status != nil { + return *x.Status + } + return WorkloadStatus_WORKLOAD_STATUS_UNSPECIFIED +} + +func (x *UpdateWorkloadRequest) GetContainers() []*Container { + if x != nil { + return x.Containers + } + return nil +} + +func (x *UpdateWorkloadRequest) GetInstanceId() string { + if x != nil && x.InstanceId != nil { + return *x.InstanceId + } + return "" +} + +func (x *UpdateWorkloadRequest) GetRemovedAt() *timestamppb.Timestamp { + if x != nil { + return x.RemovedAt + } + return nil +} + +func (x *UpdateWorkloadRequest) GetLastMeteringSampledAt() *timestamppb.Timestamp { + if x != nil { + return x.LastMeteringSampledAt + } + return nil +} + +func (x *UpdateWorkloadRequest) GetFailureReason() WorkloadFailureReason { + if x != nil && x.FailureReason != nil { + return *x.FailureReason + } + return WorkloadFailureReason_WORKLOAD_FAILURE_REASON_UNSPECIFIED +} + +func (x *UpdateWorkloadRequest) GetFailureMessage() string { + if x != nil && x.FailureMessage != nil { + return *x.FailureMessage + } + return "" +} + +type UpdateWorkloadResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Workload *Workload `protobuf:"bytes,1,opt,name=workload,proto3" json:"workload,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateWorkloadResponse) Reset() { + *x = UpdateWorkloadResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateWorkloadResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateWorkloadResponse) ProtoMessage() {} + +func (x *UpdateWorkloadResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 UpdateWorkloadResponse.ProtoReflect.Descriptor instead. +func (*UpdateWorkloadResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{22} +} + +func (x *UpdateWorkloadResponse) GetWorkload() *Workload { + if x != nil { + return x.Workload + } + return nil +} + +// Updates status and containers only. Use UpdateWorkload to set failure +// details such as failure_reason and failure_message. +type UpdateWorkloadStatusRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Status WorkloadStatus `protobuf:"varint,2,opt,name=status,proto3,enum=agynio.api.runners.v1.WorkloadStatus" json:"status,omitempty"` + Containers []*Container `protobuf:"bytes,3,rep,name=containers,proto3" json:"containers,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateWorkloadStatusRequest) Reset() { + *x = UpdateWorkloadStatusRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateWorkloadStatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateWorkloadStatusRequest) ProtoMessage() {} + +func (x *UpdateWorkloadStatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_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 UpdateWorkloadStatusRequest.ProtoReflect.Descriptor instead. +func (*UpdateWorkloadStatusRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{23} +} + +func (x *UpdateWorkloadStatusRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *UpdateWorkloadStatusRequest) GetStatus() WorkloadStatus { + if x != nil { + return x.Status + } + return WorkloadStatus_WORKLOAD_STATUS_UNSPECIFIED +} + +func (x *UpdateWorkloadStatusRequest) GetContainers() []*Container { + if x != nil { + return x.Containers + } + return nil +} + +type UpdateWorkloadStatusResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Workload *Workload `protobuf:"bytes,1,opt,name=workload,proto3" json:"workload,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateWorkloadStatusResponse) Reset() { + *x = UpdateWorkloadStatusResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateWorkloadStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateWorkloadStatusResponse) ProtoMessage() {} + +func (x *UpdateWorkloadStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[24] + 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 UpdateWorkloadStatusResponse.ProtoReflect.Descriptor instead. +func (*UpdateWorkloadStatusResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{24} +} + +func (x *UpdateWorkloadStatusResponse) GetWorkload() *Workload { + if x != nil { + return x.Workload + } + return nil +} + +type TouchWorkloadRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TouchWorkloadRequest) Reset() { + *x = TouchWorkloadRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TouchWorkloadRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TouchWorkloadRequest) ProtoMessage() {} + +func (x *TouchWorkloadRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[25] + 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 TouchWorkloadRequest.ProtoReflect.Descriptor instead. +func (*TouchWorkloadRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{25} +} + +func (x *TouchWorkloadRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type TouchWorkloadResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TouchWorkloadResponse) Reset() { + *x = TouchWorkloadResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TouchWorkloadResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TouchWorkloadResponse) ProtoMessage() {} + +func (x *TouchWorkloadResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[26] + 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 TouchWorkloadResponse.ProtoReflect.Descriptor instead. +func (*TouchWorkloadResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{26} +} + +type DeleteWorkloadRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteWorkloadRequest) Reset() { + *x = DeleteWorkloadRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteWorkloadRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteWorkloadRequest) ProtoMessage() {} + +func (x *DeleteWorkloadRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[27] + 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 DeleteWorkloadRequest.ProtoReflect.Descriptor instead. +func (*DeleteWorkloadRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{27} +} + +func (x *DeleteWorkloadRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type DeleteWorkloadResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteWorkloadResponse) Reset() { + *x = DeleteWorkloadResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteWorkloadResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteWorkloadResponse) ProtoMessage() {} + +func (x *DeleteWorkloadResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[28] + 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 DeleteWorkloadResponse.ProtoReflect.Descriptor instead. +func (*DeleteWorkloadResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{28} +} + +type GetWorkloadRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetWorkloadRequest) Reset() { + *x = GetWorkloadRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetWorkloadRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWorkloadRequest) ProtoMessage() {} + +func (x *GetWorkloadRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[29] + 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 GetWorkloadRequest.ProtoReflect.Descriptor instead. +func (*GetWorkloadRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{29} +} + +func (x *GetWorkloadRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type GetWorkloadResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Workload *Workload `protobuf:"bytes,1,opt,name=workload,proto3" json:"workload,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetWorkloadResponse) Reset() { + *x = GetWorkloadResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetWorkloadResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWorkloadResponse) ProtoMessage() {} + +func (x *GetWorkloadResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[30] + 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 GetWorkloadResponse.ProtoReflect.Descriptor instead. +func (*GetWorkloadResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{30} +} + +func (x *GetWorkloadResponse) GetWorkload() *Workload { + if x != nil { + return x.Workload + } + return nil +} + +type ListWorkloadsSort struct { + state protoimpl.MessageState `protogen:"open.v1"` + Field ListWorkloadsSortField `protobuf:"varint,1,opt,name=field,proto3,enum=agynio.api.runners.v1.ListWorkloadsSortField" json:"field,omitempty"` + Direction SortDirection `protobuf:"varint,2,opt,name=direction,proto3,enum=agynio.api.runners.v1.SortDirection" json:"direction,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListWorkloadsSort) Reset() { + *x = ListWorkloadsSort{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListWorkloadsSort) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWorkloadsSort) ProtoMessage() {} + +func (x *ListWorkloadsSort) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[31] + 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 ListWorkloadsSort.ProtoReflect.Descriptor instead. +func (*ListWorkloadsSort) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{31} +} + +func (x *ListWorkloadsSort) GetField() ListWorkloadsSortField { + if x != nil { + return x.Field + } + return ListWorkloadsSortField_LIST_WORKLOADS_SORT_FIELD_UNSPECIFIED +} + +func (x *ListWorkloadsSort) GetDirection() SortDirection { + if x != nil { + return x.Direction + } + return SortDirection_SORT_DIRECTION_UNSPECIFIED +} + +type ListWorkloadsFilter struct { + state protoimpl.MessageState `protogen:"open.v1"` + AgentIdIn []string `protobuf:"bytes,1,rep,name=agent_id_in,json=agentIdIn,proto3" json:"agent_id_in,omitempty"` + RunnerIdIn []string `protobuf:"bytes,2,rep,name=runner_id_in,json=runnerIdIn,proto3" json:"runner_id_in,omitempty"` + StatusIn []WorkloadStatus `protobuf:"varint,3,rep,packed,name=status_in,json=statusIn,proto3,enum=agynio.api.runners.v1.WorkloadStatus" json:"status_in,omitempty"` + StartedAfter *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=started_after,json=startedAfter,proto3,oneof" json:"started_after,omitempty"` + StartedBefore *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=started_before,json=startedBefore,proto3,oneof" json:"started_before,omitempty"` + PendingSample *bool `protobuf:"varint,6,opt,name=pending_sample,json=pendingSample,proto3,oneof" json:"pending_sample,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListWorkloadsFilter) Reset() { + *x = ListWorkloadsFilter{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListWorkloadsFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWorkloadsFilter) ProtoMessage() {} + +func (x *ListWorkloadsFilter) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[32] + 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 ListWorkloadsFilter.ProtoReflect.Descriptor instead. +func (*ListWorkloadsFilter) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{32} +} + +func (x *ListWorkloadsFilter) GetAgentIdIn() []string { + if x != nil { + return x.AgentIdIn + } + return nil +} + +func (x *ListWorkloadsFilter) GetRunnerIdIn() []string { + if x != nil { + return x.RunnerIdIn + } + return nil +} + +func (x *ListWorkloadsFilter) GetStatusIn() []WorkloadStatus { + if x != nil { + return x.StatusIn + } + return nil +} + +func (x *ListWorkloadsFilter) GetStartedAfter() *timestamppb.Timestamp { + if x != nil { + return x.StartedAfter + } + return nil +} + +func (x *ListWorkloadsFilter) GetStartedBefore() *timestamppb.Timestamp { + if x != nil { + return x.StartedBefore + } + return nil +} + +func (x *ListWorkloadsFilter) GetPendingSample() bool { + if x != nil && x.PendingSample != nil { + return *x.PendingSample + } + return false +} + +type ListWorkloadsByThreadRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ThreadId string `protobuf:"bytes,1,opt,name=thread_id,json=threadId,proto3" json:"thread_id,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + AgentId *string `protobuf:"bytes,4,opt,name=agent_id,json=agentId,proto3,oneof" json:"agent_id,omitempty"` + // Optional status filter. An empty list returns workloads for all statuses. + Statuses []WorkloadStatus `protobuf:"varint,5,rep,packed,name=statuses,proto3,enum=agynio.api.runners.v1.WorkloadStatus" json:"statuses,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListWorkloadsByThreadRequest) Reset() { + *x = ListWorkloadsByThreadRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListWorkloadsByThreadRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWorkloadsByThreadRequest) ProtoMessage() {} + +func (x *ListWorkloadsByThreadRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[33] + 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 ListWorkloadsByThreadRequest.ProtoReflect.Descriptor instead. +func (*ListWorkloadsByThreadRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{33} +} + +func (x *ListWorkloadsByThreadRequest) GetThreadId() string { + if x != nil { + return x.ThreadId + } + return "" +} + +func (x *ListWorkloadsByThreadRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListWorkloadsByThreadRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListWorkloadsByThreadRequest) GetAgentId() string { + if x != nil && x.AgentId != nil { + return *x.AgentId + } + return "" +} + +func (x *ListWorkloadsByThreadRequest) GetStatuses() []WorkloadStatus { + if x != nil { + return x.Statuses + } + return nil +} + +type ListWorkloadsByThreadResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Ordered by created_at DESC, id DESC for stable pagination. + Workloads []*Workload `protobuf:"bytes,1,rep,name=workloads,proto3" json:"workloads,omitempty"` + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListWorkloadsByThreadResponse) Reset() { + *x = ListWorkloadsByThreadResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListWorkloadsByThreadResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWorkloadsByThreadResponse) ProtoMessage() {} + +func (x *ListWorkloadsByThreadResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[34] + 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 ListWorkloadsByThreadResponse.ProtoReflect.Descriptor instead. +func (*ListWorkloadsByThreadResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{34} +} + +func (x *ListWorkloadsByThreadResponse) GetWorkloads() []*Workload { + if x != nil { + return x.Workloads + } + return nil +} + +func (x *ListWorkloadsByThreadResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +type ListWorkloadsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Opaque cursor; reuse only with the same sort and filter. + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Deprecated: use filter.status_in instead. + // + // Deprecated: Marked as deprecated in agynio/api/runners/v1/runners.proto. + Statuses []WorkloadStatus `protobuf:"varint,3,rep,packed,name=statuses,proto3,enum=agynio.api.runners.v1.WorkloadStatus" json:"statuses,omitempty"` + // Required organization scope; caller must hold can_view_workloads. + OrganizationId *string `protobuf:"bytes,4,opt,name=organization_id,json=organizationId,proto3,oneof" json:"organization_id,omitempty"` + // Deprecated: use filter.runner_id_in instead. + // + // Deprecated: Marked as deprecated in agynio/api/runners/v1/runners.proto. + RunnerId *string `protobuf:"bytes,5,opt,name=runner_id,json=runnerId,proto3,oneof" json:"runner_id,omitempty"` + // Deprecated: use filter.pending_sample instead. + // + // Deprecated: Marked as deprecated in agynio/api/runners/v1/runners.proto. + PendingSample *bool `protobuf:"varint,6,opt,name=pending_sample,json=pendingSample,proto3,oneof" json:"pending_sample,omitempty"` + Filter *ListWorkloadsFilter `protobuf:"bytes,7,opt,name=filter,proto3" json:"filter,omitempty"` + Sort *ListWorkloadsSort `protobuf:"bytes,8,opt,name=sort,proto3" json:"sort,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListWorkloadsRequest) Reset() { + *x = ListWorkloadsRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListWorkloadsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWorkloadsRequest) ProtoMessage() {} + +func (x *ListWorkloadsRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[35] + 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 ListWorkloadsRequest.ProtoReflect.Descriptor instead. +func (*ListWorkloadsRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{35} +} + +func (x *ListWorkloadsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListWorkloadsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// Deprecated: Marked as deprecated in agynio/api/runners/v1/runners.proto. +func (x *ListWorkloadsRequest) GetStatuses() []WorkloadStatus { + if x != nil { + return x.Statuses + } + return nil +} + +func (x *ListWorkloadsRequest) GetOrganizationId() string { + if x != nil && x.OrganizationId != nil { + return *x.OrganizationId + } + return "" +} + +// Deprecated: Marked as deprecated in agynio/api/runners/v1/runners.proto. +func (x *ListWorkloadsRequest) GetRunnerId() string { + if x != nil && x.RunnerId != nil { + return *x.RunnerId + } + return "" +} + +// Deprecated: Marked as deprecated in agynio/api/runners/v1/runners.proto. +func (x *ListWorkloadsRequest) GetPendingSample() bool { + if x != nil && x.PendingSample != nil { + return *x.PendingSample + } + return false +} + +func (x *ListWorkloadsRequest) GetFilter() *ListWorkloadsFilter { + if x != nil { + return x.Filter + } + return nil +} + +func (x *ListWorkloadsRequest) GetSort() *ListWorkloadsSort { + if x != nil { + return x.Sort + } + return nil +} + +type ListWorkloadsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Workloads []*Workload `protobuf:"bytes,1,rep,name=workloads,proto3" json:"workloads,omitempty"` + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListWorkloadsResponse) Reset() { + *x = ListWorkloadsResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListWorkloadsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWorkloadsResponse) ProtoMessage() {} + +func (x *ListWorkloadsResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[36] + 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 ListWorkloadsResponse.ProtoReflect.Descriptor instead. +func (*ListWorkloadsResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{36} +} + +func (x *ListWorkloadsResponse) GetWorkloads() []*Workload { + if x != nil { + return x.Workloads + } + return nil +} + +func (x *ListWorkloadsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +type BatchUpdateWorkloadSampledAtRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Entries []*SampledAtEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BatchUpdateWorkloadSampledAtRequest) Reset() { + *x = BatchUpdateWorkloadSampledAtRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BatchUpdateWorkloadSampledAtRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchUpdateWorkloadSampledAtRequest) ProtoMessage() {} + +func (x *BatchUpdateWorkloadSampledAtRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[37] + 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 BatchUpdateWorkloadSampledAtRequest.ProtoReflect.Descriptor instead. +func (*BatchUpdateWorkloadSampledAtRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{37} +} + +func (x *BatchUpdateWorkloadSampledAtRequest) GetEntries() []*SampledAtEntry { + if x != nil { + return x.Entries + } + return nil +} + +type BatchUpdateWorkloadSampledAtResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BatchUpdateWorkloadSampledAtResponse) Reset() { + *x = BatchUpdateWorkloadSampledAtResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BatchUpdateWorkloadSampledAtResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchUpdateWorkloadSampledAtResponse) ProtoMessage() {} + +func (x *BatchUpdateWorkloadSampledAtResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[38] + 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 BatchUpdateWorkloadSampledAtResponse.ProtoReflect.Descriptor instead. +func (*BatchUpdateWorkloadSampledAtResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{38} +} + +type Volume struct { + state protoimpl.MessageState `protogen:"open.v1"` + Meta *EntityMeta `protobuf:"bytes,1,opt,name=meta,proto3" json:"meta,omitempty"` + InstanceId *string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3,oneof" json:"instance_id,omitempty"` + VolumeId string `protobuf:"bytes,3,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + ThreadId string `protobuf:"bytes,4,opt,name=thread_id,json=threadId,proto3" json:"thread_id,omitempty"` + RunnerId string `protobuf:"bytes,5,opt,name=runner_id,json=runnerId,proto3" json:"runner_id,omitempty"` + AgentId string `protobuf:"bytes,6,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` + OrganizationId string `protobuf:"bytes,7,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + SizeGb string `protobuf:"bytes,8,opt,name=size_gb,json=sizeGb,proto3" json:"size_gb,omitempty"` + Status VolumeStatus `protobuf:"varint,9,opt,name=status,proto3,enum=agynio.api.runners.v1.VolumeStatus" json:"status,omitempty"` + RemovedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=removed_at,json=removedAt,proto3,oneof" json:"removed_at,omitempty"` + LastMeteringSampledAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=last_metering_sampled_at,json=lastMeteringSampledAt,proto3,oneof" json:"last_metering_sampled_at,omitempty"` + // Denormalized display name for volume_id. + VolumeName string `protobuf:"bytes,12,opt,name=volume_name,json=volumeName,proto3" json:"volume_name,omitempty"` + // Current attachments for this volume; empty when unattached. + Attachments []*Attachment `protobuf:"bytes,13,rep,name=attachments,proto3" json:"attachments,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Volume) Reset() { + *x = Volume{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Volume) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Volume) ProtoMessage() {} + +func (x *Volume) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[39] + 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 Volume.ProtoReflect.Descriptor instead. +func (*Volume) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{39} +} + +func (x *Volume) GetMeta() *EntityMeta { + if x != nil { + return x.Meta + } + return nil +} + +func (x *Volume) GetInstanceId() string { + if x != nil && x.InstanceId != nil { + return *x.InstanceId + } + return "" +} + +func (x *Volume) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +func (x *Volume) GetThreadId() string { + if x != nil { + return x.ThreadId + } + return "" +} + +func (x *Volume) GetRunnerId() string { + if x != nil { + return x.RunnerId + } + return "" +} + +func (x *Volume) GetAgentId() string { + if x != nil { + return x.AgentId + } + return "" +} + +func (x *Volume) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +func (x *Volume) GetSizeGb() string { + if x != nil { + return x.SizeGb + } + return "" +} + +func (x *Volume) GetStatus() VolumeStatus { + if x != nil { + return x.Status + } + return VolumeStatus_VOLUME_STATUS_UNSPECIFIED +} + +func (x *Volume) GetRemovedAt() *timestamppb.Timestamp { + if x != nil { + return x.RemovedAt + } + return nil +} + +func (x *Volume) GetLastMeteringSampledAt() *timestamppb.Timestamp { + if x != nil { + return x.LastMeteringSampledAt + } + return nil +} + +func (x *Volume) GetVolumeName() string { + if x != nil { + return x.VolumeName + } + return "" +} + +func (x *Volume) GetAttachments() []*Attachment { + if x != nil { + return x.Attachments + } + return nil +} + +type Attachment struct { + state protoimpl.MessageState `protogen:"open.v1"` + Kind AttachmentKind `protobuf:"varint,1,opt,name=kind,proto3,enum=agynio.api.runners.v1.AttachmentKind" json:"kind,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Attachment) Reset() { + *x = Attachment{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Attachment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Attachment) ProtoMessage() {} + +func (x *Attachment) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[40] + 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 Attachment.ProtoReflect.Descriptor instead. +func (*Attachment) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{40} +} + +func (x *Attachment) GetKind() AttachmentKind { + if x != nil { + return x.Kind + } + return AttachmentKind_ATTACHMENT_KIND_UNSPECIFIED +} + +func (x *Attachment) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Attachment) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type CreateVolumeRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + ThreadId string `protobuf:"bytes,3,opt,name=thread_id,json=threadId,proto3" json:"thread_id,omitempty"` + RunnerId string `protobuf:"bytes,4,opt,name=runner_id,json=runnerId,proto3" json:"runner_id,omitempty"` + AgentId string `protobuf:"bytes,5,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` + OrganizationId string `protobuf:"bytes,6,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + SizeGb string `protobuf:"bytes,7,opt,name=size_gb,json=sizeGb,proto3" json:"size_gb,omitempty"` + Status VolumeStatus `protobuf:"varint,8,opt,name=status,proto3,enum=agynio.api.runners.v1.VolumeStatus" json:"status,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreateVolumeRequest) Reset() { + *x = CreateVolumeRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateVolumeRequest) ProtoMessage() {} + +func (x *CreateVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[41] + 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 CreateVolumeRequest.ProtoReflect.Descriptor instead. +func (*CreateVolumeRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{41} +} + +func (x *CreateVolumeRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *CreateVolumeRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +func (x *CreateVolumeRequest) GetThreadId() string { + if x != nil { + return x.ThreadId + } + return "" +} + +func (x *CreateVolumeRequest) GetRunnerId() string { + if x != nil { + return x.RunnerId + } + return "" +} + +func (x *CreateVolumeRequest) GetAgentId() string { + if x != nil { + return x.AgentId + } + return "" +} + +func (x *CreateVolumeRequest) GetOrganizationId() string { + if x != nil { + return x.OrganizationId + } + return "" +} + +func (x *CreateVolumeRequest) GetSizeGb() string { + if x != nil { + return x.SizeGb + } + return "" +} + +func (x *CreateVolumeRequest) GetStatus() VolumeStatus { + if x != nil { + return x.Status + } + return VolumeStatus_VOLUME_STATUS_UNSPECIFIED +} + +type CreateVolumeResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Volume *Volume `protobuf:"bytes,1,opt,name=volume,proto3" json:"volume,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CreateVolumeResponse) Reset() { + *x = CreateVolumeResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateVolumeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateVolumeResponse) ProtoMessage() {} + +func (x *CreateVolumeResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[42] + 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 CreateVolumeResponse.ProtoReflect.Descriptor instead. +func (*CreateVolumeResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{42} +} + +func (x *CreateVolumeResponse) GetVolume() *Volume { + if x != nil { + return x.Volume + } + return nil +} + +type UpdateVolumeRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Status *VolumeStatus `protobuf:"varint,2,opt,name=status,proto3,enum=agynio.api.runners.v1.VolumeStatus,oneof" json:"status,omitempty"` + InstanceId *string `protobuf:"bytes,3,opt,name=instance_id,json=instanceId,proto3,oneof" json:"instance_id,omitempty"` + RemovedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=removed_at,json=removedAt,proto3,oneof" json:"removed_at,omitempty"` + LastMeteringSampledAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=last_metering_sampled_at,json=lastMeteringSampledAt,proto3,oneof" json:"last_metering_sampled_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateVolumeRequest) Reset() { + *x = UpdateVolumeRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateVolumeRequest) ProtoMessage() {} + +func (x *UpdateVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[43] + 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 UpdateVolumeRequest.ProtoReflect.Descriptor instead. +func (*UpdateVolumeRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{43} +} + +func (x *UpdateVolumeRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *UpdateVolumeRequest) GetStatus() VolumeStatus { + if x != nil && x.Status != nil { + return *x.Status + } + return VolumeStatus_VOLUME_STATUS_UNSPECIFIED +} + +func (x *UpdateVolumeRequest) GetInstanceId() string { + if x != nil && x.InstanceId != nil { + return *x.InstanceId + } + return "" +} + +func (x *UpdateVolumeRequest) GetRemovedAt() *timestamppb.Timestamp { + if x != nil { + return x.RemovedAt + } + return nil +} + +func (x *UpdateVolumeRequest) GetLastMeteringSampledAt() *timestamppb.Timestamp { + if x != nil { + return x.LastMeteringSampledAt + } + return nil +} + +type UpdateVolumeResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Volume *Volume `protobuf:"bytes,1,opt,name=volume,proto3" json:"volume,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateVolumeResponse) Reset() { + *x = UpdateVolumeResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateVolumeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateVolumeResponse) ProtoMessage() {} + +func (x *UpdateVolumeResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[44] + 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 UpdateVolumeResponse.ProtoReflect.Descriptor instead. +func (*UpdateVolumeResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{44} +} + +func (x *UpdateVolumeResponse) GetVolume() *Volume { + if x != nil { + return x.Volume + } + return nil +} + +type GetVolumeRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetVolumeRequest) Reset() { + *x = GetVolumeRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVolumeRequest) ProtoMessage() {} + +func (x *GetVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[45] + 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 GetVolumeRequest.ProtoReflect.Descriptor instead. +func (*GetVolumeRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{45} +} + +func (x *GetVolumeRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type GetVolumeResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Volume *Volume `protobuf:"bytes,1,opt,name=volume,proto3" json:"volume,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetVolumeResponse) Reset() { + *x = GetVolumeResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetVolumeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVolumeResponse) ProtoMessage() {} + +func (x *GetVolumeResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[46] + 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 GetVolumeResponse.ProtoReflect.Descriptor instead. +func (*GetVolumeResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{46} +} + +func (x *GetVolumeResponse) GetVolume() *Volume { + if x != nil { + return x.Volume + } + return nil +} + +type ListVolumesSort struct { + state protoimpl.MessageState `protogen:"open.v1"` + Field ListVolumesSortField `protobuf:"varint,1,opt,name=field,proto3,enum=agynio.api.runners.v1.ListVolumesSortField" json:"field,omitempty"` + Direction SortDirection `protobuf:"varint,2,opt,name=direction,proto3,enum=agynio.api.runners.v1.SortDirection" json:"direction,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListVolumesSort) Reset() { + *x = ListVolumesSort{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListVolumesSort) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListVolumesSort) ProtoMessage() {} + +func (x *ListVolumesSort) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[47] + 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 ListVolumesSort.ProtoReflect.Descriptor instead. +func (*ListVolumesSort) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{47} +} + +func (x *ListVolumesSort) GetField() ListVolumesSortField { + if x != nil { + return x.Field + } + return ListVolumesSortField_LIST_VOLUMES_SORT_FIELD_UNSPECIFIED +} + +func (x *ListVolumesSort) GetDirection() SortDirection { + if x != nil { + return x.Direction + } + return SortDirection_SORT_DIRECTION_UNSPECIFIED +} + +type ListVolumesFilter struct { + state protoimpl.MessageState `protogen:"open.v1"` + StatusIn []VolumeStatus `protobuf:"varint,1,rep,packed,name=status_in,json=statusIn,proto3,enum=agynio.api.runners.v1.VolumeStatus" json:"status_in,omitempty"` + RunnerIdIn []string `protobuf:"bytes,2,rep,name=runner_id_in,json=runnerIdIn,proto3" json:"runner_id_in,omitempty"` + AttachedToKindIn []VolumeAttachmentFilterKind `protobuf:"varint,3,rep,packed,name=attached_to_kind_in,json=attachedToKindIn,proto3,enum=agynio.api.runners.v1.VolumeAttachmentFilterKind" json:"attached_to_kind_in,omitempty"` + PendingSample *bool `protobuf:"varint,4,opt,name=pending_sample,json=pendingSample,proto3,oneof" json:"pending_sample,omitempty"` + VolumeNameSubstring *string `protobuf:"bytes,5,opt,name=volume_name_substring,json=volumeNameSubstring,proto3,oneof" json:"volume_name_substring,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListVolumesFilter) Reset() { + *x = ListVolumesFilter{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListVolumesFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListVolumesFilter) ProtoMessage() {} + +func (x *ListVolumesFilter) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[48] + 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 ListVolumesFilter.ProtoReflect.Descriptor instead. +func (*ListVolumesFilter) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{48} +} + +func (x *ListVolumesFilter) GetStatusIn() []VolumeStatus { + if x != nil { + return x.StatusIn + } + return nil +} + +func (x *ListVolumesFilter) GetRunnerIdIn() []string { + if x != nil { + return x.RunnerIdIn + } + return nil +} + +func (x *ListVolumesFilter) GetAttachedToKindIn() []VolumeAttachmentFilterKind { + if x != nil { + return x.AttachedToKindIn + } + return nil +} + +func (x *ListVolumesFilter) GetPendingSample() bool { + if x != nil && x.PendingSample != nil { + return *x.PendingSample + } + return false +} + +func (x *ListVolumesFilter) GetVolumeNameSubstring() string { + if x != nil && x.VolumeNameSubstring != nil { + return *x.VolumeNameSubstring + } + return "" +} + +type ListVolumesRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Opaque cursor; reuse only with the same sort and filter. + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Deprecated: use filter.status_in instead. + // + // Deprecated: Marked as deprecated in agynio/api/runners/v1/runners.proto. + Statuses []VolumeStatus `protobuf:"varint,3,rep,packed,name=statuses,proto3,enum=agynio.api.runners.v1.VolumeStatus" json:"statuses,omitempty"` + // Required organization scope; caller must hold can_view_volumes. + OrganizationId *string `protobuf:"bytes,4,opt,name=organization_id,json=organizationId,proto3,oneof" json:"organization_id,omitempty"` + // Deprecated: use filter.runner_id_in instead. + // + // Deprecated: Marked as deprecated in agynio/api/runners/v1/runners.proto. + RunnerId *string `protobuf:"bytes,5,opt,name=runner_id,json=runnerId,proto3,oneof" json:"runner_id,omitempty"` + // Deprecated: use filter.pending_sample instead. + // + // Deprecated: Marked as deprecated in agynio/api/runners/v1/runners.proto. + PendingSample *bool `protobuf:"varint,6,opt,name=pending_sample,json=pendingSample,proto3,oneof" json:"pending_sample,omitempty"` + Filter *ListVolumesFilter `protobuf:"bytes,7,opt,name=filter,proto3" json:"filter,omitempty"` + Sort *ListVolumesSort `protobuf:"bytes,8,opt,name=sort,proto3" json:"sort,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListVolumesRequest) Reset() { + *x = ListVolumesRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListVolumesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListVolumesRequest) ProtoMessage() {} + +func (x *ListVolumesRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[49] + 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 ListVolumesRequest.ProtoReflect.Descriptor instead. +func (*ListVolumesRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{49} +} + +func (x *ListVolumesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListVolumesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// Deprecated: Marked as deprecated in agynio/api/runners/v1/runners.proto. +func (x *ListVolumesRequest) GetStatuses() []VolumeStatus { + if x != nil { + return x.Statuses + } + return nil +} + +func (x *ListVolumesRequest) GetOrganizationId() string { + if x != nil && x.OrganizationId != nil { + return *x.OrganizationId + } + return "" +} + +// Deprecated: Marked as deprecated in agynio/api/runners/v1/runners.proto. +func (x *ListVolumesRequest) GetRunnerId() string { + if x != nil && x.RunnerId != nil { + return *x.RunnerId + } + return "" +} + +// Deprecated: Marked as deprecated in agynio/api/runners/v1/runners.proto. +func (x *ListVolumesRequest) GetPendingSample() bool { + if x != nil && x.PendingSample != nil { + return *x.PendingSample + } + return false +} + +func (x *ListVolumesRequest) GetFilter() *ListVolumesFilter { + if x != nil { + return x.Filter + } + return nil +} + +func (x *ListVolumesRequest) GetSort() *ListVolumesSort { + if x != nil { + return x.Sort + } + return nil +} + +type ListVolumesResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Volumes []*Volume `protobuf:"bytes,1,rep,name=volumes,proto3" json:"volumes,omitempty"` + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListVolumesResponse) Reset() { + *x = ListVolumesResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListVolumesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListVolumesResponse) ProtoMessage() {} + +func (x *ListVolumesResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[50] + 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 ListVolumesResponse.ProtoReflect.Descriptor instead. +func (*ListVolumesResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{50} +} + +func (x *ListVolumesResponse) GetVolumes() []*Volume { + if x != nil { + return x.Volumes + } + return nil +} + +func (x *ListVolumesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +type ListVolumesByThreadRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ThreadId string `protobuf:"bytes,1,opt,name=thread_id,json=threadId,proto3" json:"thread_id,omitempty"` + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListVolumesByThreadRequest) Reset() { + *x = ListVolumesByThreadRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListVolumesByThreadRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListVolumesByThreadRequest) ProtoMessage() {} + +func (x *ListVolumesByThreadRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[51] + 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 ListVolumesByThreadRequest.ProtoReflect.Descriptor instead. +func (*ListVolumesByThreadRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{51} +} + +func (x *ListVolumesByThreadRequest) GetThreadId() string { + if x != nil { + return x.ThreadId + } + return "" +} + +func (x *ListVolumesByThreadRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListVolumesByThreadRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +type ListVolumesByThreadResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Volumes []*Volume `protobuf:"bytes,1,rep,name=volumes,proto3" json:"volumes,omitempty"` + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListVolumesByThreadResponse) Reset() { + *x = ListVolumesByThreadResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListVolumesByThreadResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListVolumesByThreadResponse) ProtoMessage() {} + +func (x *ListVolumesByThreadResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[52] + 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 ListVolumesByThreadResponse.ProtoReflect.Descriptor instead. +func (*ListVolumesByThreadResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{52} +} + +func (x *ListVolumesByThreadResponse) GetVolumes() []*Volume { + if x != nil { + return x.Volumes + } + return nil +} + +func (x *ListVolumesByThreadResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +type BatchUpdateVolumeSampledAtRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Entries []*SampledAtEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BatchUpdateVolumeSampledAtRequest) Reset() { + *x = BatchUpdateVolumeSampledAtRequest{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BatchUpdateVolumeSampledAtRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchUpdateVolumeSampledAtRequest) ProtoMessage() {} + +func (x *BatchUpdateVolumeSampledAtRequest) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[53] + 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 BatchUpdateVolumeSampledAtRequest.ProtoReflect.Descriptor instead. +func (*BatchUpdateVolumeSampledAtRequest) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{53} +} + +func (x *BatchUpdateVolumeSampledAtRequest) GetEntries() []*SampledAtEntry { + if x != nil { + return x.Entries + } + return nil +} + +type BatchUpdateVolumeSampledAtResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BatchUpdateVolumeSampledAtResponse) Reset() { + *x = BatchUpdateVolumeSampledAtResponse{} + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BatchUpdateVolumeSampledAtResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchUpdateVolumeSampledAtResponse) ProtoMessage() {} + +func (x *BatchUpdateVolumeSampledAtResponse) ProtoReflect() protoreflect.Message { + mi := &file_agynio_api_runners_v1_runners_proto_msgTypes[54] + 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 BatchUpdateVolumeSampledAtResponse.ProtoReflect.Descriptor instead. +func (*BatchUpdateVolumeSampledAtResponse) Descriptor() ([]byte, []int) { + return file_agynio_api_runners_v1_runners_proto_rawDescGZIP(), []int{54} +} + +var File_agynio_api_runners_v1_runners_proto protoreflect.FileDescriptor + +const file_agynio_api_runners_v1_runners_proto_rawDesc = "" + + "\n" + + "#agynio/api/runners/v1/runners.proto\x12\x15agynio.api.runners.v1\x1a!agynio/api/runner/v1/runner.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x92\x01\n" + + "\n" + + "EntityMeta\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\"[\n" + + "\x0eSampledAtEntry\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x129\n" + + "\n" + + "sampled_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\tsampledAt\"\xc9\x03\n" + + "\x06Runner\x125\n" + + "\x04meta\x18\x01 \x01(\v2!.agynio.api.runners.v1.EntityMetaR\x04meta\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x12,\n" + + "\x0forganization_id\x18\x03 \x01(\tH\x00R\x0eorganizationId\x88\x01\x01\x12\x1f\n" + + "\videntity_id\x18\x04 \x01(\tR\n" + + "identityId\x12;\n" + + "\x06status\x18\x05 \x01(\x0e2#.agynio.api.runners.v1.RunnerStatusR\x06status\x12A\n" + + "\x06labels\x18\x06 \x03(\v2).agynio.api.runners.v1.Runner.LabelsEntryR\x06labels\x122\n" + + "\x15openziti_service_name\x18\a \x01(\tR\x13openzitiServiceName\x12\"\n" + + "\fcapabilities\x18\b \x03(\tR\fcapabilities\x1a9\n" + + "\vLabelsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B\x12\n" + + "\x10_organization_id\"\x9e\x02\n" + + "\x15RegisterRunnerRequest\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12,\n" + + "\x0forganization_id\x18\x02 \x01(\tH\x00R\x0eorganizationId\x88\x01\x01\x12P\n" + + "\x06labels\x18\x03 \x03(\v28.agynio.api.runners.v1.RegisterRunnerRequest.LabelsEntryR\x06labels\x12\"\n" + + "\fcapabilities\x18\x04 \x03(\tR\fcapabilities\x1a9\n" + + "\vLabelsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B\x12\n" + + "\x10_organization_id\"t\n" + + "\x16RegisterRunnerResponse\x125\n" + + "\x06runner\x18\x01 \x01(\v2\x1d.agynio.api.runners.v1.RunnerR\x06runner\x12#\n" + + "\rservice_token\x18\x02 \x01(\tR\fserviceToken\"\"\n" + + "\x10GetRunnerRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"J\n" + + "\x11GetRunnerResponse\x125\n" + + "\x06runner\x18\x01 \x01(\v2\x1d.agynio.api.runners.v1.RunnerR\x06runner\"\x92\x01\n" + + "\x12ListRunnersRequest\x12\x1b\n" + + "\tpage_size\x18\x01 \x01(\x05R\bpageSize\x12\x1d\n" + + "\n" + + "page_token\x18\x02 \x01(\tR\tpageToken\x12,\n" + + "\x0forganization_id\x18\x03 \x01(\tH\x00R\x0eorganizationId\x88\x01\x01B\x12\n" + + "\x10_organization_id\"v\n" + + "\x13ListRunnersResponse\x127\n" + + "\arunners\x18\x01 \x03(\v2\x1d.agynio.api.runners.v1.RunnerR\arunners\x12&\n" + + "\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xf6\x01\n" + + "\x13UpdateRunnerRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x17\n" + + "\x04name\x18\x02 \x01(\tH\x00R\x04name\x88\x01\x01\x12N\n" + + "\x06labels\x18\x03 \x03(\v26.agynio.api.runners.v1.UpdateRunnerRequest.LabelsEntryR\x06labels\x12\"\n" + + "\fcapabilities\x18\x04 \x03(\tR\fcapabilities\x1a9\n" + + "\vLabelsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B\a\n" + + "\x05_name\"M\n" + + "\x14UpdateRunnerResponse\x125\n" + + "\x06runner\x18\x01 \x01(\v2\x1d.agynio.api.runners.v1.RunnerR\x06runner\"%\n" + + "\x13DeleteRunnerRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"\x16\n" + + "\x14DeleteRunnerResponse\"<\n" + + "\x1bValidateServiceTokenRequest\x12\x1d\n" + + "\n" + + "token_hash\x18\x01 \x01(\tR\ttokenHash\"U\n" + + "\x1cValidateServiceTokenResponse\x125\n" + + "\x06runner\x18\x01 \x01(\v2\x1d.agynio.api.runners.v1.RunnerR\x06runner\":\n" + + "\x13EnrollRunnerRequest\x12#\n" + + "\rservice_token\x18\x01 \x01(\tR\fserviceToken\"\x7f\n" + + "\x14EnrollRunnerResponse\x12#\n" + + "\ridentity_json\x18\x01 \x01(\fR\fidentityJson\x12!\n" + + "\fservice_name\x18\x02 \x01(\tR\vserviceName\x12\x1f\n" + + "\videntity_id\x18\x03 \x01(\tR\n" + + "identityId\"\x9b\x04\n" + + "\tContainer\x12!\n" + + "\fcontainer_id\x18\x01 \x01(\tR\vcontainerId\x12\x12\n" + + "\x04name\x18\x02 \x01(\tR\x04name\x128\n" + + "\x04role\x18\x03 \x01(\x0e2$.agynio.api.runners.v1.ContainerRoleR\x04role\x12\x14\n" + + "\x05image\x18\x04 \x01(\tR\x05image\x12>\n" + + "\x06status\x18\x05 \x01(\x0e2&.agynio.api.runners.v1.ContainerStatusR\x06status\x12\x1b\n" + + "\x06reason\x18\x06 \x01(\tH\x00R\x06reason\x88\x01\x01\x12\x1d\n" + + "\amessage\x18\a \x01(\tH\x01R\amessage\x88\x01\x01\x12 \n" + + "\texit_code\x18\b \x01(\x05H\x02R\bexitCode\x88\x01\x01\x12#\n" + + "\rrestart_count\x18\t \x01(\x05R\frestartCount\x12>\n" + + "\n" + + "started_at\x18\n" + + " \x01(\v2\x1a.google.protobuf.TimestampH\x03R\tstartedAt\x88\x01\x01\x12@\n" + + "\vfinished_at\x18\v \x01(\v2\x1a.google.protobuf.TimestampH\x04R\n" + + "finishedAt\x88\x01\x01B\t\n" + + "\a_reasonB\n" + + "\n" + + "\b_messageB\f\n" + + "\n" + + "_exit_codeB\r\n" + + "\v_started_atB\x0e\n" + + "\f_finished_at\"\x85\b\n" + + "\bWorkload\x125\n" + + "\x04meta\x18\x01 \x01(\v2!.agynio.api.runners.v1.EntityMetaR\x04meta\x12\x1b\n" + + "\trunner_id\x18\x02 \x01(\tR\brunnerId\x12\x1b\n" + + "\tthread_id\x18\x03 \x01(\tR\bthreadId\x12\x19\n" + + "\bagent_id\x18\x04 \x01(\tR\aagentId\x12'\n" + + "\x0forganization_id\x18\x05 \x01(\tR\x0eorganizationId\x12=\n" + + "\x06status\x18\x06 \x01(\x0e2%.agynio.api.runners.v1.WorkloadStatusR\x06status\x12@\n" + + "\n" + + "containers\x18\a \x03(\v2 .agynio.api.runners.v1.ContainerR\n" + + "containers\x12(\n" + + "\x10ziti_identity_id\x18\b \x01(\tR\x0ezitiIdentityId\x12$\n" + + "\vinstance_id\x18\t \x01(\tH\x00R\n" + + "instanceId\x88\x01\x01\x12D\n" + + "\x10last_activity_at\x18\n" + + " \x01(\v2\x1a.google.protobuf.TimestampR\x0elastActivityAt\x12X\n" + + "\x18last_metering_sampled_at\x18\v \x01(\v2\x1a.google.protobuf.TimestampH\x01R\x15lastMeteringSampledAt\x88\x01\x01\x12>\n" + + "\n" + + "removed_at\x18\f \x01(\v2\x1a.google.protobuf.TimestampH\x02R\tremovedAt\x88\x01\x01\x128\n" + + "\x18allocated_cpu_millicores\x18\r \x01(\x05R\x16allocatedCpuMillicores\x12.\n" + + "\x13allocated_ram_bytes\x18\x0e \x01(\x03R\x11allocatedRamBytes\x12X\n" + + "\x0efailure_reason\x18\x0f \x01(\x0e2,.agynio.api.runners.v1.WorkloadFailureReasonH\x03R\rfailureReason\x88\x01\x01\x12,\n" + + "\x0ffailure_message\x18\x10 \x01(\tH\x04R\x0efailureMessage\x88\x01\x01\x12\x1d\n" + + "\n" + + "agent_name\x18\x11 \x01(\tR\tagentName\x12\x1f\n" + + "\vrunner_name\x18\x12 \x01(\tR\n" + + "runnerNameB\x0e\n" + + "\f_instance_idB\x1b\n" + + "\x19_last_metering_sampled_atB\r\n" + + "\v_removed_atB\x11\n" + + "\x0f_failure_reasonB\x12\n" + + "\x10_failure_message\"\xba\x03\n" + + "\x15CreateWorkloadRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x1b\n" + + "\trunner_id\x18\x02 \x01(\tR\brunnerId\x12\x1b\n" + + "\tthread_id\x18\x03 \x01(\tR\bthreadId\x12\x19\n" + + "\bagent_id\x18\x04 \x01(\tR\aagentId\x12'\n" + + "\x0forganization_id\x18\x05 \x01(\tR\x0eorganizationId\x12=\n" + + "\x06status\x18\x06 \x01(\x0e2%.agynio.api.runners.v1.WorkloadStatusR\x06status\x12@\n" + + "\n" + + "containers\x18\a \x03(\v2 .agynio.api.runners.v1.ContainerR\n" + + "containers\x12(\n" + + "\x10ziti_identity_id\x18\b \x01(\tR\x0ezitiIdentityId\x128\n" + + "\x18allocated_cpu_millicores\x18\t \x01(\x05R\x16allocatedCpuMillicores\x12.\n" + + "\x13allocated_ram_bytes\x18\n" + + " \x01(\x03R\x11allocatedRamBytes\"U\n" + + "\x16CreateWorkloadResponse\x12;\n" + + "\bworkload\x18\x01 \x01(\v2\x1f.agynio.api.runners.v1.WorkloadR\bworkload\"\xe3\x04\n" + + "\x15UpdateWorkloadRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12B\n" + + "\x06status\x18\x02 \x01(\x0e2%.agynio.api.runners.v1.WorkloadStatusH\x00R\x06status\x88\x01\x01\x12@\n" + + "\n" + + "containers\x18\x03 \x03(\v2 .agynio.api.runners.v1.ContainerR\n" + + "containers\x12$\n" + + "\vinstance_id\x18\x04 \x01(\tH\x01R\n" + + "instanceId\x88\x01\x01\x12>\n" + + "\n" + + "removed_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampH\x02R\tremovedAt\x88\x01\x01\x12X\n" + + "\x18last_metering_sampled_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampH\x03R\x15lastMeteringSampledAt\x88\x01\x01\x12X\n" + + "\x0efailure_reason\x18\a \x01(\x0e2,.agynio.api.runners.v1.WorkloadFailureReasonH\x04R\rfailureReason\x88\x01\x01\x12,\n" + + "\x0ffailure_message\x18\b \x01(\tH\x05R\x0efailureMessage\x88\x01\x01B\t\n" + + "\a_statusB\x0e\n" + + "\f_instance_idB\r\n" + + "\v_removed_atB\x1b\n" + + "\x19_last_metering_sampled_atB\x11\n" + + "\x0f_failure_reasonB\x12\n" + + "\x10_failure_message\"U\n" + + "\x16UpdateWorkloadResponse\x12;\n" + + "\bworkload\x18\x01 \x01(\v2\x1f.agynio.api.runners.v1.WorkloadR\bworkload\"\xae\x01\n" + + "\x1bUpdateWorkloadStatusRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12=\n" + + "\x06status\x18\x02 \x01(\x0e2%.agynio.api.runners.v1.WorkloadStatusR\x06status\x12@\n" + + "\n" + + "containers\x18\x03 \x03(\v2 .agynio.api.runners.v1.ContainerR\n" + + "containers\"[\n" + + "\x1cUpdateWorkloadStatusResponse\x12;\n" + + "\bworkload\x18\x01 \x01(\v2\x1f.agynio.api.runners.v1.WorkloadR\bworkload\"&\n" + + "\x14TouchWorkloadRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"\x17\n" + + "\x15TouchWorkloadResponse\"'\n" + + "\x15DeleteWorkloadRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"\x18\n" + + "\x16DeleteWorkloadResponse\"$\n" + + "\x12GetWorkloadRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"R\n" + + "\x13GetWorkloadResponse\x12;\n" + + "\bworkload\x18\x01 \x01(\v2\x1f.agynio.api.runners.v1.WorkloadR\bworkload\"\x9c\x01\n" + + "\x11ListWorkloadsSort\x12C\n" + + "\x05field\x18\x01 \x01(\x0e2-.agynio.api.runners.v1.ListWorkloadsSortFieldR\x05field\x12B\n" + + "\tdirection\x18\x02 \x01(\x0e2$.agynio.api.runners.v1.SortDirectionR\tdirection\"\x8d\x03\n" + + "\x13ListWorkloadsFilter\x12\x1e\n" + + "\vagent_id_in\x18\x01 \x03(\tR\tagentIdIn\x12 \n" + + "\frunner_id_in\x18\x02 \x03(\tR\n" + + "runnerIdIn\x12B\n" + + "\tstatus_in\x18\x03 \x03(\x0e2%.agynio.api.runners.v1.WorkloadStatusR\bstatusIn\x12D\n" + + "\rstarted_after\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampH\x00R\fstartedAfter\x88\x01\x01\x12F\n" + + "\x0estarted_before\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampH\x01R\rstartedBefore\x88\x01\x01\x12*\n" + + "\x0epending_sample\x18\x06 \x01(\bH\x02R\rpendingSample\x88\x01\x01B\x10\n" + + "\x0e_started_afterB\x11\n" + + "\x0f_started_beforeB\x11\n" + + "\x0f_pending_sample\"\xe7\x01\n" + + "\x1cListWorkloadsByThreadRequest\x12\x1b\n" + + "\tthread_id\x18\x01 \x01(\tR\bthreadId\x12\x1b\n" + + "\tpage_size\x18\x02 \x01(\x05R\bpageSize\x12\x1d\n" + + "\n" + + "page_token\x18\x03 \x01(\tR\tpageToken\x12\x1e\n" + + "\bagent_id\x18\x04 \x01(\tH\x00R\aagentId\x88\x01\x01\x12A\n" + + "\bstatuses\x18\x05 \x03(\x0e2%.agynio.api.runners.v1.WorkloadStatusR\bstatusesB\v\n" + + "\t_agent_id\"\x86\x01\n" + + "\x1dListWorkloadsByThreadResponse\x12=\n" + + "\tworkloads\x18\x01 \x03(\v2\x1f.agynio.api.runners.v1.WorkloadR\tworkloads\x12&\n" + + "\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xd4\x03\n" + + "\x14ListWorkloadsRequest\x12\x1b\n" + + "\tpage_size\x18\x01 \x01(\x05R\bpageSize\x12\x1d\n" + + "\n" + + "page_token\x18\x02 \x01(\tR\tpageToken\x12E\n" + + "\bstatuses\x18\x03 \x03(\x0e2%.agynio.api.runners.v1.WorkloadStatusB\x02\x18\x01R\bstatuses\x12,\n" + + "\x0forganization_id\x18\x04 \x01(\tH\x00R\x0eorganizationId\x88\x01\x01\x12$\n" + + "\trunner_id\x18\x05 \x01(\tB\x02\x18\x01H\x01R\brunnerId\x88\x01\x01\x12.\n" + + "\x0epending_sample\x18\x06 \x01(\bB\x02\x18\x01H\x02R\rpendingSample\x88\x01\x01\x12B\n" + + "\x06filter\x18\a \x01(\v2*.agynio.api.runners.v1.ListWorkloadsFilterR\x06filter\x12<\n" + + "\x04sort\x18\b \x01(\v2(.agynio.api.runners.v1.ListWorkloadsSortR\x04sortB\x12\n" + + "\x10_organization_idB\f\n" + + "\n" + + "_runner_idB\x11\n" + + "\x0f_pending_sample\"~\n" + + "\x15ListWorkloadsResponse\x12=\n" + + "\tworkloads\x18\x01 \x03(\v2\x1f.agynio.api.runners.v1.WorkloadR\tworkloads\x12&\n" + + "\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"f\n" + + "#BatchUpdateWorkloadSampledAtRequest\x12?\n" + + "\aentries\x18\x01 \x03(\v2%.agynio.api.runners.v1.SampledAtEntryR\aentries\"&\n" + + "$BatchUpdateWorkloadSampledAtResponse\"\x92\x05\n" + + "\x06Volume\x125\n" + + "\x04meta\x18\x01 \x01(\v2!.agynio.api.runners.v1.EntityMetaR\x04meta\x12$\n" + + "\vinstance_id\x18\x02 \x01(\tH\x00R\n" + + "instanceId\x88\x01\x01\x12\x1b\n" + + "\tvolume_id\x18\x03 \x01(\tR\bvolumeId\x12\x1b\n" + + "\tthread_id\x18\x04 \x01(\tR\bthreadId\x12\x1b\n" + + "\trunner_id\x18\x05 \x01(\tR\brunnerId\x12\x19\n" + + "\bagent_id\x18\x06 \x01(\tR\aagentId\x12'\n" + + "\x0forganization_id\x18\a \x01(\tR\x0eorganizationId\x12\x17\n" + + "\asize_gb\x18\b \x01(\tR\x06sizeGb\x12;\n" + + "\x06status\x18\t \x01(\x0e2#.agynio.api.runners.v1.VolumeStatusR\x06status\x12>\n" + + "\n" + + "removed_at\x18\n" + + " \x01(\v2\x1a.google.protobuf.TimestampH\x01R\tremovedAt\x88\x01\x01\x12X\n" + + "\x18last_metering_sampled_at\x18\v \x01(\v2\x1a.google.protobuf.TimestampH\x02R\x15lastMeteringSampledAt\x88\x01\x01\x12\x1f\n" + + "\vvolume_name\x18\f \x01(\tR\n" + + "volumeName\x12C\n" + + "\vattachments\x18\r \x03(\v2!.agynio.api.runners.v1.AttachmentR\vattachmentsB\x0e\n" + + "\f_instance_idB\r\n" + + "\v_removed_atB\x1b\n" + + "\x19_last_metering_sampled_at\"k\n" + + "\n" + + "Attachment\x129\n" + + "\x04kind\x18\x01 \x01(\x0e2%.agynio.api.runners.v1.AttachmentKindR\x04kind\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\x12\x12\n" + + "\x04name\x18\x03 \x01(\tR\x04name\"\x96\x02\n" + + "\x13CreateVolumeRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x1b\n" + + "\tvolume_id\x18\x02 \x01(\tR\bvolumeId\x12\x1b\n" + + "\tthread_id\x18\x03 \x01(\tR\bthreadId\x12\x1b\n" + + "\trunner_id\x18\x04 \x01(\tR\brunnerId\x12\x19\n" + + "\bagent_id\x18\x05 \x01(\tR\aagentId\x12'\n" + + "\x0forganization_id\x18\x06 \x01(\tR\x0eorganizationId\x12\x17\n" + + "\asize_gb\x18\a \x01(\tR\x06sizeGb\x12;\n" + + "\x06status\x18\b \x01(\x0e2#.agynio.api.runners.v1.VolumeStatusR\x06status\"M\n" + + "\x14CreateVolumeResponse\x125\n" + + "\x06volume\x18\x01 \x01(\v2\x1d.agynio.api.runners.v1.VolumeR\x06volume\"\xee\x02\n" + + "\x13UpdateVolumeRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12@\n" + + "\x06status\x18\x02 \x01(\x0e2#.agynio.api.runners.v1.VolumeStatusH\x00R\x06status\x88\x01\x01\x12$\n" + + "\vinstance_id\x18\x03 \x01(\tH\x01R\n" + + "instanceId\x88\x01\x01\x12>\n" + + "\n" + + "removed_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampH\x02R\tremovedAt\x88\x01\x01\x12X\n" + + "\x18last_metering_sampled_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampH\x03R\x15lastMeteringSampledAt\x88\x01\x01B\t\n" + + "\a_statusB\x0e\n" + + "\f_instance_idB\r\n" + + "\v_removed_atB\x1b\n" + + "\x19_last_metering_sampled_at\"M\n" + + "\x14UpdateVolumeResponse\x125\n" + + "\x06volume\x18\x01 \x01(\v2\x1d.agynio.api.runners.v1.VolumeR\x06volume\"\"\n" + + "\x10GetVolumeRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\"J\n" + + "\x11GetVolumeResponse\x125\n" + + "\x06volume\x18\x01 \x01(\v2\x1d.agynio.api.runners.v1.VolumeR\x06volume\"\x98\x01\n" + + "\x0fListVolumesSort\x12A\n" + + "\x05field\x18\x01 \x01(\x0e2+.agynio.api.runners.v1.ListVolumesSortFieldR\x05field\x12B\n" + + "\tdirection\x18\x02 \x01(\x0e2$.agynio.api.runners.v1.SortDirectionR\tdirection\"\xeb\x02\n" + + "\x11ListVolumesFilter\x12@\n" + + "\tstatus_in\x18\x01 \x03(\x0e2#.agynio.api.runners.v1.VolumeStatusR\bstatusIn\x12 \n" + + "\frunner_id_in\x18\x02 \x03(\tR\n" + + "runnerIdIn\x12`\n" + + "\x13attached_to_kind_in\x18\x03 \x03(\x0e21.agynio.api.runners.v1.VolumeAttachmentFilterKindR\x10attachedToKindIn\x12*\n" + + "\x0epending_sample\x18\x04 \x01(\bH\x00R\rpendingSample\x88\x01\x01\x127\n" + + "\x15volume_name_substring\x18\x05 \x01(\tH\x01R\x13volumeNameSubstring\x88\x01\x01B\x11\n" + + "\x0f_pending_sampleB\x18\n" + + "\x16_volume_name_substring\"\xcc\x03\n" + + "\x12ListVolumesRequest\x12\x1b\n" + + "\tpage_size\x18\x01 \x01(\x05R\bpageSize\x12\x1d\n" + + "\n" + + "page_token\x18\x02 \x01(\tR\tpageToken\x12C\n" + + "\bstatuses\x18\x03 \x03(\x0e2#.agynio.api.runners.v1.VolumeStatusB\x02\x18\x01R\bstatuses\x12,\n" + + "\x0forganization_id\x18\x04 \x01(\tH\x00R\x0eorganizationId\x88\x01\x01\x12$\n" + + "\trunner_id\x18\x05 \x01(\tB\x02\x18\x01H\x01R\brunnerId\x88\x01\x01\x12.\n" + + "\x0epending_sample\x18\x06 \x01(\bB\x02\x18\x01H\x02R\rpendingSample\x88\x01\x01\x12@\n" + + "\x06filter\x18\a \x01(\v2(.agynio.api.runners.v1.ListVolumesFilterR\x06filter\x12:\n" + + "\x04sort\x18\b \x01(\v2&.agynio.api.runners.v1.ListVolumesSortR\x04sortB\x12\n" + + "\x10_organization_idB\f\n" + + "\n" + + "_runner_idB\x11\n" + + "\x0f_pending_sample\"v\n" + + "\x13ListVolumesResponse\x127\n" + + "\avolumes\x18\x01 \x03(\v2\x1d.agynio.api.runners.v1.VolumeR\avolumes\x12&\n" + + "\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"u\n" + + "\x1aListVolumesByThreadRequest\x12\x1b\n" + + "\tthread_id\x18\x01 \x01(\tR\bthreadId\x12\x1b\n" + + "\tpage_size\x18\x02 \x01(\x05R\bpageSize\x12\x1d\n" + + "\n" + + "page_token\x18\x03 \x01(\tR\tpageToken\"~\n" + + "\x1bListVolumesByThreadResponse\x127\n" + + "\avolumes\x18\x01 \x03(\v2\x1d.agynio.api.runners.v1.VolumeR\avolumes\x12&\n" + + "\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"d\n" + + "!BatchUpdateVolumeSampledAtRequest\x12?\n" + + "\aentries\x18\x01 \x03(\v2%.agynio.api.runners.v1.SampledAtEntryR\aentries\"$\n" + + "\"BatchUpdateVolumeSampledAtResponse*`\n" + + "\rSortDirection\x12\x1e\n" + + "\x1aSORT_DIRECTION_UNSPECIFIED\x10\x00\x12\x16\n" + + "\x12SORT_DIRECTION_ASC\x10\x01\x12\x17\n" + + "\x13SORT_DIRECTION_DESC\x10\x02*\x7f\n" + + "\fRunnerStatus\x12\x1d\n" + + "\x19RUNNER_STATUS_UNSPECIFIED\x10\x00\x12\x19\n" + + "\x15RUNNER_STATUS_PENDING\x10\x01\x12\x1a\n" + + "\x16RUNNER_STATUS_ENROLLED\x10\x02\x12\x19\n" + + "\x15RUNNER_STATUS_OFFLINE\x10\x03*\xc3\x01\n" + + "\x0eWorkloadStatus\x12\x1f\n" + + "\x1bWORKLOAD_STATUS_UNSPECIFIED\x10\x00\x12\x1c\n" + + "\x18WORKLOAD_STATUS_STARTING\x10\x01\x12\x1b\n" + + "\x17WORKLOAD_STATUS_RUNNING\x10\x02\x12\x1c\n" + + "\x18WORKLOAD_STATUS_STOPPING\x10\x03\x12\x1b\n" + + "\x17WORKLOAD_STATUS_STOPPED\x10\x04\x12\x1a\n" + + "\x16WORKLOAD_STATUS_FAILED\x10\x05*\x96\x02\n" + + "\x15WorkloadFailureReason\x12'\n" + + "#WORKLOAD_FAILURE_REASON_UNSPECIFIED\x10\x00\x12(\n" + + "$WORKLOAD_FAILURE_REASON_START_FAILED\x10\x01\x12-\n" + + ")WORKLOAD_FAILURE_REASON_IMAGE_PULL_FAILED\x10\x02\x12*\n" + + "&WORKLOAD_FAILURE_REASON_CONFIG_INVALID\x10\x03\x12%\n" + + "!WORKLOAD_FAILURE_REASON_CRASHLOOP\x10\x04\x12(\n" + + "$WORKLOAD_FAILURE_REASON_RUNTIME_LOST\x10\x05*}\n" + + "\rContainerRole\x12\x1e\n" + + "\x1aCONTAINER_ROLE_UNSPECIFIED\x10\x00\x12\x17\n" + + "\x13CONTAINER_ROLE_MAIN\x10\x01\x12\x1a\n" + + "\x16CONTAINER_ROLE_SIDECAR\x10\x02\x12\x17\n" + + "\x13CONTAINER_ROLE_INIT\x10\x03*\x90\x01\n" + + "\x0fContainerStatus\x12 \n" + + "\x1cCONTAINER_STATUS_UNSPECIFIED\x10\x00\x12\x1c\n" + + "\x18CONTAINER_STATUS_RUNNING\x10\x01\x12\x1f\n" + + "\x1bCONTAINER_STATUS_TERMINATED\x10\x02\x12\x1c\n" + + "\x18CONTAINER_STATUS_WAITING\x10\x03*\x83\x02\n" + + "\x16ListWorkloadsSortField\x12)\n" + + "%LIST_WORKLOADS_SORT_FIELD_UNSPECIFIED\x10\x00\x12%\n" + + "!LIST_WORKLOADS_SORT_FIELD_STARTED\x10\x01\x12#\n" + + "\x1fLIST_WORKLOADS_SORT_FIELD_AGENT\x10\x02\x12$\n" + + " LIST_WORKLOADS_SORT_FIELD_RUNNER\x10\x03\x12$\n" + + " LIST_WORKLOADS_SORT_FIELD_STATUS\x10\x04\x12&\n" + + "\"LIST_WORKLOADS_SORT_FIELD_DURATION\x10\x05*\xbe\x01\n" + + "\fVolumeStatus\x12\x1d\n" + + "\x19VOLUME_STATUS_UNSPECIFIED\x10\x00\x12\x1e\n" + + "\x1aVOLUME_STATUS_PROVISIONING\x10\x01\x12\x18\n" + + "\x14VOLUME_STATUS_ACTIVE\x10\x02\x12 \n" + + "\x1cVOLUME_STATUS_DEPROVISIONING\x10\x03\x12\x19\n" + + "\x15VOLUME_STATUS_DELETED\x10\x04\x12\x18\n" + + "\x14VOLUME_STATUS_FAILED\x10\x05*\x7f\n" + + "\x0eAttachmentKind\x12\x1f\n" + + "\x1bATTACHMENT_KIND_UNSPECIFIED\x10\x00\x12\x19\n" + + "\x15ATTACHMENT_KIND_AGENT\x10\x01\x12\x17\n" + + "\x13ATTACHMENT_KIND_MCP\x10\x02\x12\x18\n" + + "\x14ATTACHMENT_KIND_HOOK\x10\x03*\xf1\x01\n" + + "\x1aVolumeAttachmentFilterKind\x12-\n" + + ")VOLUME_ATTACHMENT_FILTER_KIND_UNSPECIFIED\x10\x00\x12'\n" + + "#VOLUME_ATTACHMENT_FILTER_KIND_AGENT\x10\x01\x12%\n" + + "!VOLUME_ATTACHMENT_FILTER_KIND_MCP\x10\x02\x12&\n" + + "\"VOLUME_ATTACHMENT_FILTER_KIND_HOOK\x10\x03\x12,\n" + + "(VOLUME_ATTACHMENT_FILTER_KIND_UNATTACHED\x10\x04*\xcc\x01\n" + + "\x14ListVolumesSortField\x12'\n" + + "#LIST_VOLUMES_SORT_FIELD_UNSPECIFIED\x10\x00\x12 \n" + + "\x1cLIST_VOLUMES_SORT_FIELD_NAME\x10\x01\x12 \n" + + "\x1cLIST_VOLUMES_SORT_FIELD_SIZE\x10\x02\x12\"\n" + + "\x1eLIST_VOLUMES_SORT_FIELD_STATUS\x10\x03\x12#\n" + + "\x1fLIST_VOLUMES_SORT_FIELD_CREATED\x10\x042\xd1\x14\n" + + "\x0eRunnersService\x12m\n" + + "\x0eRegisterRunner\x12,.agynio.api.runners.v1.RegisterRunnerRequest\x1a-.agynio.api.runners.v1.RegisterRunnerResponse\x12^\n" + + "\tGetRunner\x12'.agynio.api.runners.v1.GetRunnerRequest\x1a(.agynio.api.runners.v1.GetRunnerResponse\x12d\n" + + "\vListRunners\x12).agynio.api.runners.v1.ListRunnersRequest\x1a*.agynio.api.runners.v1.ListRunnersResponse\x12g\n" + + "\fUpdateRunner\x12*.agynio.api.runners.v1.UpdateRunnerRequest\x1a+.agynio.api.runners.v1.UpdateRunnerResponse\x12g\n" + + "\fDeleteRunner\x12*.agynio.api.runners.v1.DeleteRunnerRequest\x1a+.agynio.api.runners.v1.DeleteRunnerResponse\x12\x7f\n" + + "\x14ValidateServiceToken\x122.agynio.api.runners.v1.ValidateServiceTokenRequest\x1a3.agynio.api.runners.v1.ValidateServiceTokenResponse\x12g\n" + + "\fEnrollRunner\x12*.agynio.api.runners.v1.EnrollRunnerRequest\x1a+.agynio.api.runners.v1.EnrollRunnerResponse\x12m\n" + + "\x0eCreateWorkload\x12,.agynio.api.runners.v1.CreateWorkloadRequest\x1a-.agynio.api.runners.v1.CreateWorkloadResponse\x12m\n" + + "\x0eUpdateWorkload\x12,.agynio.api.runners.v1.UpdateWorkloadRequest\x1a-.agynio.api.runners.v1.UpdateWorkloadResponse\x12\x7f\n" + + "\x14UpdateWorkloadStatus\x122.agynio.api.runners.v1.UpdateWorkloadStatusRequest\x1a3.agynio.api.runners.v1.UpdateWorkloadStatusResponse\x12j\n" + + "\rTouchWorkload\x12+.agynio.api.runners.v1.TouchWorkloadRequest\x1a,.agynio.api.runners.v1.TouchWorkloadResponse\x12m\n" + + "\x0eDeleteWorkload\x12,.agynio.api.runners.v1.DeleteWorkloadRequest\x1a-.agynio.api.runners.v1.DeleteWorkloadResponse\x12d\n" + + "\vGetWorkload\x12).agynio.api.runners.v1.GetWorkloadRequest\x1a*.agynio.api.runners.v1.GetWorkloadResponse\x12\x82\x01\n" + + "\x15ListWorkloadsByThread\x123.agynio.api.runners.v1.ListWorkloadsByThreadRequest\x1a4.agynio.api.runners.v1.ListWorkloadsByThreadResponse\x12j\n" + + "\rListWorkloads\x12+.agynio.api.runners.v1.ListWorkloadsRequest\x1a,.agynio.api.runners.v1.ListWorkloadsResponse\x12\x97\x01\n" + + "\x1cBatchUpdateWorkloadSampledAt\x12:.agynio.api.runners.v1.BatchUpdateWorkloadSampledAtRequest\x1a;.agynio.api.runners.v1.BatchUpdateWorkloadSampledAtResponse\x12y\n" + + "\x12StreamWorkloadLogs\x12/.agynio.api.runner.v1.StreamWorkloadLogsRequest\x1a0.agynio.api.runner.v1.StreamWorkloadLogsResponse0\x01\x12g\n" + + "\fCreateVolume\x12*.agynio.api.runners.v1.CreateVolumeRequest\x1a+.agynio.api.runners.v1.CreateVolumeResponse\x12g\n" + + "\fUpdateVolume\x12*.agynio.api.runners.v1.UpdateVolumeRequest\x1a+.agynio.api.runners.v1.UpdateVolumeResponse\x12^\n" + + "\tGetVolume\x12'.agynio.api.runners.v1.GetVolumeRequest\x1a(.agynio.api.runners.v1.GetVolumeResponse\x12d\n" + + "\vListVolumes\x12).agynio.api.runners.v1.ListVolumesRequest\x1a*.agynio.api.runners.v1.ListVolumesResponse\x12|\n" + + "\x13ListVolumesByThread\x121.agynio.api.runners.v1.ListVolumesByThreadRequest\x1a2.agynio.api.runners.v1.ListVolumesByThreadResponse\x12\x91\x01\n" + + "\x1aBatchUpdateVolumeSampledAt\x128.agynio.api.runners.v1.BatchUpdateVolumeSampledAtRequest\x1a9.agynio.api.runners.v1.BatchUpdateVolumeSampledAtResponseB\xdf\x01\n" + + "\x19com.agynio.api.runners.v1B\fRunnersProtoP\x01Z=github.com/agynio/chat/gen/go/agynio/api/runners/v1;runnersv1\xa2\x02\x03AAR\xaa\x02\x15Agynio.Api.Runners.V1\xca\x02\x15Agynio\\Api\\Runners\\V1\xe2\x02!Agynio\\Api\\Runners\\V1\\GPBMetadata\xea\x02\x18Agynio::Api::Runners::V1b\x06proto3" + +var ( + file_agynio_api_runners_v1_runners_proto_rawDescOnce sync.Once + file_agynio_api_runners_v1_runners_proto_rawDescData []byte +) + +func file_agynio_api_runners_v1_runners_proto_rawDescGZIP() []byte { + file_agynio_api_runners_v1_runners_proto_rawDescOnce.Do(func() { + file_agynio_api_runners_v1_runners_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_agynio_api_runners_v1_runners_proto_rawDesc), len(file_agynio_api_runners_v1_runners_proto_rawDesc))) + }) + return file_agynio_api_runners_v1_runners_proto_rawDescData +} + +var file_agynio_api_runners_v1_runners_proto_enumTypes = make([]protoimpl.EnumInfo, 11) +var file_agynio_api_runners_v1_runners_proto_msgTypes = make([]protoimpl.MessageInfo, 58) +var file_agynio_api_runners_v1_runners_proto_goTypes = []any{ + (SortDirection)(0), // 0: agynio.api.runners.v1.SortDirection + (RunnerStatus)(0), // 1: agynio.api.runners.v1.RunnerStatus + (WorkloadStatus)(0), // 2: agynio.api.runners.v1.WorkloadStatus + (WorkloadFailureReason)(0), // 3: agynio.api.runners.v1.WorkloadFailureReason + (ContainerRole)(0), // 4: agynio.api.runners.v1.ContainerRole + (ContainerStatus)(0), // 5: agynio.api.runners.v1.ContainerStatus + (ListWorkloadsSortField)(0), // 6: agynio.api.runners.v1.ListWorkloadsSortField + (VolumeStatus)(0), // 7: agynio.api.runners.v1.VolumeStatus + (AttachmentKind)(0), // 8: agynio.api.runners.v1.AttachmentKind + (VolumeAttachmentFilterKind)(0), // 9: agynio.api.runners.v1.VolumeAttachmentFilterKind + (ListVolumesSortField)(0), // 10: agynio.api.runners.v1.ListVolumesSortField + (*EntityMeta)(nil), // 11: agynio.api.runners.v1.EntityMeta + (*SampledAtEntry)(nil), // 12: agynio.api.runners.v1.SampledAtEntry + (*Runner)(nil), // 13: agynio.api.runners.v1.Runner + (*RegisterRunnerRequest)(nil), // 14: agynio.api.runners.v1.RegisterRunnerRequest + (*RegisterRunnerResponse)(nil), // 15: agynio.api.runners.v1.RegisterRunnerResponse + (*GetRunnerRequest)(nil), // 16: agynio.api.runners.v1.GetRunnerRequest + (*GetRunnerResponse)(nil), // 17: agynio.api.runners.v1.GetRunnerResponse + (*ListRunnersRequest)(nil), // 18: agynio.api.runners.v1.ListRunnersRequest + (*ListRunnersResponse)(nil), // 19: agynio.api.runners.v1.ListRunnersResponse + (*UpdateRunnerRequest)(nil), // 20: agynio.api.runners.v1.UpdateRunnerRequest + (*UpdateRunnerResponse)(nil), // 21: agynio.api.runners.v1.UpdateRunnerResponse + (*DeleteRunnerRequest)(nil), // 22: agynio.api.runners.v1.DeleteRunnerRequest + (*DeleteRunnerResponse)(nil), // 23: agynio.api.runners.v1.DeleteRunnerResponse + (*ValidateServiceTokenRequest)(nil), // 24: agynio.api.runners.v1.ValidateServiceTokenRequest + (*ValidateServiceTokenResponse)(nil), // 25: agynio.api.runners.v1.ValidateServiceTokenResponse + (*EnrollRunnerRequest)(nil), // 26: agynio.api.runners.v1.EnrollRunnerRequest + (*EnrollRunnerResponse)(nil), // 27: agynio.api.runners.v1.EnrollRunnerResponse + (*Container)(nil), // 28: agynio.api.runners.v1.Container + (*Workload)(nil), // 29: agynio.api.runners.v1.Workload + (*CreateWorkloadRequest)(nil), // 30: agynio.api.runners.v1.CreateWorkloadRequest + (*CreateWorkloadResponse)(nil), // 31: agynio.api.runners.v1.CreateWorkloadResponse + (*UpdateWorkloadRequest)(nil), // 32: agynio.api.runners.v1.UpdateWorkloadRequest + (*UpdateWorkloadResponse)(nil), // 33: agynio.api.runners.v1.UpdateWorkloadResponse + (*UpdateWorkloadStatusRequest)(nil), // 34: agynio.api.runners.v1.UpdateWorkloadStatusRequest + (*UpdateWorkloadStatusResponse)(nil), // 35: agynio.api.runners.v1.UpdateWorkloadStatusResponse + (*TouchWorkloadRequest)(nil), // 36: agynio.api.runners.v1.TouchWorkloadRequest + (*TouchWorkloadResponse)(nil), // 37: agynio.api.runners.v1.TouchWorkloadResponse + (*DeleteWorkloadRequest)(nil), // 38: agynio.api.runners.v1.DeleteWorkloadRequest + (*DeleteWorkloadResponse)(nil), // 39: agynio.api.runners.v1.DeleteWorkloadResponse + (*GetWorkloadRequest)(nil), // 40: agynio.api.runners.v1.GetWorkloadRequest + (*GetWorkloadResponse)(nil), // 41: agynio.api.runners.v1.GetWorkloadResponse + (*ListWorkloadsSort)(nil), // 42: agynio.api.runners.v1.ListWorkloadsSort + (*ListWorkloadsFilter)(nil), // 43: agynio.api.runners.v1.ListWorkloadsFilter + (*ListWorkloadsByThreadRequest)(nil), // 44: agynio.api.runners.v1.ListWorkloadsByThreadRequest + (*ListWorkloadsByThreadResponse)(nil), // 45: agynio.api.runners.v1.ListWorkloadsByThreadResponse + (*ListWorkloadsRequest)(nil), // 46: agynio.api.runners.v1.ListWorkloadsRequest + (*ListWorkloadsResponse)(nil), // 47: agynio.api.runners.v1.ListWorkloadsResponse + (*BatchUpdateWorkloadSampledAtRequest)(nil), // 48: agynio.api.runners.v1.BatchUpdateWorkloadSampledAtRequest + (*BatchUpdateWorkloadSampledAtResponse)(nil), // 49: agynio.api.runners.v1.BatchUpdateWorkloadSampledAtResponse + (*Volume)(nil), // 50: agynio.api.runners.v1.Volume + (*Attachment)(nil), // 51: agynio.api.runners.v1.Attachment + (*CreateVolumeRequest)(nil), // 52: agynio.api.runners.v1.CreateVolumeRequest + (*CreateVolumeResponse)(nil), // 53: agynio.api.runners.v1.CreateVolumeResponse + (*UpdateVolumeRequest)(nil), // 54: agynio.api.runners.v1.UpdateVolumeRequest + (*UpdateVolumeResponse)(nil), // 55: agynio.api.runners.v1.UpdateVolumeResponse + (*GetVolumeRequest)(nil), // 56: agynio.api.runners.v1.GetVolumeRequest + (*GetVolumeResponse)(nil), // 57: agynio.api.runners.v1.GetVolumeResponse + (*ListVolumesSort)(nil), // 58: agynio.api.runners.v1.ListVolumesSort + (*ListVolumesFilter)(nil), // 59: agynio.api.runners.v1.ListVolumesFilter + (*ListVolumesRequest)(nil), // 60: agynio.api.runners.v1.ListVolumesRequest + (*ListVolumesResponse)(nil), // 61: agynio.api.runners.v1.ListVolumesResponse + (*ListVolumesByThreadRequest)(nil), // 62: agynio.api.runners.v1.ListVolumesByThreadRequest + (*ListVolumesByThreadResponse)(nil), // 63: agynio.api.runners.v1.ListVolumesByThreadResponse + (*BatchUpdateVolumeSampledAtRequest)(nil), // 64: agynio.api.runners.v1.BatchUpdateVolumeSampledAtRequest + (*BatchUpdateVolumeSampledAtResponse)(nil), // 65: agynio.api.runners.v1.BatchUpdateVolumeSampledAtResponse + nil, // 66: agynio.api.runners.v1.Runner.LabelsEntry + nil, // 67: agynio.api.runners.v1.RegisterRunnerRequest.LabelsEntry + nil, // 68: agynio.api.runners.v1.UpdateRunnerRequest.LabelsEntry + (*timestamppb.Timestamp)(nil), // 69: google.protobuf.Timestamp + (*v1.StreamWorkloadLogsRequest)(nil), // 70: agynio.api.runner.v1.StreamWorkloadLogsRequest + (*v1.StreamWorkloadLogsResponse)(nil), // 71: agynio.api.runner.v1.StreamWorkloadLogsResponse +} +var file_agynio_api_runners_v1_runners_proto_depIdxs = []int32{ + 69, // 0: agynio.api.runners.v1.EntityMeta.created_at:type_name -> google.protobuf.Timestamp + 69, // 1: agynio.api.runners.v1.EntityMeta.updated_at:type_name -> google.protobuf.Timestamp + 69, // 2: agynio.api.runners.v1.SampledAtEntry.sampled_at:type_name -> google.protobuf.Timestamp + 11, // 3: agynio.api.runners.v1.Runner.meta:type_name -> agynio.api.runners.v1.EntityMeta + 1, // 4: agynio.api.runners.v1.Runner.status:type_name -> agynio.api.runners.v1.RunnerStatus + 66, // 5: agynio.api.runners.v1.Runner.labels:type_name -> agynio.api.runners.v1.Runner.LabelsEntry + 67, // 6: agynio.api.runners.v1.RegisterRunnerRequest.labels:type_name -> agynio.api.runners.v1.RegisterRunnerRequest.LabelsEntry + 13, // 7: agynio.api.runners.v1.RegisterRunnerResponse.runner:type_name -> agynio.api.runners.v1.Runner + 13, // 8: agynio.api.runners.v1.GetRunnerResponse.runner:type_name -> agynio.api.runners.v1.Runner + 13, // 9: agynio.api.runners.v1.ListRunnersResponse.runners:type_name -> agynio.api.runners.v1.Runner + 68, // 10: agynio.api.runners.v1.UpdateRunnerRequest.labels:type_name -> agynio.api.runners.v1.UpdateRunnerRequest.LabelsEntry + 13, // 11: agynio.api.runners.v1.UpdateRunnerResponse.runner:type_name -> agynio.api.runners.v1.Runner + 13, // 12: agynio.api.runners.v1.ValidateServiceTokenResponse.runner:type_name -> agynio.api.runners.v1.Runner + 4, // 13: agynio.api.runners.v1.Container.role:type_name -> agynio.api.runners.v1.ContainerRole + 5, // 14: agynio.api.runners.v1.Container.status:type_name -> agynio.api.runners.v1.ContainerStatus + 69, // 15: agynio.api.runners.v1.Container.started_at:type_name -> google.protobuf.Timestamp + 69, // 16: agynio.api.runners.v1.Container.finished_at:type_name -> google.protobuf.Timestamp + 11, // 17: agynio.api.runners.v1.Workload.meta:type_name -> agynio.api.runners.v1.EntityMeta + 2, // 18: agynio.api.runners.v1.Workload.status:type_name -> agynio.api.runners.v1.WorkloadStatus + 28, // 19: agynio.api.runners.v1.Workload.containers:type_name -> agynio.api.runners.v1.Container + 69, // 20: agynio.api.runners.v1.Workload.last_activity_at:type_name -> google.protobuf.Timestamp + 69, // 21: agynio.api.runners.v1.Workload.last_metering_sampled_at:type_name -> google.protobuf.Timestamp + 69, // 22: agynio.api.runners.v1.Workload.removed_at:type_name -> google.protobuf.Timestamp + 3, // 23: agynio.api.runners.v1.Workload.failure_reason:type_name -> agynio.api.runners.v1.WorkloadFailureReason + 2, // 24: agynio.api.runners.v1.CreateWorkloadRequest.status:type_name -> agynio.api.runners.v1.WorkloadStatus + 28, // 25: agynio.api.runners.v1.CreateWorkloadRequest.containers:type_name -> agynio.api.runners.v1.Container + 29, // 26: agynio.api.runners.v1.CreateWorkloadResponse.workload:type_name -> agynio.api.runners.v1.Workload + 2, // 27: agynio.api.runners.v1.UpdateWorkloadRequest.status:type_name -> agynio.api.runners.v1.WorkloadStatus + 28, // 28: agynio.api.runners.v1.UpdateWorkloadRequest.containers:type_name -> agynio.api.runners.v1.Container + 69, // 29: agynio.api.runners.v1.UpdateWorkloadRequest.removed_at:type_name -> google.protobuf.Timestamp + 69, // 30: agynio.api.runners.v1.UpdateWorkloadRequest.last_metering_sampled_at:type_name -> google.protobuf.Timestamp + 3, // 31: agynio.api.runners.v1.UpdateWorkloadRequest.failure_reason:type_name -> agynio.api.runners.v1.WorkloadFailureReason + 29, // 32: agynio.api.runners.v1.UpdateWorkloadResponse.workload:type_name -> agynio.api.runners.v1.Workload + 2, // 33: agynio.api.runners.v1.UpdateWorkloadStatusRequest.status:type_name -> agynio.api.runners.v1.WorkloadStatus + 28, // 34: agynio.api.runners.v1.UpdateWorkloadStatusRequest.containers:type_name -> agynio.api.runners.v1.Container + 29, // 35: agynio.api.runners.v1.UpdateWorkloadStatusResponse.workload:type_name -> agynio.api.runners.v1.Workload + 29, // 36: agynio.api.runners.v1.GetWorkloadResponse.workload:type_name -> agynio.api.runners.v1.Workload + 6, // 37: agynio.api.runners.v1.ListWorkloadsSort.field:type_name -> agynio.api.runners.v1.ListWorkloadsSortField + 0, // 38: agynio.api.runners.v1.ListWorkloadsSort.direction:type_name -> agynio.api.runners.v1.SortDirection + 2, // 39: agynio.api.runners.v1.ListWorkloadsFilter.status_in:type_name -> agynio.api.runners.v1.WorkloadStatus + 69, // 40: agynio.api.runners.v1.ListWorkloadsFilter.started_after:type_name -> google.protobuf.Timestamp + 69, // 41: agynio.api.runners.v1.ListWorkloadsFilter.started_before:type_name -> google.protobuf.Timestamp + 2, // 42: agynio.api.runners.v1.ListWorkloadsByThreadRequest.statuses:type_name -> agynio.api.runners.v1.WorkloadStatus + 29, // 43: agynio.api.runners.v1.ListWorkloadsByThreadResponse.workloads:type_name -> agynio.api.runners.v1.Workload + 2, // 44: agynio.api.runners.v1.ListWorkloadsRequest.statuses:type_name -> agynio.api.runners.v1.WorkloadStatus + 43, // 45: agynio.api.runners.v1.ListWorkloadsRequest.filter:type_name -> agynio.api.runners.v1.ListWorkloadsFilter + 42, // 46: agynio.api.runners.v1.ListWorkloadsRequest.sort:type_name -> agynio.api.runners.v1.ListWorkloadsSort + 29, // 47: agynio.api.runners.v1.ListWorkloadsResponse.workloads:type_name -> agynio.api.runners.v1.Workload + 12, // 48: agynio.api.runners.v1.BatchUpdateWorkloadSampledAtRequest.entries:type_name -> agynio.api.runners.v1.SampledAtEntry + 11, // 49: agynio.api.runners.v1.Volume.meta:type_name -> agynio.api.runners.v1.EntityMeta + 7, // 50: agynio.api.runners.v1.Volume.status:type_name -> agynio.api.runners.v1.VolumeStatus + 69, // 51: agynio.api.runners.v1.Volume.removed_at:type_name -> google.protobuf.Timestamp + 69, // 52: agynio.api.runners.v1.Volume.last_metering_sampled_at:type_name -> google.protobuf.Timestamp + 51, // 53: agynio.api.runners.v1.Volume.attachments:type_name -> agynio.api.runners.v1.Attachment + 8, // 54: agynio.api.runners.v1.Attachment.kind:type_name -> agynio.api.runners.v1.AttachmentKind + 7, // 55: agynio.api.runners.v1.CreateVolumeRequest.status:type_name -> agynio.api.runners.v1.VolumeStatus + 50, // 56: agynio.api.runners.v1.CreateVolumeResponse.volume:type_name -> agynio.api.runners.v1.Volume + 7, // 57: agynio.api.runners.v1.UpdateVolumeRequest.status:type_name -> agynio.api.runners.v1.VolumeStatus + 69, // 58: agynio.api.runners.v1.UpdateVolumeRequest.removed_at:type_name -> google.protobuf.Timestamp + 69, // 59: agynio.api.runners.v1.UpdateVolumeRequest.last_metering_sampled_at:type_name -> google.protobuf.Timestamp + 50, // 60: agynio.api.runners.v1.UpdateVolumeResponse.volume:type_name -> agynio.api.runners.v1.Volume + 50, // 61: agynio.api.runners.v1.GetVolumeResponse.volume:type_name -> agynio.api.runners.v1.Volume + 10, // 62: agynio.api.runners.v1.ListVolumesSort.field:type_name -> agynio.api.runners.v1.ListVolumesSortField + 0, // 63: agynio.api.runners.v1.ListVolumesSort.direction:type_name -> agynio.api.runners.v1.SortDirection + 7, // 64: agynio.api.runners.v1.ListVolumesFilter.status_in:type_name -> agynio.api.runners.v1.VolumeStatus + 9, // 65: agynio.api.runners.v1.ListVolumesFilter.attached_to_kind_in:type_name -> agynio.api.runners.v1.VolumeAttachmentFilterKind + 7, // 66: agynio.api.runners.v1.ListVolumesRequest.statuses:type_name -> agynio.api.runners.v1.VolumeStatus + 59, // 67: agynio.api.runners.v1.ListVolumesRequest.filter:type_name -> agynio.api.runners.v1.ListVolumesFilter + 58, // 68: agynio.api.runners.v1.ListVolumesRequest.sort:type_name -> agynio.api.runners.v1.ListVolumesSort + 50, // 69: agynio.api.runners.v1.ListVolumesResponse.volumes:type_name -> agynio.api.runners.v1.Volume + 50, // 70: agynio.api.runners.v1.ListVolumesByThreadResponse.volumes:type_name -> agynio.api.runners.v1.Volume + 12, // 71: agynio.api.runners.v1.BatchUpdateVolumeSampledAtRequest.entries:type_name -> agynio.api.runners.v1.SampledAtEntry + 14, // 72: agynio.api.runners.v1.RunnersService.RegisterRunner:input_type -> agynio.api.runners.v1.RegisterRunnerRequest + 16, // 73: agynio.api.runners.v1.RunnersService.GetRunner:input_type -> agynio.api.runners.v1.GetRunnerRequest + 18, // 74: agynio.api.runners.v1.RunnersService.ListRunners:input_type -> agynio.api.runners.v1.ListRunnersRequest + 20, // 75: agynio.api.runners.v1.RunnersService.UpdateRunner:input_type -> agynio.api.runners.v1.UpdateRunnerRequest + 22, // 76: agynio.api.runners.v1.RunnersService.DeleteRunner:input_type -> agynio.api.runners.v1.DeleteRunnerRequest + 24, // 77: agynio.api.runners.v1.RunnersService.ValidateServiceToken:input_type -> agynio.api.runners.v1.ValidateServiceTokenRequest + 26, // 78: agynio.api.runners.v1.RunnersService.EnrollRunner:input_type -> agynio.api.runners.v1.EnrollRunnerRequest + 30, // 79: agynio.api.runners.v1.RunnersService.CreateWorkload:input_type -> agynio.api.runners.v1.CreateWorkloadRequest + 32, // 80: agynio.api.runners.v1.RunnersService.UpdateWorkload:input_type -> agynio.api.runners.v1.UpdateWorkloadRequest + 34, // 81: agynio.api.runners.v1.RunnersService.UpdateWorkloadStatus:input_type -> agynio.api.runners.v1.UpdateWorkloadStatusRequest + 36, // 82: agynio.api.runners.v1.RunnersService.TouchWorkload:input_type -> agynio.api.runners.v1.TouchWorkloadRequest + 38, // 83: agynio.api.runners.v1.RunnersService.DeleteWorkload:input_type -> agynio.api.runners.v1.DeleteWorkloadRequest + 40, // 84: agynio.api.runners.v1.RunnersService.GetWorkload:input_type -> agynio.api.runners.v1.GetWorkloadRequest + 44, // 85: agynio.api.runners.v1.RunnersService.ListWorkloadsByThread:input_type -> agynio.api.runners.v1.ListWorkloadsByThreadRequest + 46, // 86: agynio.api.runners.v1.RunnersService.ListWorkloads:input_type -> agynio.api.runners.v1.ListWorkloadsRequest + 48, // 87: agynio.api.runners.v1.RunnersService.BatchUpdateWorkloadSampledAt:input_type -> agynio.api.runners.v1.BatchUpdateWorkloadSampledAtRequest + 70, // 88: agynio.api.runners.v1.RunnersService.StreamWorkloadLogs:input_type -> agynio.api.runner.v1.StreamWorkloadLogsRequest + 52, // 89: agynio.api.runners.v1.RunnersService.CreateVolume:input_type -> agynio.api.runners.v1.CreateVolumeRequest + 54, // 90: agynio.api.runners.v1.RunnersService.UpdateVolume:input_type -> agynio.api.runners.v1.UpdateVolumeRequest + 56, // 91: agynio.api.runners.v1.RunnersService.GetVolume:input_type -> agynio.api.runners.v1.GetVolumeRequest + 60, // 92: agynio.api.runners.v1.RunnersService.ListVolumes:input_type -> agynio.api.runners.v1.ListVolumesRequest + 62, // 93: agynio.api.runners.v1.RunnersService.ListVolumesByThread:input_type -> agynio.api.runners.v1.ListVolumesByThreadRequest + 64, // 94: agynio.api.runners.v1.RunnersService.BatchUpdateVolumeSampledAt:input_type -> agynio.api.runners.v1.BatchUpdateVolumeSampledAtRequest + 15, // 95: agynio.api.runners.v1.RunnersService.RegisterRunner:output_type -> agynio.api.runners.v1.RegisterRunnerResponse + 17, // 96: agynio.api.runners.v1.RunnersService.GetRunner:output_type -> agynio.api.runners.v1.GetRunnerResponse + 19, // 97: agynio.api.runners.v1.RunnersService.ListRunners:output_type -> agynio.api.runners.v1.ListRunnersResponse + 21, // 98: agynio.api.runners.v1.RunnersService.UpdateRunner:output_type -> agynio.api.runners.v1.UpdateRunnerResponse + 23, // 99: agynio.api.runners.v1.RunnersService.DeleteRunner:output_type -> agynio.api.runners.v1.DeleteRunnerResponse + 25, // 100: agynio.api.runners.v1.RunnersService.ValidateServiceToken:output_type -> agynio.api.runners.v1.ValidateServiceTokenResponse + 27, // 101: agynio.api.runners.v1.RunnersService.EnrollRunner:output_type -> agynio.api.runners.v1.EnrollRunnerResponse + 31, // 102: agynio.api.runners.v1.RunnersService.CreateWorkload:output_type -> agynio.api.runners.v1.CreateWorkloadResponse + 33, // 103: agynio.api.runners.v1.RunnersService.UpdateWorkload:output_type -> agynio.api.runners.v1.UpdateWorkloadResponse + 35, // 104: agynio.api.runners.v1.RunnersService.UpdateWorkloadStatus:output_type -> agynio.api.runners.v1.UpdateWorkloadStatusResponse + 37, // 105: agynio.api.runners.v1.RunnersService.TouchWorkload:output_type -> agynio.api.runners.v1.TouchWorkloadResponse + 39, // 106: agynio.api.runners.v1.RunnersService.DeleteWorkload:output_type -> agynio.api.runners.v1.DeleteWorkloadResponse + 41, // 107: agynio.api.runners.v1.RunnersService.GetWorkload:output_type -> agynio.api.runners.v1.GetWorkloadResponse + 45, // 108: agynio.api.runners.v1.RunnersService.ListWorkloadsByThread:output_type -> agynio.api.runners.v1.ListWorkloadsByThreadResponse + 47, // 109: agynio.api.runners.v1.RunnersService.ListWorkloads:output_type -> agynio.api.runners.v1.ListWorkloadsResponse + 49, // 110: agynio.api.runners.v1.RunnersService.BatchUpdateWorkloadSampledAt:output_type -> agynio.api.runners.v1.BatchUpdateWorkloadSampledAtResponse + 71, // 111: agynio.api.runners.v1.RunnersService.StreamWorkloadLogs:output_type -> agynio.api.runner.v1.StreamWorkloadLogsResponse + 53, // 112: agynio.api.runners.v1.RunnersService.CreateVolume:output_type -> agynio.api.runners.v1.CreateVolumeResponse + 55, // 113: agynio.api.runners.v1.RunnersService.UpdateVolume:output_type -> agynio.api.runners.v1.UpdateVolumeResponse + 57, // 114: agynio.api.runners.v1.RunnersService.GetVolume:output_type -> agynio.api.runners.v1.GetVolumeResponse + 61, // 115: agynio.api.runners.v1.RunnersService.ListVolumes:output_type -> agynio.api.runners.v1.ListVolumesResponse + 63, // 116: agynio.api.runners.v1.RunnersService.ListVolumesByThread:output_type -> agynio.api.runners.v1.ListVolumesByThreadResponse + 65, // 117: agynio.api.runners.v1.RunnersService.BatchUpdateVolumeSampledAt:output_type -> agynio.api.runners.v1.BatchUpdateVolumeSampledAtResponse + 95, // [95:118] is the sub-list for method output_type + 72, // [72:95] is the sub-list for method input_type + 72, // [72:72] is the sub-list for extension type_name + 72, // [72:72] is the sub-list for extension extendee + 0, // [0:72] is the sub-list for field type_name +} + +func init() { file_agynio_api_runners_v1_runners_proto_init() } +func file_agynio_api_runners_v1_runners_proto_init() { + if File_agynio_api_runners_v1_runners_proto != nil { + return + } + file_agynio_api_runners_v1_runners_proto_msgTypes[2].OneofWrappers = []any{} + file_agynio_api_runners_v1_runners_proto_msgTypes[3].OneofWrappers = []any{} + file_agynio_api_runners_v1_runners_proto_msgTypes[7].OneofWrappers = []any{} + file_agynio_api_runners_v1_runners_proto_msgTypes[9].OneofWrappers = []any{} + file_agynio_api_runners_v1_runners_proto_msgTypes[17].OneofWrappers = []any{} + file_agynio_api_runners_v1_runners_proto_msgTypes[18].OneofWrappers = []any{} + file_agynio_api_runners_v1_runners_proto_msgTypes[21].OneofWrappers = []any{} + file_agynio_api_runners_v1_runners_proto_msgTypes[32].OneofWrappers = []any{} + file_agynio_api_runners_v1_runners_proto_msgTypes[33].OneofWrappers = []any{} + file_agynio_api_runners_v1_runners_proto_msgTypes[35].OneofWrappers = []any{} + file_agynio_api_runners_v1_runners_proto_msgTypes[39].OneofWrappers = []any{} + file_agynio_api_runners_v1_runners_proto_msgTypes[43].OneofWrappers = []any{} + file_agynio_api_runners_v1_runners_proto_msgTypes[48].OneofWrappers = []any{} + file_agynio_api_runners_v1_runners_proto_msgTypes[49].OneofWrappers = []any{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_agynio_api_runners_v1_runners_proto_rawDesc), len(file_agynio_api_runners_v1_runners_proto_rawDesc)), + NumEnums: 11, + NumMessages: 58, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_agynio_api_runners_v1_runners_proto_goTypes, + DependencyIndexes: file_agynio_api_runners_v1_runners_proto_depIdxs, + EnumInfos: file_agynio_api_runners_v1_runners_proto_enumTypes, + MessageInfos: file_agynio_api_runners_v1_runners_proto_msgTypes, + }.Build() + File_agynio_api_runners_v1_runners_proto = out.File + file_agynio_api_runners_v1_runners_proto_goTypes = nil + file_agynio_api_runners_v1_runners_proto_depIdxs = nil +} diff --git a/gen/go/agynio/api/runners/v1/runners_grpc.pb.go b/gen/go/agynio/api/runners/v1/runners_grpc.pb.go new file mode 100644 index 0000000..1ba7bf9 --- /dev/null +++ b/gen/go/agynio/api/runners/v1/runners_grpc.pb.go @@ -0,0 +1,972 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.6.1 +// - protoc (unknown) +// source: agynio/api/runners/v1/runners.proto + +package runnersv1 + +import ( + context "context" + v1 "github.com/agynio/chat/gen/go/agynio/api/runner/v1" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + RunnersService_RegisterRunner_FullMethodName = "/agynio.api.runners.v1.RunnersService/RegisterRunner" + RunnersService_GetRunner_FullMethodName = "/agynio.api.runners.v1.RunnersService/GetRunner" + RunnersService_ListRunners_FullMethodName = "/agynio.api.runners.v1.RunnersService/ListRunners" + RunnersService_UpdateRunner_FullMethodName = "/agynio.api.runners.v1.RunnersService/UpdateRunner" + RunnersService_DeleteRunner_FullMethodName = "/agynio.api.runners.v1.RunnersService/DeleteRunner" + RunnersService_ValidateServiceToken_FullMethodName = "/agynio.api.runners.v1.RunnersService/ValidateServiceToken" + RunnersService_EnrollRunner_FullMethodName = "/agynio.api.runners.v1.RunnersService/EnrollRunner" + RunnersService_CreateWorkload_FullMethodName = "/agynio.api.runners.v1.RunnersService/CreateWorkload" + RunnersService_UpdateWorkload_FullMethodName = "/agynio.api.runners.v1.RunnersService/UpdateWorkload" + RunnersService_UpdateWorkloadStatus_FullMethodName = "/agynio.api.runners.v1.RunnersService/UpdateWorkloadStatus" + RunnersService_TouchWorkload_FullMethodName = "/agynio.api.runners.v1.RunnersService/TouchWorkload" + RunnersService_DeleteWorkload_FullMethodName = "/agynio.api.runners.v1.RunnersService/DeleteWorkload" + RunnersService_GetWorkload_FullMethodName = "/agynio.api.runners.v1.RunnersService/GetWorkload" + RunnersService_ListWorkloadsByThread_FullMethodName = "/agynio.api.runners.v1.RunnersService/ListWorkloadsByThread" + RunnersService_ListWorkloads_FullMethodName = "/agynio.api.runners.v1.RunnersService/ListWorkloads" + RunnersService_BatchUpdateWorkloadSampledAt_FullMethodName = "/agynio.api.runners.v1.RunnersService/BatchUpdateWorkloadSampledAt" + RunnersService_StreamWorkloadLogs_FullMethodName = "/agynio.api.runners.v1.RunnersService/StreamWorkloadLogs" + RunnersService_CreateVolume_FullMethodName = "/agynio.api.runners.v1.RunnersService/CreateVolume" + RunnersService_UpdateVolume_FullMethodName = "/agynio.api.runners.v1.RunnersService/UpdateVolume" + RunnersService_GetVolume_FullMethodName = "/agynio.api.runners.v1.RunnersService/GetVolume" + RunnersService_ListVolumes_FullMethodName = "/agynio.api.runners.v1.RunnersService/ListVolumes" + RunnersService_ListVolumesByThread_FullMethodName = "/agynio.api.runners.v1.RunnersService/ListVolumesByThread" + RunnersService_BatchUpdateVolumeSampledAt_FullMethodName = "/agynio.api.runners.v1.RunnersService/BatchUpdateVolumeSampledAt" +) + +// RunnersServiceClient is the client API for RunnersService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +// +// RunnersService manages runners and their workload state. +type RunnersServiceClient interface { + // --- Runner management --- + RegisterRunner(ctx context.Context, in *RegisterRunnerRequest, opts ...grpc.CallOption) (*RegisterRunnerResponse, error) + GetRunner(ctx context.Context, in *GetRunnerRequest, opts ...grpc.CallOption) (*GetRunnerResponse, error) + ListRunners(ctx context.Context, in *ListRunnersRequest, opts ...grpc.CallOption) (*ListRunnersResponse, error) + UpdateRunner(ctx context.Context, in *UpdateRunnerRequest, opts ...grpc.CallOption) (*UpdateRunnerResponse, error) + DeleteRunner(ctx context.Context, in *DeleteRunnerRequest, opts ...grpc.CallOption) (*DeleteRunnerResponse, error) + ValidateServiceToken(ctx context.Context, in *ValidateServiceTokenRequest, opts ...grpc.CallOption) (*ValidateServiceTokenResponse, error) + EnrollRunner(ctx context.Context, in *EnrollRunnerRequest, opts ...grpc.CallOption) (*EnrollRunnerResponse, error) + // --- Workload state --- + CreateWorkload(ctx context.Context, in *CreateWorkloadRequest, opts ...grpc.CallOption) (*CreateWorkloadResponse, error) + UpdateWorkload(ctx context.Context, in *UpdateWorkloadRequest, opts ...grpc.CallOption) (*UpdateWorkloadResponse, error) + UpdateWorkloadStatus(ctx context.Context, in *UpdateWorkloadStatusRequest, opts ...grpc.CallOption) (*UpdateWorkloadStatusResponse, error) + TouchWorkload(ctx context.Context, in *TouchWorkloadRequest, opts ...grpc.CallOption) (*TouchWorkloadResponse, error) + DeleteWorkload(ctx context.Context, in *DeleteWorkloadRequest, opts ...grpc.CallOption) (*DeleteWorkloadResponse, error) + GetWorkload(ctx context.Context, in *GetWorkloadRequest, opts ...grpc.CallOption) (*GetWorkloadResponse, error) + ListWorkloadsByThread(ctx context.Context, in *ListWorkloadsByThreadRequest, opts ...grpc.CallOption) (*ListWorkloadsByThreadResponse, error) + ListWorkloads(ctx context.Context, in *ListWorkloadsRequest, opts ...grpc.CallOption) (*ListWorkloadsResponse, error) + BatchUpdateWorkloadSampledAt(ctx context.Context, in *BatchUpdateWorkloadSampledAtRequest, opts ...grpc.CallOption) (*BatchUpdateWorkloadSampledAtResponse, error) + // --- Workload logs --- + StreamWorkloadLogs(ctx context.Context, in *v1.StreamWorkloadLogsRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[v1.StreamWorkloadLogsResponse], error) + // --- Volume state --- + CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*CreateVolumeResponse, error) + UpdateVolume(ctx context.Context, in *UpdateVolumeRequest, opts ...grpc.CallOption) (*UpdateVolumeResponse, error) + GetVolume(ctx context.Context, in *GetVolumeRequest, opts ...grpc.CallOption) (*GetVolumeResponse, error) + ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error) + ListVolumesByThread(ctx context.Context, in *ListVolumesByThreadRequest, opts ...grpc.CallOption) (*ListVolumesByThreadResponse, error) + BatchUpdateVolumeSampledAt(ctx context.Context, in *BatchUpdateVolumeSampledAtRequest, opts ...grpc.CallOption) (*BatchUpdateVolumeSampledAtResponse, error) +} + +type runnersServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewRunnersServiceClient(cc grpc.ClientConnInterface) RunnersServiceClient { + return &runnersServiceClient{cc} +} + +func (c *runnersServiceClient) RegisterRunner(ctx context.Context, in *RegisterRunnerRequest, opts ...grpc.CallOption) (*RegisterRunnerResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(RegisterRunnerResponse) + err := c.cc.Invoke(ctx, RunnersService_RegisterRunner_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) GetRunner(ctx context.Context, in *GetRunnerRequest, opts ...grpc.CallOption) (*GetRunnerResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetRunnerResponse) + err := c.cc.Invoke(ctx, RunnersService_GetRunner_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) ListRunners(ctx context.Context, in *ListRunnersRequest, opts ...grpc.CallOption) (*ListRunnersResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListRunnersResponse) + err := c.cc.Invoke(ctx, RunnersService_ListRunners_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) UpdateRunner(ctx context.Context, in *UpdateRunnerRequest, opts ...grpc.CallOption) (*UpdateRunnerResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(UpdateRunnerResponse) + err := c.cc.Invoke(ctx, RunnersService_UpdateRunner_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) DeleteRunner(ctx context.Context, in *DeleteRunnerRequest, opts ...grpc.CallOption) (*DeleteRunnerResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(DeleteRunnerResponse) + err := c.cc.Invoke(ctx, RunnersService_DeleteRunner_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) ValidateServiceToken(ctx context.Context, in *ValidateServiceTokenRequest, opts ...grpc.CallOption) (*ValidateServiceTokenResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ValidateServiceTokenResponse) + err := c.cc.Invoke(ctx, RunnersService_ValidateServiceToken_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) EnrollRunner(ctx context.Context, in *EnrollRunnerRequest, opts ...grpc.CallOption) (*EnrollRunnerResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(EnrollRunnerResponse) + err := c.cc.Invoke(ctx, RunnersService_EnrollRunner_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) CreateWorkload(ctx context.Context, in *CreateWorkloadRequest, opts ...grpc.CallOption) (*CreateWorkloadResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(CreateWorkloadResponse) + err := c.cc.Invoke(ctx, RunnersService_CreateWorkload_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) UpdateWorkload(ctx context.Context, in *UpdateWorkloadRequest, opts ...grpc.CallOption) (*UpdateWorkloadResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(UpdateWorkloadResponse) + err := c.cc.Invoke(ctx, RunnersService_UpdateWorkload_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) UpdateWorkloadStatus(ctx context.Context, in *UpdateWorkloadStatusRequest, opts ...grpc.CallOption) (*UpdateWorkloadStatusResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(UpdateWorkloadStatusResponse) + err := c.cc.Invoke(ctx, RunnersService_UpdateWorkloadStatus_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) TouchWorkload(ctx context.Context, in *TouchWorkloadRequest, opts ...grpc.CallOption) (*TouchWorkloadResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(TouchWorkloadResponse) + err := c.cc.Invoke(ctx, RunnersService_TouchWorkload_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) DeleteWorkload(ctx context.Context, in *DeleteWorkloadRequest, opts ...grpc.CallOption) (*DeleteWorkloadResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(DeleteWorkloadResponse) + err := c.cc.Invoke(ctx, RunnersService_DeleteWorkload_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) GetWorkload(ctx context.Context, in *GetWorkloadRequest, opts ...grpc.CallOption) (*GetWorkloadResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetWorkloadResponse) + err := c.cc.Invoke(ctx, RunnersService_GetWorkload_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) ListWorkloadsByThread(ctx context.Context, in *ListWorkloadsByThreadRequest, opts ...grpc.CallOption) (*ListWorkloadsByThreadResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListWorkloadsByThreadResponse) + err := c.cc.Invoke(ctx, RunnersService_ListWorkloadsByThread_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) ListWorkloads(ctx context.Context, in *ListWorkloadsRequest, opts ...grpc.CallOption) (*ListWorkloadsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListWorkloadsResponse) + err := c.cc.Invoke(ctx, RunnersService_ListWorkloads_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) BatchUpdateWorkloadSampledAt(ctx context.Context, in *BatchUpdateWorkloadSampledAtRequest, opts ...grpc.CallOption) (*BatchUpdateWorkloadSampledAtResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(BatchUpdateWorkloadSampledAtResponse) + err := c.cc.Invoke(ctx, RunnersService_BatchUpdateWorkloadSampledAt_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) StreamWorkloadLogs(ctx context.Context, in *v1.StreamWorkloadLogsRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[v1.StreamWorkloadLogsResponse], error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + stream, err := c.cc.NewStream(ctx, &RunnersService_ServiceDesc.Streams[0], RunnersService_StreamWorkloadLogs_FullMethodName, cOpts...) + if err != nil { + return nil, err + } + x := &grpc.GenericClientStream[v1.StreamWorkloadLogsRequest, v1.StreamWorkloadLogsResponse]{ClientStream: stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type RunnersService_StreamWorkloadLogsClient = grpc.ServerStreamingClient[v1.StreamWorkloadLogsResponse] + +func (c *runnersServiceClient) CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*CreateVolumeResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(CreateVolumeResponse) + err := c.cc.Invoke(ctx, RunnersService_CreateVolume_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) UpdateVolume(ctx context.Context, in *UpdateVolumeRequest, opts ...grpc.CallOption) (*UpdateVolumeResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(UpdateVolumeResponse) + err := c.cc.Invoke(ctx, RunnersService_UpdateVolume_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) GetVolume(ctx context.Context, in *GetVolumeRequest, opts ...grpc.CallOption) (*GetVolumeResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetVolumeResponse) + err := c.cc.Invoke(ctx, RunnersService_GetVolume_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListVolumesResponse) + err := c.cc.Invoke(ctx, RunnersService_ListVolumes_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) ListVolumesByThread(ctx context.Context, in *ListVolumesByThreadRequest, opts ...grpc.CallOption) (*ListVolumesByThreadResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListVolumesByThreadResponse) + err := c.cc.Invoke(ctx, RunnersService_ListVolumesByThread_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runnersServiceClient) BatchUpdateVolumeSampledAt(ctx context.Context, in *BatchUpdateVolumeSampledAtRequest, opts ...grpc.CallOption) (*BatchUpdateVolumeSampledAtResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(BatchUpdateVolumeSampledAtResponse) + err := c.cc.Invoke(ctx, RunnersService_BatchUpdateVolumeSampledAt_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// RunnersServiceServer is the server API for RunnersService service. +// All implementations should embed UnimplementedRunnersServiceServer +// for forward compatibility. +// +// RunnersService manages runners and their workload state. +type RunnersServiceServer interface { + // --- Runner management --- + RegisterRunner(context.Context, *RegisterRunnerRequest) (*RegisterRunnerResponse, error) + GetRunner(context.Context, *GetRunnerRequest) (*GetRunnerResponse, error) + ListRunners(context.Context, *ListRunnersRequest) (*ListRunnersResponse, error) + UpdateRunner(context.Context, *UpdateRunnerRequest) (*UpdateRunnerResponse, error) + DeleteRunner(context.Context, *DeleteRunnerRequest) (*DeleteRunnerResponse, error) + ValidateServiceToken(context.Context, *ValidateServiceTokenRequest) (*ValidateServiceTokenResponse, error) + EnrollRunner(context.Context, *EnrollRunnerRequest) (*EnrollRunnerResponse, error) + // --- Workload state --- + CreateWorkload(context.Context, *CreateWorkloadRequest) (*CreateWorkloadResponse, error) + UpdateWorkload(context.Context, *UpdateWorkloadRequest) (*UpdateWorkloadResponse, error) + UpdateWorkloadStatus(context.Context, *UpdateWorkloadStatusRequest) (*UpdateWorkloadStatusResponse, error) + TouchWorkload(context.Context, *TouchWorkloadRequest) (*TouchWorkloadResponse, error) + DeleteWorkload(context.Context, *DeleteWorkloadRequest) (*DeleteWorkloadResponse, error) + GetWorkload(context.Context, *GetWorkloadRequest) (*GetWorkloadResponse, error) + ListWorkloadsByThread(context.Context, *ListWorkloadsByThreadRequest) (*ListWorkloadsByThreadResponse, error) + ListWorkloads(context.Context, *ListWorkloadsRequest) (*ListWorkloadsResponse, error) + BatchUpdateWorkloadSampledAt(context.Context, *BatchUpdateWorkloadSampledAtRequest) (*BatchUpdateWorkloadSampledAtResponse, error) + // --- Workload logs --- + StreamWorkloadLogs(*v1.StreamWorkloadLogsRequest, grpc.ServerStreamingServer[v1.StreamWorkloadLogsResponse]) error + // --- Volume state --- + CreateVolume(context.Context, *CreateVolumeRequest) (*CreateVolumeResponse, error) + UpdateVolume(context.Context, *UpdateVolumeRequest) (*UpdateVolumeResponse, error) + GetVolume(context.Context, *GetVolumeRequest) (*GetVolumeResponse, error) + ListVolumes(context.Context, *ListVolumesRequest) (*ListVolumesResponse, error) + ListVolumesByThread(context.Context, *ListVolumesByThreadRequest) (*ListVolumesByThreadResponse, error) + BatchUpdateVolumeSampledAt(context.Context, *BatchUpdateVolumeSampledAtRequest) (*BatchUpdateVolumeSampledAtResponse, error) +} + +// UnimplementedRunnersServiceServer should be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedRunnersServiceServer struct{} + +func (UnimplementedRunnersServiceServer) RegisterRunner(context.Context, *RegisterRunnerRequest) (*RegisterRunnerResponse, error) { + return nil, status.Error(codes.Unimplemented, "method RegisterRunner not implemented") +} +func (UnimplementedRunnersServiceServer) GetRunner(context.Context, *GetRunnerRequest) (*GetRunnerResponse, error) { + return nil, status.Error(codes.Unimplemented, "method GetRunner not implemented") +} +func (UnimplementedRunnersServiceServer) ListRunners(context.Context, *ListRunnersRequest) (*ListRunnersResponse, error) { + return nil, status.Error(codes.Unimplemented, "method ListRunners not implemented") +} +func (UnimplementedRunnersServiceServer) UpdateRunner(context.Context, *UpdateRunnerRequest) (*UpdateRunnerResponse, error) { + return nil, status.Error(codes.Unimplemented, "method UpdateRunner not implemented") +} +func (UnimplementedRunnersServiceServer) DeleteRunner(context.Context, *DeleteRunnerRequest) (*DeleteRunnerResponse, error) { + return nil, status.Error(codes.Unimplemented, "method DeleteRunner not implemented") +} +func (UnimplementedRunnersServiceServer) ValidateServiceToken(context.Context, *ValidateServiceTokenRequest) (*ValidateServiceTokenResponse, error) { + return nil, status.Error(codes.Unimplemented, "method ValidateServiceToken not implemented") +} +func (UnimplementedRunnersServiceServer) EnrollRunner(context.Context, *EnrollRunnerRequest) (*EnrollRunnerResponse, error) { + return nil, status.Error(codes.Unimplemented, "method EnrollRunner not implemented") +} +func (UnimplementedRunnersServiceServer) CreateWorkload(context.Context, *CreateWorkloadRequest) (*CreateWorkloadResponse, error) { + return nil, status.Error(codes.Unimplemented, "method CreateWorkload not implemented") +} +func (UnimplementedRunnersServiceServer) UpdateWorkload(context.Context, *UpdateWorkloadRequest) (*UpdateWorkloadResponse, error) { + return nil, status.Error(codes.Unimplemented, "method UpdateWorkload not implemented") +} +func (UnimplementedRunnersServiceServer) UpdateWorkloadStatus(context.Context, *UpdateWorkloadStatusRequest) (*UpdateWorkloadStatusResponse, error) { + return nil, status.Error(codes.Unimplemented, "method UpdateWorkloadStatus not implemented") +} +func (UnimplementedRunnersServiceServer) TouchWorkload(context.Context, *TouchWorkloadRequest) (*TouchWorkloadResponse, error) { + return nil, status.Error(codes.Unimplemented, "method TouchWorkload not implemented") +} +func (UnimplementedRunnersServiceServer) DeleteWorkload(context.Context, *DeleteWorkloadRequest) (*DeleteWorkloadResponse, error) { + return nil, status.Error(codes.Unimplemented, "method DeleteWorkload not implemented") +} +func (UnimplementedRunnersServiceServer) GetWorkload(context.Context, *GetWorkloadRequest) (*GetWorkloadResponse, error) { + return nil, status.Error(codes.Unimplemented, "method GetWorkload not implemented") +} +func (UnimplementedRunnersServiceServer) ListWorkloadsByThread(context.Context, *ListWorkloadsByThreadRequest) (*ListWorkloadsByThreadResponse, error) { + return nil, status.Error(codes.Unimplemented, "method ListWorkloadsByThread not implemented") +} +func (UnimplementedRunnersServiceServer) ListWorkloads(context.Context, *ListWorkloadsRequest) (*ListWorkloadsResponse, error) { + return nil, status.Error(codes.Unimplemented, "method ListWorkloads not implemented") +} +func (UnimplementedRunnersServiceServer) BatchUpdateWorkloadSampledAt(context.Context, *BatchUpdateWorkloadSampledAtRequest) (*BatchUpdateWorkloadSampledAtResponse, error) { + return nil, status.Error(codes.Unimplemented, "method BatchUpdateWorkloadSampledAt not implemented") +} +func (UnimplementedRunnersServiceServer) StreamWorkloadLogs(*v1.StreamWorkloadLogsRequest, grpc.ServerStreamingServer[v1.StreamWorkloadLogsResponse]) error { + return status.Error(codes.Unimplemented, "method StreamWorkloadLogs not implemented") +} +func (UnimplementedRunnersServiceServer) CreateVolume(context.Context, *CreateVolumeRequest) (*CreateVolumeResponse, error) { + return nil, status.Error(codes.Unimplemented, "method CreateVolume not implemented") +} +func (UnimplementedRunnersServiceServer) UpdateVolume(context.Context, *UpdateVolumeRequest) (*UpdateVolumeResponse, error) { + return nil, status.Error(codes.Unimplemented, "method UpdateVolume not implemented") +} +func (UnimplementedRunnersServiceServer) GetVolume(context.Context, *GetVolumeRequest) (*GetVolumeResponse, error) { + return nil, status.Error(codes.Unimplemented, "method GetVolume not implemented") +} +func (UnimplementedRunnersServiceServer) ListVolumes(context.Context, *ListVolumesRequest) (*ListVolumesResponse, error) { + return nil, status.Error(codes.Unimplemented, "method ListVolumes not implemented") +} +func (UnimplementedRunnersServiceServer) ListVolumesByThread(context.Context, *ListVolumesByThreadRequest) (*ListVolumesByThreadResponse, error) { + return nil, status.Error(codes.Unimplemented, "method ListVolumesByThread not implemented") +} +func (UnimplementedRunnersServiceServer) BatchUpdateVolumeSampledAt(context.Context, *BatchUpdateVolumeSampledAtRequest) (*BatchUpdateVolumeSampledAtResponse, error) { + return nil, status.Error(codes.Unimplemented, "method BatchUpdateVolumeSampledAt not implemented") +} +func (UnimplementedRunnersServiceServer) testEmbeddedByValue() {} + +// UnsafeRunnersServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to RunnersServiceServer will +// result in compilation errors. +type UnsafeRunnersServiceServer interface { + mustEmbedUnimplementedRunnersServiceServer() +} + +func RegisterRunnersServiceServer(s grpc.ServiceRegistrar, srv RunnersServiceServer) { + // If the following call panics, it indicates UnimplementedRunnersServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&RunnersService_ServiceDesc, srv) +} + +func _RunnersService_RegisterRunner_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RegisterRunnerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).RegisterRunner(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_RegisterRunner_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).RegisterRunner(ctx, req.(*RegisterRunnerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_GetRunner_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetRunnerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).GetRunner(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_GetRunner_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).GetRunner(ctx, req.(*GetRunnerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_ListRunners_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListRunnersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).ListRunners(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_ListRunners_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).ListRunners(ctx, req.(*ListRunnersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_UpdateRunner_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateRunnerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).UpdateRunner(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_UpdateRunner_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).UpdateRunner(ctx, req.(*UpdateRunnerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_DeleteRunner_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteRunnerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).DeleteRunner(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_DeleteRunner_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).DeleteRunner(ctx, req.(*DeleteRunnerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_ValidateServiceToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ValidateServiceTokenRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).ValidateServiceToken(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_ValidateServiceToken_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).ValidateServiceToken(ctx, req.(*ValidateServiceTokenRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_EnrollRunner_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EnrollRunnerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).EnrollRunner(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_EnrollRunner_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).EnrollRunner(ctx, req.(*EnrollRunnerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_CreateWorkload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateWorkloadRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).CreateWorkload(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_CreateWorkload_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).CreateWorkload(ctx, req.(*CreateWorkloadRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_UpdateWorkload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateWorkloadRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).UpdateWorkload(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_UpdateWorkload_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).UpdateWorkload(ctx, req.(*UpdateWorkloadRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_UpdateWorkloadStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateWorkloadStatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).UpdateWorkloadStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_UpdateWorkloadStatus_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).UpdateWorkloadStatus(ctx, req.(*UpdateWorkloadStatusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_TouchWorkload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TouchWorkloadRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).TouchWorkload(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_TouchWorkload_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).TouchWorkload(ctx, req.(*TouchWorkloadRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_DeleteWorkload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteWorkloadRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).DeleteWorkload(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_DeleteWorkload_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).DeleteWorkload(ctx, req.(*DeleteWorkloadRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_GetWorkload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetWorkloadRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).GetWorkload(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_GetWorkload_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).GetWorkload(ctx, req.(*GetWorkloadRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_ListWorkloadsByThread_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListWorkloadsByThreadRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).ListWorkloadsByThread(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_ListWorkloadsByThread_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).ListWorkloadsByThread(ctx, req.(*ListWorkloadsByThreadRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_ListWorkloads_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListWorkloadsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).ListWorkloads(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_ListWorkloads_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).ListWorkloads(ctx, req.(*ListWorkloadsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_BatchUpdateWorkloadSampledAt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchUpdateWorkloadSampledAtRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).BatchUpdateWorkloadSampledAt(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_BatchUpdateWorkloadSampledAt_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).BatchUpdateWorkloadSampledAt(ctx, req.(*BatchUpdateWorkloadSampledAtRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_StreamWorkloadLogs_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(v1.StreamWorkloadLogsRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(RunnersServiceServer).StreamWorkloadLogs(m, &grpc.GenericServerStream[v1.StreamWorkloadLogsRequest, v1.StreamWorkloadLogsResponse]{ServerStream: stream}) +} + +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type RunnersService_StreamWorkloadLogsServer = grpc.ServerStreamingServer[v1.StreamWorkloadLogsResponse] + +func _RunnersService_CreateVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).CreateVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_CreateVolume_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).CreateVolume(ctx, req.(*CreateVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_UpdateVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).UpdateVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_UpdateVolume_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).UpdateVolume(ctx, req.(*UpdateVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_GetVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).GetVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_GetVolume_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).GetVolume(ctx, req.(*GetVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_ListVolumes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListVolumesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).ListVolumes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_ListVolumes_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).ListVolumes(ctx, req.(*ListVolumesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_ListVolumesByThread_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListVolumesByThreadRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).ListVolumesByThread(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_ListVolumesByThread_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).ListVolumesByThread(ctx, req.(*ListVolumesByThreadRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RunnersService_BatchUpdateVolumeSampledAt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchUpdateVolumeSampledAtRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RunnersServiceServer).BatchUpdateVolumeSampledAt(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RunnersService_BatchUpdateVolumeSampledAt_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RunnersServiceServer).BatchUpdateVolumeSampledAt(ctx, req.(*BatchUpdateVolumeSampledAtRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// RunnersService_ServiceDesc is the grpc.ServiceDesc for RunnersService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var RunnersService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "agynio.api.runners.v1.RunnersService", + HandlerType: (*RunnersServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "RegisterRunner", + Handler: _RunnersService_RegisterRunner_Handler, + }, + { + MethodName: "GetRunner", + Handler: _RunnersService_GetRunner_Handler, + }, + { + MethodName: "ListRunners", + Handler: _RunnersService_ListRunners_Handler, + }, + { + MethodName: "UpdateRunner", + Handler: _RunnersService_UpdateRunner_Handler, + }, + { + MethodName: "DeleteRunner", + Handler: _RunnersService_DeleteRunner_Handler, + }, + { + MethodName: "ValidateServiceToken", + Handler: _RunnersService_ValidateServiceToken_Handler, + }, + { + MethodName: "EnrollRunner", + Handler: _RunnersService_EnrollRunner_Handler, + }, + { + MethodName: "CreateWorkload", + Handler: _RunnersService_CreateWorkload_Handler, + }, + { + MethodName: "UpdateWorkload", + Handler: _RunnersService_UpdateWorkload_Handler, + }, + { + MethodName: "UpdateWorkloadStatus", + Handler: _RunnersService_UpdateWorkloadStatus_Handler, + }, + { + MethodName: "TouchWorkload", + Handler: _RunnersService_TouchWorkload_Handler, + }, + { + MethodName: "DeleteWorkload", + Handler: _RunnersService_DeleteWorkload_Handler, + }, + { + MethodName: "GetWorkload", + Handler: _RunnersService_GetWorkload_Handler, + }, + { + MethodName: "ListWorkloadsByThread", + Handler: _RunnersService_ListWorkloadsByThread_Handler, + }, + { + MethodName: "ListWorkloads", + Handler: _RunnersService_ListWorkloads_Handler, + }, + { + MethodName: "BatchUpdateWorkloadSampledAt", + Handler: _RunnersService_BatchUpdateWorkloadSampledAt_Handler, + }, + { + MethodName: "CreateVolume", + Handler: _RunnersService_CreateVolume_Handler, + }, + { + MethodName: "UpdateVolume", + Handler: _RunnersService_UpdateVolume_Handler, + }, + { + MethodName: "GetVolume", + Handler: _RunnersService_GetVolume_Handler, + }, + { + MethodName: "ListVolumes", + Handler: _RunnersService_ListVolumes_Handler, + }, + { + MethodName: "ListVolumesByThread", + Handler: _RunnersService_ListVolumesByThread_Handler, + }, + { + MethodName: "BatchUpdateVolumeSampledAt", + Handler: _RunnersService_BatchUpdateVolumeSampledAt_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "StreamWorkloadLogs", + Handler: _RunnersService_StreamWorkloadLogs_Handler, + ServerStreams: true, + }, + }, + Metadata: "agynio/api/runners/v1/runners.proto", +} diff --git a/internal/config/config.go b/internal/config/config.go index ff4640c..dbd15c7 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -6,9 +6,11 @@ import ( ) type Config struct { - GRPCAddress string - ThreadsAddress string - DatabaseURL string + GRPCAddress string + ThreadsAddress string + RunnersAddress string + IdentityAddress string + DatabaseURL string } func FromEnv() (Config, error) { @@ -24,6 +26,16 @@ func FromEnv() (Config, error) { return Config{}, fmt.Errorf("THREADS_ADDRESS must be set") } + cfg.RunnersAddress = os.Getenv("RUNNERS_ADDRESS") + if cfg.RunnersAddress == "" { + return Config{}, fmt.Errorf("RUNNERS_ADDRESS must be set") + } + + cfg.IdentityAddress = os.Getenv("IDENTITY_ADDRESS") + if cfg.IdentityAddress == "" { + return Config{}, fmt.Errorf("IDENTITY_ADDRESS must be set") + } + cfg.DatabaseURL = os.Getenv("DATABASE_URL") if cfg.DatabaseURL == "" { return Config{}, fmt.Errorf("DATABASE_URL must be set") diff --git a/internal/server/server.go b/internal/server/server.go index 6194f99..55d80a2 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -5,10 +5,14 @@ import ( "errors" "fmt" "log" + "sync" chatv1 "github.com/agynio/chat/gen/go/agynio/api/chat/v1" + identityv1 "github.com/agynio/chat/gen/go/agynio/api/identity/v1" + runnersv1 "github.com/agynio/chat/gen/go/agynio/api/runners/v1" threadsv1 "github.com/agynio/chat/gen/go/agynio/api/threads/v1" "github.com/google/uuid" + "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" @@ -18,8 +22,10 @@ import ( type Server struct { chatv1.UnimplementedChatServiceServer - threads threadsv1.ThreadsServiceClient - store chatStore + threads threadsv1.ThreadsServiceClient + runners runnersClient + identity identityClient + store chatStore } const unackedPageSize = 100 @@ -28,6 +34,10 @@ const threadsPageSize = 100 const maxThreadsPages = 10 +const latestWorkloadPageSize = 1 + +const workloadsConcurrencyLimit = 8 + type chatStore interface { CreateChat(ctx context.Context, threadID, organizationID uuid.UUID) (store.Chat, error) GetChat(ctx context.Context, threadID uuid.UUID) (store.Chat, error) @@ -35,8 +45,26 @@ type chatStore interface { ListChats(ctx context.Context, organizationID uuid.UUID, filter store.ChatListFilter, pageSize int32, cursor *store.PageCursor) (store.ChatListResult, error) } -func New(threads threadsv1.ThreadsServiceClient, store chatStore) *Server { - return &Server{threads: threads, store: store} +type chatEntry struct { + chat store.Chat + thread *threadsv1.Thread +} + +type chatActivity struct { + status chatv1.ChatActivityStatus + activeWorkloadIDs []string +} + +type runnersClient interface { + ListWorkloadsByThread(ctx context.Context, req *runnersv1.ListWorkloadsByThreadRequest, opts ...grpc.CallOption) (*runnersv1.ListWorkloadsByThreadResponse, error) +} + +type identityClient interface { + BatchGetIdentityTypes(ctx context.Context, req *identityv1.BatchGetIdentityTypesRequest, opts ...grpc.CallOption) (*identityv1.BatchGetIdentityTypesResponse, error) +} + +func New(threads threadsv1.ThreadsServiceClient, runners runnersClient, identity identityClient, store chatStore) *Server { + return &Server{threads: threads, runners: runners, identity: identity, store: store} } func (s *Server) CreateChat(ctx context.Context, req *chatv1.CreateChatRequest) (*chatv1.CreateChatResponse, error) { @@ -121,10 +149,18 @@ func (s *Server) GetChats(ctx context.Context, req *chatv1.GetChatsRequest) (*ch statusValue := chatStatusToString(req.GetStatus()) filter.Status = &statusValue } - chats := make([]*chatv1.Chat, 0, int(pageSize)) + countsResp, err := s.threads.GetUnackedMessageCounts(threadsCtx, &threadsv1.GetUnackedMessageCountsRequest{ + ParticipantId: id.IdentityID, + }) + if err != nil { + return nil, mapThreadsError(err) + } + unreadCounts := countsResp.GetCountsByThreadId() + + chatEntries := make([]chatEntry, 0, int(pageSize)) var nextCursor *store.PageCursor - for len(chats) < int(pageSize) { - remaining := pageSize - int32(len(chats)) + for len(chatEntries) < int(pageSize) { + remaining := pageSize - int32(len(chatEntries)) result, err := s.store.ListChats(ctx, organizationID, filter, remaining, cursor) if err != nil { return nil, toStatusError(err) @@ -152,16 +188,59 @@ func (s *Server) GetChats(ctx context.Context, req *chatv1.GetChatsRequest) (*ch if !threadHasParticipant(thread, id.IdentityID) { continue } - chats = append(chats, threadToChat(thread, chat.OrganizationID.String(), stringToChatStatus(chat.Status), chat.Summary)) + chatEntries = append(chatEntries, chatEntry{chat: chat, thread: thread}) } nextCursor = result.NextCursor - if len(chats) >= int(pageSize) || result.NextCursor == nil { + if len(chatEntries) >= int(pageSize) || result.NextCursor == nil { break } cursor = result.NextCursor } + participantIDs := make(map[string]struct{}) + threadsForActivity := make([]*threadsv1.Thread, 0, len(chatEntries)) + for _, entry := range chatEntries { + thread := entry.thread + threadsForActivity = append(threadsForActivity, thread) + for _, participant := range thread.GetParticipants() { + participantID := participant.GetId() + if participantID == "" { + continue + } + participantIDs[participantID] = struct{}{} + } + } + + identityTypes := map[string]identityv1.IdentityType{} + if len(participantIDs) > 0 { + ids := make([]string, 0, len(participantIDs)) + for pid := range participantIDs { + ids = append(ids, pid) + } + resolved, err := s.fetchIdentityTypes(threadsCtx, ids) + if err != nil { + log.Printf("chat: identity types lookup failed: %v", err) + } else { + identityTypes = resolved + } + } + + activityByThread := s.fetchChatActivities(threadsCtx, threadsForActivity, identityTypes) + chats := make([]*chatv1.Chat, 0, len(chatEntries)) + for _, entry := range chatEntries { + threadChat := threadToChat(entry.thread, entry.chat.OrganizationID.String(), stringToChatStatus(entry.chat.Status), entry.chat.Summary) + threadID := entry.thread.GetId() + threadChat.UnreadCount = unreadCounts[threadID] + activity, ok := activityByThread[threadID] + if !ok { + activity = chatActivity{status: chatv1.ChatActivityStatus_CHAT_ACTIVITY_STATUS_UNSPECIFIED} + } + threadChat.ActivityStatus = activity.status + threadChat.ActiveWorkloadIds = activity.activeWorkloadIDs + chats = append(chats, threadChat) + } + nextToken := "" if nextCursor != nil { nextToken = store.EncodePageToken(nextCursor.AfterID) @@ -296,14 +375,18 @@ func (s *Server) MarkAsRead(ctx context.Context, req *chatv1.MarkAsReadRequest) if req.GetChatId() == "" { return nil, status.Error(codes.InvalidArgument, "chat_id is required") } - if len(req.GetMessageIds()) == 0 { - return nil, status.Error(codes.InvalidArgument, "message_ids must not be empty") - } threadsCtx := identity.AppendToOutgoingContext(ctx, id) + messageIDs, err := s.listUnackedMessageIDs(threadsCtx, id.IdentityID, req.GetChatId()) + if err != nil { + return nil, mapThreadsError(err) + } + if len(messageIDs) == 0 { + return &chatv1.MarkAsReadResponse{ReadCount: 0}, nil + } resp, err := s.threads.AckMessages(threadsCtx, &threadsv1.AckMessagesRequest{ ParticipantId: id.IdentityID, - MessageIds: req.GetMessageIds(), + MessageIds: messageIDs, }) if err != nil { return nil, mapThreadsError(err) @@ -343,6 +426,35 @@ func (s *Server) countUnread(ctx context.Context, participantID, chatID string) return count, nil } +func (s *Server) listUnackedMessageIDs(ctx context.Context, participantID, chatID string) ([]string, error) { + var messageIDs []string + var pageToken string + + threadID := chatID + for { + resp, err := s.threads.GetUnackedMessages(ctx, &threadsv1.GetUnackedMessagesRequest{ + ParticipantId: participantID, + ThreadId: &threadID, + PageSize: unackedPageSize, + PageToken: pageToken, + }) + if err != nil { + return nil, err + } + + for _, message := range resp.GetMessages() { + messageIDs = append(messageIDs, message.GetId()) + } + + if resp.GetNextPageToken() == "" { + break + } + pageToken = resp.GetNextPageToken() + } + + return messageIDs, nil +} + func mapThreadsError(err error) error { st, ok := status.FromError(err) if !ok { @@ -439,3 +551,239 @@ func threadHasParticipant(thread *threadsv1.Thread, participantID string) bool { } return false } + +type workloadSummary struct { + latestStatus runnersv1.WorkloadStatus + hasLatest bool + activeWorkloadIDs []string +} + +type threadAgentPair struct { + threadID string + agentID string +} + +type workloadResult struct { + threadID string + agentID string + summary workloadSummary + err error +} + +type workloadAggregate struct { + activeWorkloadIDs []string + running bool + pending bool +} + +func (s *Server) fetchChatActivities(ctx context.Context, threads []*threadsv1.Thread, identityTypes map[string]identityv1.IdentityType) map[string]chatActivity { + activities := make(map[string]chatActivity, len(threads)) + if len(threads) == 0 { + return activities + } + + pairs := make([]threadAgentPair, 0) + for _, thread := range threads { + threadID := thread.GetId() + if threadID == "" { + log.Printf("chat: thread missing id") + continue + } + if thread.GetStatus() == threadsv1.ThreadStatus_THREAD_STATUS_DEGRADED { + activities[threadID] = chatActivity{status: chatv1.ChatActivityStatus_CHAT_ACTIVITY_STATUS_UNSPECIFIED} + continue + } + agentIDs := agentParticipantIDs(thread, identityTypes) + if len(agentIDs) == 0 { + activities[threadID] = chatActivity{status: chatv1.ChatActivityStatus_CHAT_ACTIVITY_STATUS_UNSPECIFIED} + continue + } + for _, agentID := range agentIDs { + pairs = append(pairs, threadAgentPair{threadID: threadID, agentID: agentID}) + } + } + + if len(pairs) == 0 { + return activities + } + + results := make(chan workloadResult, len(pairs)) + sem := make(chan struct{}, workloadsConcurrencyLimit) + var wg sync.WaitGroup + for _, pair := range pairs { + wg.Add(1) + go func(pair threadAgentPair) { + defer wg.Done() + sem <- struct{}{} + summary, err := s.workloadSummaryForAgent(ctx, pair.threadID, pair.agentID) + <-sem + results <- workloadResult{threadID: pair.threadID, agentID: pair.agentID, summary: summary, err: err} + }(pair) + } + go func() { + wg.Wait() + close(results) + }() + + aggregates := make(map[string]*workloadAggregate) + for result := range results { + agg, ok := aggregates[result.threadID] + if !ok { + agg = &workloadAggregate{} + aggregates[result.threadID] = agg + } + if result.err != nil { + log.Printf("chat: runners workloads failed: thread_id=%s agent_id=%s err=%v", result.threadID, result.agentID, result.err) + continue + } + agg.activeWorkloadIDs = append(agg.activeWorkloadIDs, result.summary.activeWorkloadIDs...) + if !result.summary.hasLatest { + continue + } + switch result.summary.latestStatus { + case runnersv1.WorkloadStatus_WORKLOAD_STATUS_RUNNING: + agg.running = true + case runnersv1.WorkloadStatus_WORKLOAD_STATUS_STARTING, + runnersv1.WorkloadStatus_WORKLOAD_STATUS_STOPPING, + runnersv1.WorkloadStatus_WORKLOAD_STATUS_FAILED: + agg.pending = true + case runnersv1.WorkloadStatus_WORKLOAD_STATUS_STOPPED: + // finished + } + } + + for _, thread := range threads { + threadID := thread.GetId() + if threadID == "" { + continue + } + if _, ok := activities[threadID]; ok { + continue + } + agg := aggregates[threadID] + if agg == nil { + activities[threadID] = chatActivity{status: chatv1.ChatActivityStatus_CHAT_ACTIVITY_STATUS_FINISHED} + continue + } + status := chatv1.ChatActivityStatus_CHAT_ACTIVITY_STATUS_FINISHED + if agg.running { + status = chatv1.ChatActivityStatus_CHAT_ACTIVITY_STATUS_RUNNING + } else if agg.pending { + status = chatv1.ChatActivityStatus_CHAT_ACTIVITY_STATUS_PENDING + } + activities[threadID] = chatActivity{status: status, activeWorkloadIDs: agg.activeWorkloadIDs} + } + + return activities +} + +func agentParticipantIDs(thread *threadsv1.Thread, identityTypes map[string]identityv1.IdentityType) []string { + agentIDs := make([]string, 0) + for _, participant := range thread.GetParticipants() { + if participant.GetPassive() { + continue + } + participantID := participant.GetId() + if participantID == "" { + continue + } + if identityTypes[participantID] != identityv1.IdentityType_IDENTITY_TYPE_AGENT { + continue + } + agentIDs = append(agentIDs, participantID) + } + return agentIDs +} + +func (s *Server) workloadSummaryForAgent(ctx context.Context, threadID, agentID string) (workloadSummary, error) { + summary := workloadSummary{} + resp, err := s.runners.ListWorkloadsByThread(ctx, &runnersv1.ListWorkloadsByThreadRequest{ + ThreadId: threadID, + AgentId: &agentID, + PageSize: latestWorkloadPageSize, + }) + if err != nil { + return summary, err + } + workloads := resp.GetWorkloads() + if len(workloads) == 0 { + return summary, nil + } + workload := workloads[0] + if workload == nil { + return summary, fmt.Errorf("workload missing") + } + status := workload.GetStatus() + if err := validateWorkloadStatus(status); err != nil { + return summary, err + } + summary.latestStatus = status + summary.hasLatest = true + if isActiveWorkloadStatus(status) { + workloadID, err := workloadID(workload) + if err != nil { + return summary, err + } + summary.activeWorkloadIDs = append(summary.activeWorkloadIDs, workloadID) + } + return summary, nil +} + +func validateWorkloadStatus(status runnersv1.WorkloadStatus) error { + switch status { + case runnersv1.WorkloadStatus_WORKLOAD_STATUS_STARTING, + runnersv1.WorkloadStatus_WORKLOAD_STATUS_RUNNING, + runnersv1.WorkloadStatus_WORKLOAD_STATUS_STOPPING, + runnersv1.WorkloadStatus_WORKLOAD_STATUS_STOPPED, + runnersv1.WorkloadStatus_WORKLOAD_STATUS_FAILED: + return nil + default: + return fmt.Errorf("unsupported workload status %s", status) + } +} + +func isActiveWorkloadStatus(status runnersv1.WorkloadStatus) bool { + switch status { + case runnersv1.WorkloadStatus_WORKLOAD_STATUS_STARTING, + runnersv1.WorkloadStatus_WORKLOAD_STATUS_RUNNING, + runnersv1.WorkloadStatus_WORKLOAD_STATUS_STOPPING: + return true + default: + return false + } +} + +func workloadID(workload *runnersv1.Workload) (string, error) { + meta := workload.GetMeta() + if meta == nil { + return "", fmt.Errorf("workload metadata missing") + } + if meta.GetId() == "" { + return "", fmt.Errorf("workload id missing") + } + return meta.GetId(), nil +} + +func (s *Server) fetchIdentityTypes(ctx context.Context, ids []string) (map[string]identityv1.IdentityType, error) { + resp, err := s.identity.BatchGetIdentityTypes(ctx, &identityv1.BatchGetIdentityTypesRequest{ + IdentityIds: ids, + }) + if err != nil { + return nil, err + } + + identityTypes := make(map[string]identityv1.IdentityType, len(resp.GetEntries())) + for _, entry := range resp.GetEntries() { + if entry == nil { + log.Printf("chat: identity type entry missing") + continue + } + identityID := entry.GetIdentityId() + if identityID == "" { + log.Printf("chat: identity type entry missing identity_id") + continue + } + identityTypes[identityID] = entry.GetIdentityType() + } + return identityTypes, nil +} diff --git a/internal/server/server_test.go b/internal/server/server_test.go index 5622adb..31e510b 100644 --- a/internal/server/server_test.go +++ b/internal/server/server_test.go @@ -8,6 +8,8 @@ import ( "time" chatv1 "github.com/agynio/chat/gen/go/agynio/api/chat/v1" + identityv1 "github.com/agynio/chat/gen/go/agynio/api/identity/v1" + runnersv1 "github.com/agynio/chat/gen/go/agynio/api/runners/v1" threadsv1 "github.com/agynio/chat/gen/go/agynio/api/threads/v1" "github.com/agynio/chat/internal/identity" "github.com/agynio/chat/internal/store" @@ -20,16 +22,19 @@ import ( ) type mockThreadsClient struct { - createThreadFunc func(ctx context.Context, req *threadsv1.CreateThreadRequest, opts ...grpc.CallOption) (*threadsv1.CreateThreadResponse, error) - archiveThreadFunc func(ctx context.Context, req *threadsv1.ArchiveThreadRequest, opts ...grpc.CallOption) (*threadsv1.ArchiveThreadResponse, error) - addParticipantFunc func(ctx context.Context, req *threadsv1.AddParticipantRequest, opts ...grpc.CallOption) (*threadsv1.AddParticipantResponse, error) - sendMessageFunc func(ctx context.Context, req *threadsv1.SendMessageRequest, opts ...grpc.CallOption) (*threadsv1.SendMessageResponse, error) - getThreadsFunc func(ctx context.Context, req *threadsv1.GetThreadsRequest, opts ...grpc.CallOption) (*threadsv1.GetThreadsResponse, error) - getOrganizationThreadsFunc func(ctx context.Context, req *threadsv1.GetOrganizationThreadsRequest, opts ...grpc.CallOption) (*threadsv1.GetOrganizationThreadsResponse, error) - getThreadFunc func(ctx context.Context, req *threadsv1.GetThreadRequest, opts ...grpc.CallOption) (*threadsv1.GetThreadResponse, error) - getMessagesFunc func(ctx context.Context, req *threadsv1.GetMessagesRequest, opts ...grpc.CallOption) (*threadsv1.GetMessagesResponse, error) - getUnackedMessagesFunc func(ctx context.Context, req *threadsv1.GetUnackedMessagesRequest, opts ...grpc.CallOption) (*threadsv1.GetUnackedMessagesResponse, error) - ackMessagesFunc func(ctx context.Context, req *threadsv1.AckMessagesRequest, opts ...grpc.CallOption) (*threadsv1.AckMessagesResponse, error) + createThreadFunc func(ctx context.Context, req *threadsv1.CreateThreadRequest, opts ...grpc.CallOption) (*threadsv1.CreateThreadResponse, error) + archiveThreadFunc func(ctx context.Context, req *threadsv1.ArchiveThreadRequest, opts ...grpc.CallOption) (*threadsv1.ArchiveThreadResponse, error) + degradeThreadFunc func(ctx context.Context, req *threadsv1.DegradeThreadRequest, opts ...grpc.CallOption) (*threadsv1.DegradeThreadResponse, error) + addParticipantFunc func(ctx context.Context, req *threadsv1.AddParticipantRequest, opts ...grpc.CallOption) (*threadsv1.AddParticipantResponse, error) + sendMessageFunc func(ctx context.Context, req *threadsv1.SendMessageRequest, opts ...grpc.CallOption) (*threadsv1.SendMessageResponse, error) + getThreadsFunc func(ctx context.Context, req *threadsv1.GetThreadsRequest, opts ...grpc.CallOption) (*threadsv1.GetThreadsResponse, error) + listOrganizationThreadsFunc func(ctx context.Context, req *threadsv1.ListOrganizationThreadsRequest, opts ...grpc.CallOption) (*threadsv1.ListOrganizationThreadsResponse, error) + getOrganizationThreadsFunc func(ctx context.Context, req *threadsv1.GetOrganizationThreadsRequest, opts ...grpc.CallOption) (*threadsv1.GetOrganizationThreadsResponse, error) + getThreadFunc func(ctx context.Context, req *threadsv1.GetThreadRequest, opts ...grpc.CallOption) (*threadsv1.GetThreadResponse, error) + getMessagesFunc func(ctx context.Context, req *threadsv1.GetMessagesRequest, opts ...grpc.CallOption) (*threadsv1.GetMessagesResponse, error) + getUnackedMessagesFunc func(ctx context.Context, req *threadsv1.GetUnackedMessagesRequest, opts ...grpc.CallOption) (*threadsv1.GetUnackedMessagesResponse, error) + getUnackedMessageCountsFunc func(ctx context.Context, req *threadsv1.GetUnackedMessageCountsRequest, opts ...grpc.CallOption) (*threadsv1.GetUnackedMessageCountsResponse, error) + ackMessagesFunc func(ctx context.Context, req *threadsv1.AckMessagesRequest, opts ...grpc.CallOption) (*threadsv1.AckMessagesResponse, error) } func (m *mockThreadsClient) CreateThread(ctx context.Context, req *threadsv1.CreateThreadRequest, opts ...grpc.CallOption) (*threadsv1.CreateThreadResponse, error) { @@ -46,6 +51,13 @@ func (m *mockThreadsClient) ArchiveThread(ctx context.Context, req *threadsv1.Ar return m.archiveThreadFunc(ctx, req, opts...) } +func (m *mockThreadsClient) DegradeThread(ctx context.Context, req *threadsv1.DegradeThreadRequest, opts ...grpc.CallOption) (*threadsv1.DegradeThreadResponse, error) { + if m.degradeThreadFunc == nil { + return nil, unexpectedCall("DegradeThread") + } + return m.degradeThreadFunc(ctx, req, opts...) +} + func (m *mockThreadsClient) AddParticipant(ctx context.Context, req *threadsv1.AddParticipantRequest, opts ...grpc.CallOption) (*threadsv1.AddParticipantResponse, error) { if m.addParticipantFunc == nil { return nil, unexpectedCall("AddParticipant") @@ -67,6 +79,13 @@ func (m *mockThreadsClient) GetThreads(ctx context.Context, req *threadsv1.GetTh return m.getThreadsFunc(ctx, req, opts...) } +func (m *mockThreadsClient) ListOrganizationThreads(ctx context.Context, req *threadsv1.ListOrganizationThreadsRequest, opts ...grpc.CallOption) (*threadsv1.ListOrganizationThreadsResponse, error) { + if m.listOrganizationThreadsFunc == nil { + return nil, unexpectedCall("ListOrganizationThreads") + } + return m.listOrganizationThreadsFunc(ctx, req, opts...) +} + func (m *mockThreadsClient) GetOrganizationThreads(ctx context.Context, req *threadsv1.GetOrganizationThreadsRequest, opts ...grpc.CallOption) (*threadsv1.GetOrganizationThreadsResponse, error) { if m.getOrganizationThreadsFunc == nil { return nil, unexpectedCall("GetOrganizationThreads") @@ -95,6 +114,13 @@ func (m *mockThreadsClient) GetUnackedMessages(ctx context.Context, req *threads return m.getUnackedMessagesFunc(ctx, req, opts...) } +func (m *mockThreadsClient) GetUnackedMessageCounts(ctx context.Context, req *threadsv1.GetUnackedMessageCountsRequest, opts ...grpc.CallOption) (*threadsv1.GetUnackedMessageCountsResponse, error) { + if m.getUnackedMessageCountsFunc == nil { + return nil, unexpectedCall("GetUnackedMessageCounts") + } + return m.getUnackedMessageCountsFunc(ctx, req, opts...) +} + func (m *mockThreadsClient) AckMessages(ctx context.Context, req *threadsv1.AckMessagesRequest, opts ...grpc.CallOption) (*threadsv1.AckMessagesResponse, error) { if m.ackMessagesFunc == nil { return nil, unexpectedCall("AckMessages") @@ -102,6 +128,28 @@ func (m *mockThreadsClient) AckMessages(ctx context.Context, req *threadsv1.AckM return m.ackMessagesFunc(ctx, req, opts...) } +type mockRunnersClient struct { + listWorkloadsByThreadFunc func(ctx context.Context, req *runnersv1.ListWorkloadsByThreadRequest, opts ...grpc.CallOption) (*runnersv1.ListWorkloadsByThreadResponse, error) +} + +func (m *mockRunnersClient) ListWorkloadsByThread(ctx context.Context, req *runnersv1.ListWorkloadsByThreadRequest, opts ...grpc.CallOption) (*runnersv1.ListWorkloadsByThreadResponse, error) { + if m.listWorkloadsByThreadFunc == nil { + return nil, unexpectedCall("ListWorkloadsByThread") + } + return m.listWorkloadsByThreadFunc(ctx, req, opts...) +} + +type mockIdentityClient struct { + batchGetIdentityTypesFunc func(ctx context.Context, req *identityv1.BatchGetIdentityTypesRequest, opts ...grpc.CallOption) (*identityv1.BatchGetIdentityTypesResponse, error) +} + +func (m *mockIdentityClient) BatchGetIdentityTypes(ctx context.Context, req *identityv1.BatchGetIdentityTypesRequest, opts ...grpc.CallOption) (*identityv1.BatchGetIdentityTypesResponse, error) { + if m.batchGetIdentityTypesFunc == nil { + return nil, unexpectedCall("BatchGetIdentityTypes") + } + return m.batchGetIdentityTypesFunc(ctx, req, opts...) +} + type mockStore struct { createChatFunc func(ctx context.Context, threadID, organizationID uuid.UUID) (store.Chat, error) getChatFunc func(ctx context.Context, threadID uuid.UUID) (store.Chat, error) @@ -200,25 +248,25 @@ func requireTimestamp(t *testing.T, got *timestamppb.Timestamp, want time.Time) } func TestCreateChatRequiresIdentity(t *testing.T) { - srv := New(&mockThreadsClient{}, &mockStore{}) + srv := New(&mockThreadsClient{}, &mockRunnersClient{}, &mockIdentityClient{}, &mockStore{}) _, err := srv.CreateChat(context.Background(), &chatv1.CreateChatRequest{ParticipantIds: []string{"user-2"}, OrganizationId: uuid.NewString()}) requireStatusCode(t, err, codes.Unauthenticated) } func TestCreateChatRejectsEmptyParticipants(t *testing.T) { - srv := New(&mockThreadsClient{}, &mockStore{}) + srv := New(&mockThreadsClient{}, &mockRunnersClient{}, &mockIdentityClient{}, &mockStore{}) _, err := srv.CreateChat(contextWithIdentity("user-1"), &chatv1.CreateChatRequest{OrganizationId: uuid.NewString()}) requireStatusCode(t, err, codes.InvalidArgument) } func TestCreateChatRequiresOrganizationID(t *testing.T) { - srv := New(&mockThreadsClient{}, &mockStore{}) + srv := New(&mockThreadsClient{}, &mockRunnersClient{}, &mockIdentityClient{}, &mockStore{}) _, err := srv.CreateChat(contextWithIdentity("user-1"), &chatv1.CreateChatRequest{ParticipantIds: []string{"user-2"}}) requireStatusCode(t, err, codes.InvalidArgument) } func TestCreateChatRejectsInvalidOrganizationID(t *testing.T) { - srv := New(&mockThreadsClient{}, &mockStore{}) + srv := New(&mockThreadsClient{}, &mockRunnersClient{}, &mockIdentityClient{}, &mockStore{}) _, err := srv.CreateChat(contextWithIdentity("user-1"), &chatv1.CreateChatRequest{ ParticipantIds: []string{"user-2"}, OrganizationId: "not-a-uuid", @@ -249,7 +297,7 @@ func TestCreateChatDeduplicatesParticipants(t *testing.T) { }, } - srv := New(threads, chatStore) + srv := New(threads, &mockRunnersClient{}, &mockIdentityClient{}, chatStore) resp, err := srv.CreateChat(ctx, &chatv1.CreateChatRequest{ParticipantIds: []string{"user-2", "user-1", "user-3"}, OrganizationId: orgID.String()}) if err != nil { t.Fatalf("CreateChat returned error: %v", err) @@ -328,7 +376,7 @@ func TestCreateChatReturnsThreadWhenStoreFails(t *testing.T) { }, } - srv := New(threads, chatStore) + srv := New(threads, &mockRunnersClient{}, &mockIdentityClient{}, chatStore) resp, err := srv.CreateChat(ctx, &chatv1.CreateChatRequest{ParticipantIds: []string{"user-2"}, OrganizationId: orgID.String()}) if err != nil { t.Fatalf("CreateChat returned error: %v", err) @@ -348,13 +396,13 @@ func TestCreateChatReturnsThreadWhenStoreFails(t *testing.T) { } func TestGetChatsRequiresOrganizationID(t *testing.T) { - srv := New(&mockThreadsClient{}, &mockStore{}) + srv := New(&mockThreadsClient{}, &mockRunnersClient{}, &mockIdentityClient{}, &mockStore{}) _, err := srv.GetChats(contextWithIdentity("user-1"), &chatv1.GetChatsRequest{}) requireStatusCode(t, err, codes.InvalidArgument) } func TestGetChatsRejectsInvalidPageToken(t *testing.T) { - srv := New(&mockThreadsClient{}, &mockStore{}) + srv := New(&mockThreadsClient{}, &mockRunnersClient{}, &mockIdentityClient{}, &mockStore{}) _, err := srv.GetChats(contextWithIdentity("user-1"), &chatv1.GetChatsRequest{ OrganizationId: uuid.NewString(), PageToken: "not-a-token", @@ -368,6 +416,8 @@ func TestGetChatsUsesStoreAndThreads(t *testing.T) { cursorID := uuid.New() threadID1 := uuid.New() threadID2 := uuid.New() + agentID := "agent-1" + workloadID := "workload-1" createdAt := time.Date(2024, 5, 6, 7, 8, 9, 0, time.UTC) summary := "needs follow-up" @@ -403,7 +453,7 @@ func TestGetChatsUsesStoreAndThreads(t *testing.T) { Id: threadID1.String(), Participants: []*threadsv1.Participant{ {Id: "user-1", JoinedAt: timestamppb.New(createdAt)}, - {Id: "user-2", JoinedAt: timestamppb.New(createdAt)}, + {Id: agentID, JoinedAt: timestamppb.New(createdAt)}, }, CreatedAt: timestamppb.New(createdAt), UpdatedAt: timestamppb.New(createdAt), @@ -419,9 +469,77 @@ func TestGetChatsUsesStoreAndThreads(t *testing.T) { }, }, nil }, + getUnackedMessageCountsFunc: func(ctx context.Context, req *threadsv1.GetUnackedMessageCountsRequest, opts ...grpc.CallOption) (*threadsv1.GetUnackedMessageCountsResponse, error) { + requireOutgoingIdentity(t, ctx, "user-1", "user") + if req.GetParticipantId() != "user-1" { + return nil, status.Errorf(codes.InvalidArgument, "unexpected participant %q", req.GetParticipantId()) + } + return &threadsv1.GetUnackedMessageCountsResponse{ + CountsByThreadId: map[string]int32{ + threadID1.String(): 4, + threadID2.String(): 1, + }, + }, nil + }, + } + + workloadCalls := 0 + runners := &mockRunnersClient{ + listWorkloadsByThreadFunc: func(ctx context.Context, req *runnersv1.ListWorkloadsByThreadRequest, opts ...grpc.CallOption) (*runnersv1.ListWorkloadsByThreadResponse, error) { + workloadCalls++ + requireOutgoingIdentity(t, ctx, "user-1", "user") + if req.GetThreadId() != threadID1.String() { + return nil, status.Errorf(codes.InvalidArgument, "unexpected thread id %q", req.GetThreadId()) + } + if req.GetAgentId() != agentID { + return nil, status.Errorf(codes.InvalidArgument, "unexpected agent id %q", req.GetAgentId()) + } + if req.GetPageSize() != 1 { + return nil, status.Errorf(codes.InvalidArgument, "expected page size 1, got %d", req.GetPageSize()) + } + if req.GetPageToken() != "" { + return nil, status.Errorf(codes.InvalidArgument, "expected empty page token, got %q", req.GetPageToken()) + } + return &runnersv1.ListWorkloadsByThreadResponse{ + Workloads: []*runnersv1.Workload{ + { + Meta: &runnersv1.EntityMeta{ + Id: workloadID, + CreatedAt: timestamppb.New(createdAt), + UpdatedAt: timestamppb.New(createdAt), + }, + ThreadId: threadID1.String(), + AgentId: agentID, + Status: runnersv1.WorkloadStatus_WORKLOAD_STATUS_RUNNING, + }, + }, + }, nil + }, + } + + identityClient := &mockIdentityClient{ + batchGetIdentityTypesFunc: func(ctx context.Context, req *identityv1.BatchGetIdentityTypesRequest, opts ...grpc.CallOption) (*identityv1.BatchGetIdentityTypesResponse, error) { + requireOutgoingIdentity(t, ctx, "user-1", "user") + gotIDs := make(map[string]struct{}, len(req.GetIdentityIds())) + for _, id := range req.GetIdentityIds() { + gotIDs[id] = struct{}{} + } + if _, ok := gotIDs["user-1"]; !ok { + return nil, status.Error(codes.InvalidArgument, "missing user-1 identity") + } + if _, ok := gotIDs[agentID]; !ok { + return nil, status.Error(codes.InvalidArgument, "missing agent identity") + } + return &identityv1.BatchGetIdentityTypesResponse{ + Entries: []*identityv1.IdentityTypeEntry{ + {IdentityId: "user-1", IdentityType: identityv1.IdentityType_IDENTITY_TYPE_USER}, + {IdentityId: agentID, IdentityType: identityv1.IdentityType_IDENTITY_TYPE_AGENT}, + }, + }, nil + }, } - srv := New(threads, chatStore) + srv := New(threads, runners, identityClient, chatStore) pageToken := store.EncodePageToken(cursorID) resp, err := srv.GetChats(ctx, &chatv1.GetChatsRequest{ OrganizationId: orgID.String(), @@ -464,6 +582,93 @@ func TestGetChatsUsesStoreAndThreads(t *testing.T) { if resp.GetChats()[0].GetSummary() != summary { t.Fatalf("expected summary %q, got %q", summary, resp.GetChats()[0].GetSummary()) } + if resp.GetChats()[0].GetUnreadCount() != 1 { + t.Fatalf("expected unread count 1, got %d", resp.GetChats()[0].GetUnreadCount()) + } + if resp.GetChats()[1].GetUnreadCount() != 4 { + t.Fatalf("expected unread count 4, got %d", resp.GetChats()[1].GetUnreadCount()) + } + if resp.GetChats()[0].GetActivityStatus() != chatv1.ChatActivityStatus_CHAT_ACTIVITY_STATUS_UNSPECIFIED { + t.Fatalf("expected activity status unspecified, got %s", resp.GetChats()[0].GetActivityStatus()) + } + if resp.GetChats()[1].GetActivityStatus() != chatv1.ChatActivityStatus_CHAT_ACTIVITY_STATUS_RUNNING { + t.Fatalf("expected activity status running, got %s", resp.GetChats()[1].GetActivityStatus()) + } + if !reflect.DeepEqual(resp.GetChats()[1].GetActiveWorkloadIds(), []string{workloadID}) { + t.Fatalf("expected active workload ids [%s], got %v", workloadID, resp.GetChats()[1].GetActiveWorkloadIds()) + } + if workloadCalls != 1 { + t.Fatalf("expected 1 ListWorkloadsByThread call, got %d", workloadCalls) + } +} + +func TestGetChatsWorkloadFailureReturnsFinished(t *testing.T) { + ctx := contextWithIdentity("user-1") + orgID := uuid.New() + threadID := uuid.New() + agentID := "agent-1" + createdAt := time.Date(2024, 5, 9, 10, 11, 12, 0, time.UTC) + + chatStore := &mockStore{ + listChatsFunc: func(ctx context.Context, organizationID uuid.UUID, filter store.ChatListFilter, pageSize int32, cursor *store.PageCursor) (store.ChatListResult, error) { + return store.ChatListResult{ + Chats: []store.Chat{{ThreadID: threadID, OrganizationID: orgID, CreatedAt: createdAt, Status: "open"}}, + }, nil + }, + } + + threads := &mockThreadsClient{ + getThreadsFunc: func(ctx context.Context, req *threadsv1.GetThreadsRequest, opts ...grpc.CallOption) (*threadsv1.GetThreadsResponse, error) { + return &threadsv1.GetThreadsResponse{ + Threads: []*threadsv1.Thread{ + { + Id: threadID.String(), + Participants: []*threadsv1.Participant{ + {Id: "user-1", JoinedAt: timestamppb.New(createdAt)}, + {Id: agentID, JoinedAt: timestamppb.New(createdAt)}, + }, + CreatedAt: timestamppb.New(createdAt), + UpdatedAt: timestamppb.New(createdAt), + }, + }, + }, nil + }, + getUnackedMessageCountsFunc: func(ctx context.Context, req *threadsv1.GetUnackedMessageCountsRequest, opts ...grpc.CallOption) (*threadsv1.GetUnackedMessageCountsResponse, error) { + return &threadsv1.GetUnackedMessageCountsResponse{CountsByThreadId: map[string]int32{}}, nil + }, + } + + runners := &mockRunnersClient{ + listWorkloadsByThreadFunc: func(ctx context.Context, req *runnersv1.ListWorkloadsByThreadRequest, opts ...grpc.CallOption) (*runnersv1.ListWorkloadsByThreadResponse, error) { + return nil, status.Error(codes.Unavailable, "runner down") + }, + } + + identityClient := &mockIdentityClient{ + batchGetIdentityTypesFunc: func(ctx context.Context, req *identityv1.BatchGetIdentityTypesRequest, opts ...grpc.CallOption) (*identityv1.BatchGetIdentityTypesResponse, error) { + return &identityv1.BatchGetIdentityTypesResponse{ + Entries: []*identityv1.IdentityTypeEntry{ + {IdentityId: "user-1", IdentityType: identityv1.IdentityType_IDENTITY_TYPE_USER}, + {IdentityId: agentID, IdentityType: identityv1.IdentityType_IDENTITY_TYPE_AGENT}, + }, + }, nil + }, + } + + srv := New(threads, runners, identityClient, chatStore) + resp, err := srv.GetChats(ctx, &chatv1.GetChatsRequest{OrganizationId: orgID.String(), PageSize: 1}) + if err != nil { + t.Fatalf("GetChats returned error: %v", err) + } + if len(resp.GetChats()) != 1 { + t.Fatalf("expected 1 chat, got %d", len(resp.GetChats())) + } + if resp.GetChats()[0].GetActivityStatus() != chatv1.ChatActivityStatus_CHAT_ACTIVITY_STATUS_FINISHED { + t.Fatalf("expected activity status finished, got %s", resp.GetChats()[0].GetActivityStatus()) + } + if len(resp.GetChats()[0].GetActiveWorkloadIds()) != 0 { + t.Fatalf("expected empty active workload ids, got %v", resp.GetChats()[0].GetActiveWorkloadIds()) + } } func TestGetChatsAppliesStatusFilter(t *testing.T) { @@ -497,9 +702,22 @@ func TestGetChatsAppliesStatusFilter(t *testing.T) { }, }, nil }, + getUnackedMessageCountsFunc: func(ctx context.Context, req *threadsv1.GetUnackedMessageCountsRequest, opts ...grpc.CallOption) (*threadsv1.GetUnackedMessageCountsResponse, error) { + return &threadsv1.GetUnackedMessageCountsResponse{CountsByThreadId: map[string]int32{}}, nil + }, } - srv := New(threads, chatStore) + identityClient := &mockIdentityClient{ + batchGetIdentityTypesFunc: func(ctx context.Context, req *identityv1.BatchGetIdentityTypesRequest, opts ...grpc.CallOption) (*identityv1.BatchGetIdentityTypesResponse, error) { + return &identityv1.BatchGetIdentityTypesResponse{ + Entries: []*identityv1.IdentityTypeEntry{ + {IdentityId: "user-1", IdentityType: identityv1.IdentityType_IDENTITY_TYPE_USER}, + }, + }, nil + }, + } + + srv := New(threads, &mockRunnersClient{}, identityClient, chatStore) _, err := srv.GetChats(ctx, &chatv1.GetChatsRequest{OrganizationId: orgID.String(), Status: chatv1.ChatStatus_CHAT_STATUS_CLOSED}) if err != nil { t.Fatalf("GetChats returned error: %v", err) @@ -560,6 +778,7 @@ func TestGetChatsFillsPageAfterFiltering(t *testing.T) { } threadCalls := 0 + unackedCountsCalls := 0 threads := &mockThreadsClient{ getThreadsFunc: func(ctx context.Context, req *threadsv1.GetThreadsRequest, opts ...grpc.CallOption) (*threadsv1.GetThreadsResponse, error) { threadCalls++ @@ -602,9 +821,23 @@ func TestGetChatsFillsPageAfterFiltering(t *testing.T) { return nil, status.Errorf(codes.Internal, "unexpected GetThreads call %d", threadCalls) } }, + getUnackedMessageCountsFunc: func(ctx context.Context, req *threadsv1.GetUnackedMessageCountsRequest, opts ...grpc.CallOption) (*threadsv1.GetUnackedMessageCountsResponse, error) { + unackedCountsCalls++ + return &threadsv1.GetUnackedMessageCountsResponse{CountsByThreadId: map[string]int32{}}, nil + }, } - srv := New(threads, chatStore) + identityClient := &mockIdentityClient{ + batchGetIdentityTypesFunc: func(ctx context.Context, req *identityv1.BatchGetIdentityTypesRequest, opts ...grpc.CallOption) (*identityv1.BatchGetIdentityTypesResponse, error) { + entries := make([]*identityv1.IdentityTypeEntry, 0, len(req.GetIdentityIds())) + for _, identityID := range req.GetIdentityIds() { + entries = append(entries, &identityv1.IdentityTypeEntry{IdentityId: identityID, IdentityType: identityv1.IdentityType_IDENTITY_TYPE_USER}) + } + return &identityv1.BatchGetIdentityTypesResponse{Entries: entries}, nil + }, + } + + srv := New(threads, &mockRunnersClient{}, identityClient, chatStore) resp, err := srv.GetChats(ctx, &chatv1.GetChatsRequest{OrganizationId: orgID.String(), PageSize: 2}) if err != nil { t.Fatalf("GetChats returned error: %v", err) @@ -612,6 +845,9 @@ func TestGetChatsFillsPageAfterFiltering(t *testing.T) { if listCalls != 2 { t.Fatalf("expected 2 ListChats calls, got %d", listCalls) } + if unackedCountsCalls != 1 { + t.Fatalf("expected 1 GetUnackedMessageCounts call, got %d", unackedCountsCalls) + } if len(resp.GetChats()) != 2 { t.Fatalf("expected 2 chats, got %d", len(resp.GetChats())) } @@ -655,9 +891,20 @@ func TestGetChatsFiltersNonParticipantThreads(t *testing.T) { }, }, nil }, + getUnackedMessageCountsFunc: func(ctx context.Context, req *threadsv1.GetUnackedMessageCountsRequest, opts ...grpc.CallOption) (*threadsv1.GetUnackedMessageCountsResponse, error) { + return &threadsv1.GetUnackedMessageCountsResponse{CountsByThreadId: map[string]int32{}}, nil + }, + } + + identityClient := &mockIdentityClient{ + batchGetIdentityTypesFunc: func(ctx context.Context, req *identityv1.BatchGetIdentityTypesRequest, opts ...grpc.CallOption) (*identityv1.BatchGetIdentityTypesResponse, error) { + return &identityv1.BatchGetIdentityTypesResponse{ + Entries: []*identityv1.IdentityTypeEntry{{IdentityId: "user-2", IdentityType: identityv1.IdentityType_IDENTITY_TYPE_USER}}, + }, nil + }, } - srv := New(threads, chatStore) + srv := New(threads, &mockRunnersClient{}, identityClient, chatStore) resp, err := srv.GetChats(ctx, &chatv1.GetChatsRequest{OrganizationId: orgID.String()}) if err != nil { t.Fatalf("GetChats returned error: %v", err) @@ -668,13 +915,13 @@ func TestGetChatsFiltersNonParticipantThreads(t *testing.T) { } func TestUpdateChatRequiresIdentity(t *testing.T) { - srv := New(&mockThreadsClient{}, &mockStore{}) + srv := New(&mockThreadsClient{}, &mockRunnersClient{}, &mockIdentityClient{}, &mockStore{}) _, err := srv.UpdateChat(context.Background(), &chatv1.UpdateChatRequest{ChatId: uuid.NewString()}) requireStatusCode(t, err, codes.Unauthenticated) } func TestUpdateChatRejectsInvalidChatID(t *testing.T) { - srv := New(&mockThreadsClient{}, &mockStore{}) + srv := New(&mockThreadsClient{}, &mockRunnersClient{}, &mockIdentityClient{}, &mockStore{}) _, err := srv.UpdateChat(contextWithIdentity("user-1"), &chatv1.UpdateChatRequest{ChatId: "not-a-uuid"}) requireStatusCode(t, err, codes.InvalidArgument) } @@ -716,7 +963,7 @@ func TestUpdateChatUpdatesStatus(t *testing.T) { }, } - srv := New(threads, chatStore) + srv := New(threads, &mockRunnersClient{}, &mockIdentityClient{}, chatStore) resp, err := srv.UpdateChat(ctx, &chatv1.UpdateChatRequest{ChatId: threadID.String(), Status: chatv1.ChatStatus_CHAT_STATUS_CLOSED}) if err != nil { t.Fatalf("UpdateChat returned error: %v", err) @@ -767,7 +1014,7 @@ func TestUpdateChatUpdatesSummary(t *testing.T) { }, } - srv := New(threads, chatStore) + srv := New(threads, &mockRunnersClient{}, &mockIdentityClient{}, chatStore) resp, err := srv.UpdateChat(ctx, &chatv1.UpdateChatRequest{ChatId: threadID.String(), Summary: &summary}) if err != nil { t.Fatalf("UpdateChat returned error: %v", err) @@ -809,7 +1056,7 @@ func TestUpdateChatNotFound(t *testing.T) { }, } - srv := New(threads, chatStore) + srv := New(threads, &mockRunnersClient{}, &mockIdentityClient{}, chatStore) _, err := srv.UpdateChat(ctx, &chatv1.UpdateChatRequest{ChatId: threadID.String(), Status: chatv1.ChatStatus_CHAT_STATUS_OPEN}) requireStatusCode(t, err, codes.NotFound) } @@ -867,7 +1114,7 @@ func TestGetMessagesAggregatesUnread(t *testing.T) { }, } - srv := New(threads, &mockStore{}) + srv := New(threads, &mockRunnersClient{}, &mockIdentityClient{}, &mockStore{}) resp, err := srv.GetMessages(ctx, &chatv1.GetMessagesRequest{ChatId: chatID, PageSize: 2, PageToken: "page-1"}) if err != nil { t.Fatalf("GetMessages returned error: %v", err) @@ -907,7 +1154,7 @@ func TestGetMessagesAggregatesUnread(t *testing.T) { } func TestSendMessageValidation(t *testing.T) { - srv := New(&mockThreadsClient{}, &mockStore{}) + srv := New(&mockThreadsClient{}, &mockRunnersClient{}, &mockIdentityClient{}, &mockStore{}) _, err := srv.SendMessage(contextWithIdentity("user-1"), &chatv1.SendMessageRequest{ChatId: "chat-1"}) requireStatusCode(t, err, codes.InvalidArgument) } @@ -941,7 +1188,7 @@ func TestSendMessageDelegates(t *testing.T) { }, } - srv := New(threads, &mockStore{}) + srv := New(threads, &mockRunnersClient{}, &mockIdentityClient{}, &mockStore{}) resp, err := srv.SendMessage(ctx, &chatv1.SendMessageRequest{ChatId: "chat-1", Body: "hello", FileIds: []string{"file-1"}}) if err != nil { t.Fatalf("SendMessage returned error: %v", err) @@ -955,11 +1202,10 @@ func TestSendMessageDelegates(t *testing.T) { func TestMarkAsReadValidation(t *testing.T) { ctx := contextWithIdentity("user-1") for name, req := range map[string]*chatv1.MarkAsReadRequest{ - "missing chat id": {MessageIds: []string{"msg-1"}}, - "missing message ids": {ChatId: "chat-1"}, + "missing chat id": {}, } { t.Run(name, func(t *testing.T) { - srv := New(&mockThreadsClient{}, &mockStore{}) + srv := New(&mockThreadsClient{}, &mockRunnersClient{}, &mockIdentityClient{}, &mockStore{}) _, err := srv.MarkAsRead(ctx, req) requireStatusCode(t, err, codes.InvalidArgument) }) @@ -968,26 +1214,55 @@ func TestMarkAsReadValidation(t *testing.T) { func TestMarkAsReadDelegates(t *testing.T) { ctx := contextWithIdentity("user-1") + pageTokens := []string{} threads := &mockThreadsClient{ + getUnackedMessagesFunc: func(ctx context.Context, req *threadsv1.GetUnackedMessagesRequest, opts ...grpc.CallOption) (*threadsv1.GetUnackedMessagesResponse, error) { + requireOutgoingIdentity(t, ctx, "user-1", "user") + if req.GetParticipantId() != "user-1" { + return nil, status.Errorf(codes.InvalidArgument, "unexpected participant %q", req.GetParticipantId()) + } + pageTokens = append(pageTokens, req.GetPageToken()) + switch req.GetPageToken() { + case "": + return &threadsv1.GetUnackedMessagesResponse{ + Messages: []*threadsv1.Message{ + {Id: "msg-1", ThreadId: "chat-1"}, + {Id: "msg-2", ThreadId: "chat-1"}, + }, + NextPageToken: "page-2", + }, nil + case "page-2": + return &threadsv1.GetUnackedMessagesResponse{ + Messages: []*threadsv1.Message{ + {Id: "msg-3", ThreadId: "chat-1"}, + }, + }, nil + default: + return nil, status.Errorf(codes.InvalidArgument, "unexpected page token %q", req.GetPageToken()) + } + }, ackMessagesFunc: func(ctx context.Context, req *threadsv1.AckMessagesRequest, opts ...grpc.CallOption) (*threadsv1.AckMessagesResponse, error) { requireOutgoingIdentity(t, ctx, "user-1", "user") if req.GetParticipantId() != "user-1" { return nil, status.Errorf(codes.InvalidArgument, "unexpected participant %q", req.GetParticipantId()) } - if !reflect.DeepEqual(req.GetMessageIds(), []string{"msg-1", "msg-2"}) { + if !reflect.DeepEqual(req.GetMessageIds(), []string{"msg-1", "msg-2", "msg-3"}) { return nil, status.Errorf(codes.InvalidArgument, "unexpected message ids %v", req.GetMessageIds()) } - return &threadsv1.AckMessagesResponse{AckedCount: 2}, nil + return &threadsv1.AckMessagesResponse{AckedCount: 3}, nil }, } - srv := New(threads, &mockStore{}) - resp, err := srv.MarkAsRead(ctx, &chatv1.MarkAsReadRequest{ChatId: "chat-1", MessageIds: []string{"msg-1", "msg-2"}}) + srv := New(threads, &mockRunnersClient{}, &mockIdentityClient{}, &mockStore{}) + resp, err := srv.MarkAsRead(ctx, &chatv1.MarkAsReadRequest{ChatId: "chat-1", MessageIds: []string{"ignored"}}) if err != nil { t.Fatalf("MarkAsRead returned error: %v", err) } - if resp.GetReadCount() != 2 { - t.Fatalf("expected read count 2, got %d", resp.GetReadCount()) + if resp.GetReadCount() != 3 { + t.Fatalf("expected read count 3, got %d", resp.GetReadCount()) + } + if !reflect.DeepEqual(pageTokens, []string{"", "page-2"}) { + t.Fatalf("unexpected page tokens %v", pageTokens) } } diff --git a/scripts/devspace-startup.sh b/scripts/devspace-startup.sh index 7166288..2d62016 100755 --- a/scripts/devspace-startup.sh +++ b/scripts/devspace-startup.sh @@ -4,7 +4,7 @@ set -eu echo "=== DevSpace startup ===" echo "Generating protobuf types..." -buf generate buf.build/agynio/api --path agynio/api/chat/v1 --path agynio/api/threads/v1 +buf generate buf.build/agynio/api --path agynio/api/chat/v1 --path agynio/api/threads/v1 --path agynio/api/runners/v1 --path agynio/api/runner/v1 --path agynio/api/identity/v1 echo "Downloading Go modules..." go mod download diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go index d77085c..be56a19 100644 --- a/test/e2e/e2e_test.go +++ b/test/e2e/e2e_test.go @@ -309,12 +309,11 @@ func TestMarkAsRead(t *testing.T) { chat := createChat(t, env, readerCtx, orgID, otherID) - msg1 := sendMessage(t, env, senderCtx, chat.GetId(), "msg1") - msg2 := sendMessage(t, env, senderCtx, chat.GetId(), "msg2") + sendMessage(t, env, senderCtx, chat.GetId(), "msg1") + sendMessage(t, env, senderCtx, chat.GetId(), "msg2") resp, err := env.client.MarkAsRead(readerCtx, &chatv1.MarkAsReadRequest{ - ChatId: chat.GetId(), - MessageIds: []string{msg1.GetId(), msg2.GetId()}, + ChatId: chat.GetId(), }) require.NoError(t, err) assert.Equal(t, int32(2), resp.GetReadCount()) @@ -332,19 +331,13 @@ func TestMarkAsRead_Idempotent(t *testing.T) { senderCtx := ctxWithIdentity(otherID, "user") chat := createChat(t, env, readerCtx, orgID, otherID) - msg := sendMessage(t, env, senderCtx, chat.GetId(), "msg") + sendMessage(t, env, senderCtx, chat.GetId(), "msg") - resp1, err := env.client.MarkAsRead(readerCtx, &chatv1.MarkAsReadRequest{ - ChatId: chat.GetId(), - MessageIds: []string{msg.GetId()}, - }) + resp1, err := env.client.MarkAsRead(readerCtx, &chatv1.MarkAsReadRequest{ChatId: chat.GetId()}) require.NoError(t, err) assert.Equal(t, int32(1), resp1.GetReadCount()) - resp2, err := env.client.MarkAsRead(readerCtx, &chatv1.MarkAsReadRequest{ - ChatId: chat.GetId(), - MessageIds: []string{msg.GetId()}, - }) + resp2, err := env.client.MarkAsRead(readerCtx, &chatv1.MarkAsReadRequest{ChatId: chat.GetId()}) require.NoError(t, err) assert.Equal(t, int32(0), resp2.GetReadCount()) } @@ -359,23 +352,23 @@ func TestMarkAsRead_MissingChatID(t *testing.T) { requireStatusCode(t, err, codes.InvalidArgument) } -func TestMarkAsRead_EmptyMessageIDs(t *testing.T) { +func TestMarkAsRead_NoUnackedMessages(t *testing.T) { env := setupEnv(t) _, ctx := testIdentity() + orgID := uniqueID() - _, err := env.client.MarkAsRead(ctx, &chatv1.MarkAsReadRequest{ - ChatId: uniqueID(), - MessageIds: []string{}, - }) - requireStatusCode(t, err, codes.InvalidArgument) + chat := createChat(t, env, ctx, orgID, uniqueID()) + + resp, err := env.client.MarkAsRead(ctx, &chatv1.MarkAsReadRequest{ChatId: chat.GetId()}) + require.NoError(t, err) + assert.Equal(t, int32(0), resp.GetReadCount()) } func TestMarkAsRead_MissingIdentity(t *testing.T) { env := setupEnv(t) _, err := env.client.MarkAsRead(context.Background(), &chatv1.MarkAsReadRequest{ - ChatId: uniqueID(), - MessageIds: []string{uniqueID()}, + ChatId: uniqueID(), }) requireStatusCode(t, err, codes.Unauthenticated) } diff --git a/test/e2e/inprocess_env_test.go b/test/e2e/inprocess_env_test.go index db39b78..d8fee19 100644 --- a/test/e2e/inprocess_env_test.go +++ b/test/e2e/inprocess_env_test.go @@ -11,6 +11,8 @@ import ( "time" chatv1 "github.com/agynio/chat/gen/go/agynio/api/chat/v1" + identityv1 "github.com/agynio/chat/gen/go/agynio/api/identity/v1" + runnersv1 "github.com/agynio/chat/gen/go/agynio/api/runners/v1" threadsv1 "github.com/agynio/chat/gen/go/agynio/api/threads/v1" "github.com/agynio/chat/internal/server" "github.com/agynio/chat/internal/store" @@ -27,9 +29,11 @@ func setupInProcessEnv(t *testing.T) *testEnv { t.Helper() threads := newInMemoryThreads() + runners := newInMemoryRunners() + identity := newInMemoryIdentity() chatStore := newInMemoryStore() grpcServer := grpc.NewServer() - chatv1.RegisterChatServiceServer(grpcServer, server.New(threads, chatStore)) + chatv1.RegisterChatServiceServer(grpcServer, server.New(threads, runners, identity, chatStore)) lis, err := net.Listen("tcp", "127.0.0.1:0") if err != nil { @@ -172,6 +176,36 @@ func newInMemoryThreads() *inMemoryThreads { return &inMemoryThreads{threads: make(map[string]*threadState)} } +type inMemoryRunners struct{} + +func newInMemoryRunners() *inMemoryRunners { + return &inMemoryRunners{} +} + +func (r *inMemoryRunners) ListWorkloadsByThread(ctx context.Context, req *runnersv1.ListWorkloadsByThreadRequest, opts ...grpc.CallOption) (*runnersv1.ListWorkloadsByThreadResponse, error) { + if _, err := outgoingIdentityID(ctx); err != nil { + return nil, err + } + return &runnersv1.ListWorkloadsByThreadResponse{}, nil +} + +type inMemoryIdentity struct{} + +func newInMemoryIdentity() *inMemoryIdentity { + return &inMemoryIdentity{} +} + +func (i *inMemoryIdentity) BatchGetIdentityTypes(ctx context.Context, req *identityv1.BatchGetIdentityTypesRequest, opts ...grpc.CallOption) (*identityv1.BatchGetIdentityTypesResponse, error) { + if _, err := outgoingIdentityID(ctx); err != nil { + return nil, err + } + entries := make([]*identityv1.IdentityTypeEntry, 0, len(req.GetIdentityIds())) + for _, identityID := range req.GetIdentityIds() { + entries = append(entries, &identityv1.IdentityTypeEntry{IdentityId: identityID, IdentityType: identityv1.IdentityType_IDENTITY_TYPE_USER}) + } + return &identityv1.BatchGetIdentityTypesResponse{Entries: entries}, nil +} + func (t *inMemoryThreads) CreateThread(ctx context.Context, req *threadsv1.CreateThreadRequest, opts ...grpc.CallOption) (*threadsv1.CreateThreadResponse, error) { callerID, err := outgoingIdentityID(ctx) if err != nil { @@ -233,6 +267,29 @@ func (t *inMemoryThreads) ArchiveThread(ctx context.Context, req *threadsv1.Arch return nil, status.Error(codes.Unimplemented, "ArchiveThread not implemented") } +func (t *inMemoryThreads) DegradeThread(ctx context.Context, req *threadsv1.DegradeThreadRequest, opts ...grpc.CallOption) (*threadsv1.DegradeThreadResponse, error) { + if _, err := outgoingIdentityID(ctx); err != nil { + return nil, err + } + + threadID := req.GetThreadId() + if threadID == "" { + return nil, status.Error(codes.InvalidArgument, "thread_id is required") + } + + t.mu.Lock() + state, ok := t.threads[threadID] + if ok { + state.thread.Status = threadsv1.ThreadStatus_THREAD_STATUS_DEGRADED + } + t.mu.Unlock() + + if !ok { + return nil, status.Error(codes.NotFound, "thread not found") + } + return &threadsv1.DegradeThreadResponse{Thread: state.thread}, nil +} + func (t *inMemoryThreads) AddParticipant(ctx context.Context, req *threadsv1.AddParticipantRequest, opts ...grpc.CallOption) (*threadsv1.AddParticipantResponse, error) { if _, err := outgoingIdentityID(ctx); err != nil { return nil, err @@ -307,6 +364,13 @@ func (t *inMemoryThreads) GetThreads(ctx context.Context, req *threadsv1.GetThre return &threadsv1.GetThreadsResponse{Threads: items, NextPageToken: nextToken}, nil } +func (t *inMemoryThreads) ListOrganizationThreads(ctx context.Context, req *threadsv1.ListOrganizationThreadsRequest, opts ...grpc.CallOption) (*threadsv1.ListOrganizationThreadsResponse, error) { + if _, err := outgoingIdentityID(ctx); err != nil { + return nil, err + } + return nil, status.Error(codes.Unimplemented, "ListOrganizationThreads not implemented") +} + func (t *inMemoryThreads) GetOrganizationThreads(ctx context.Context, req *threadsv1.GetOrganizationThreadsRequest, opts ...grpc.CallOption) (*threadsv1.GetOrganizationThreadsResponse, error) { if _, err := outgoingIdentityID(ctx); err != nil { return nil, err @@ -401,6 +465,39 @@ func (t *inMemoryThreads) GetUnackedMessages(ctx context.Context, req *threadsv1 return &threadsv1.GetUnackedMessagesResponse{Messages: items, NextPageToken: nextToken}, nil } +func (t *inMemoryThreads) GetUnackedMessageCounts(ctx context.Context, req *threadsv1.GetUnackedMessageCountsRequest, opts ...grpc.CallOption) (*threadsv1.GetUnackedMessageCountsResponse, error) { + if _, err := outgoingIdentityID(ctx); err != nil { + return nil, err + } + + participantID := req.GetParticipantId() + if participantID == "" { + return nil, status.Error(codes.InvalidArgument, "participant_id is required") + } + + counts := make(map[string]int32) + t.mu.Lock() + for _, state := range t.threads { + if !threadHasParticipant(state.thread, participantID) { + continue + } + var count int32 + ackedByParticipant := state.acked[participantID] + for _, msg := range state.messages { + if ackedByParticipant != nil && ackedByParticipant[msg.GetId()] { + continue + } + count++ + } + if count > 0 { + counts[state.thread.GetId()] = count + } + } + t.mu.Unlock() + + return &threadsv1.GetUnackedMessageCountsResponse{CountsByThreadId: counts}, nil +} + func (t *inMemoryThreads) AckMessages(ctx context.Context, req *threadsv1.AckMessagesRequest, opts ...grpc.CallOption) (*threadsv1.AckMessagesResponse, error) { if _, err := outgoingIdentityID(ctx); err != nil { return nil, err