diff --git a/api/docs/html/pub/sandbox/v1alpha1/index.html b/api/docs/html/pub/sandbox/v1alpha1/index.html
index 6d036f0..d09fa49 100644
--- a/api/docs/html/pub/sandbox/v1alpha1/index.html
+++ b/api/docs/html/pub/sandbox/v1alpha1/index.html
@@ -218,6 +218,22 @@
Table of Contents
MSandbox
+
+ MStartSandboxRequest
+
+
+
+ MStartSandboxResponse
+
+
+
+ MStopSandboxRequest
+
+
+
+ MStopSandboxResponse
+
+
ESandboxState
@@ -594,6 +610,102 @@ Sandbox
+ StartSandboxRequest
+
+
+
+
+
+ Field | Type | Label | Description |
+
+
+
+
+ id |
+ string |
+ |
+ |
+
+
+
+
+
+
+
+
+
+ StartSandboxResponse
+
+
+
+
+
+ Field | Type | Label | Description |
+
+
+
+
+ sandbox |
+ Sandbox |
+ |
+ |
+
+
+
+
+
+
+
+
+
+ StopSandboxRequest
+
+
+
+
+
+ Field | Type | Label | Description |
+
+
+
+
+ id |
+ string |
+ |
+ |
+
+
+
+
+
+
+
+
+
+ StopSandboxResponse
+
+
+
+
+
+ Field | Type | Label | Description |
+
+
+
+
+ sandbox |
+ Sandbox |
+ |
+ |
+
+
+
+
+
+
+
+
+
SandboxState
@@ -685,6 +797,22 @@ SandboxService
|
+
+ StartSandbox |
+ StartSandboxRequest |
+ StartSandboxResponse |
+ Starts sandbox. If sandbox is already starting or running, it does nothing.
+May return error if sandbox is stopping. |
+
+
+
+ StopSandbox |
+ StopSandboxRequest |
+ StopSandboxResponse |
+ Stops sandbox. If sandbox is already stopped, it does nothing.
+May return error if sandbox is starting. |
+
+
diff --git a/api/docs/markdown/pub/sandbox/v1alpha1/index.md b/api/docs/markdown/pub/sandbox/v1alpha1/index.md
index 50138d9..5babe54 100644
--- a/api/docs/markdown/pub/sandbox/v1alpha1/index.md
+++ b/api/docs/markdown/pub/sandbox/v1alpha1/index.md
@@ -14,6 +14,10 @@
- [ListSandboxesRequest](#pub-sandbox-v1alpha1-ListSandboxesRequest)
- [ListSandboxesResponse](#pub-sandbox-v1alpha1-ListSandboxesResponse)
- [Sandbox](#pub-sandbox-v1alpha1-Sandbox)
+ - [StartSandboxRequest](#pub-sandbox-v1alpha1-StartSandboxRequest)
+ - [StartSandboxResponse](#pub-sandbox-v1alpha1-StartSandboxResponse)
+ - [StopSandboxRequest](#pub-sandbox-v1alpha1-StopSandboxRequest)
+ - [StopSandboxResponse](#pub-sandbox-v1alpha1-StopSandboxResponse)
- [SandboxState](#pub-sandbox-v1alpha1-SandboxState)
@@ -192,6 +196,66 @@ API to manage Jetify Sandbox environments
+
+
+
+### StartSandboxRequest
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| id | [string](#string) | | |
+
+
+
+
+
+
+
+
+### StartSandboxResponse
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| sandbox | [Sandbox](#pub-sandbox-v1alpha1-Sandbox) | | |
+
+
+
+
+
+
+
+
+### StopSandboxRequest
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| id | [string](#string) | | |
+
+
+
+
+
+
+
+
+### StopSandboxResponse
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| sandbox | [Sandbox](#pub-sandbox-v1alpha1-Sandbox) | | |
+
+
+
+
+
@@ -226,6 +290,8 @@ SandboxState represents the state of a sandbox.
| GetSandbox | [GetSandboxRequest](#pub-sandbox-v1alpha1-GetSandboxRequest) | [GetSandboxResponse](#pub-sandbox-v1alpha1-GetSandboxResponse) | |
| DeleteSandbox | [DeleteSandboxRequest](#pub-sandbox-v1alpha1-DeleteSandboxRequest) | [DeleteSandboxResponse](#pub-sandbox-v1alpha1-DeleteSandboxResponse) | |
| ListSandboxes | [ListSandboxesRequest](#pub-sandbox-v1alpha1-ListSandboxesRequest) | [ListSandboxesResponse](#pub-sandbox-v1alpha1-ListSandboxesResponse) | |
+| StartSandbox | [StartSandboxRequest](#pub-sandbox-v1alpha1-StartSandboxRequest) | [StartSandboxResponse](#pub-sandbox-v1alpha1-StartSandboxResponse) | Starts sandbox. If sandbox is already starting or running, it does nothing. May return error if sandbox is stopping. |
+| StopSandbox | [StopSandboxRequest](#pub-sandbox-v1alpha1-StopSandboxRequest) | [StopSandboxResponse](#pub-sandbox-v1alpha1-StopSandboxResponse) | Stops sandbox. If sandbox is already stopped, it does nothing. May return error if sandbox is starting. |
diff --git a/api/go/gen/pub/sandbox/v1alpha1/sandbox.pb.go b/api/go/gen/pub/sandbox/v1alpha1/sandbox.pb.go
index 170e37f..e679c98 100644
--- a/api/go/gen/pub/sandbox/v1alpha1/sandbox.pb.go
+++ b/api/go/gen/pub/sandbox/v1alpha1/sandbox.pb.go
@@ -519,6 +519,194 @@ func (x *ListSandboxesResponse) GetSandboxes() []*Sandbox {
return nil
}
+type StartSandboxRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+}
+
+func (x *StartSandboxRequest) Reset() {
+ *x = StartSandboxRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StartSandboxRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StartSandboxRequest) ProtoMessage() {}
+
+func (x *StartSandboxRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StartSandboxRequest.ProtoReflect.Descriptor instead.
+func (*StartSandboxRequest) Descriptor() ([]byte, []int) {
+ return file_pub_sandbox_v1alpha1_sandbox_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *StartSandboxRequest) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+type StartSandboxResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Sandbox *Sandbox `protobuf:"bytes,1,opt,name=sandbox,proto3" json:"sandbox,omitempty"`
+}
+
+func (x *StartSandboxResponse) Reset() {
+ *x = StartSandboxResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StartSandboxResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StartSandboxResponse) ProtoMessage() {}
+
+func (x *StartSandboxResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StartSandboxResponse.ProtoReflect.Descriptor instead.
+func (*StartSandboxResponse) Descriptor() ([]byte, []int) {
+ return file_pub_sandbox_v1alpha1_sandbox_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *StartSandboxResponse) GetSandbox() *Sandbox {
+ if x != nil {
+ return x.Sandbox
+ }
+ return nil
+}
+
+type StopSandboxRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+}
+
+func (x *StopSandboxRequest) Reset() {
+ *x = StopSandboxRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StopSandboxRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StopSandboxRequest) ProtoMessage() {}
+
+func (x *StopSandboxRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StopSandboxRequest.ProtoReflect.Descriptor instead.
+func (*StopSandboxRequest) Descriptor() ([]byte, []int) {
+ return file_pub_sandbox_v1alpha1_sandbox_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *StopSandboxRequest) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+type StopSandboxResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Sandbox *Sandbox `protobuf:"bytes,1,opt,name=sandbox,proto3" json:"sandbox,omitempty"`
+}
+
+func (x *StopSandboxResponse) Reset() {
+ *x = StopSandboxResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StopSandboxResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StopSandboxResponse) ProtoMessage() {}
+
+func (x *StopSandboxResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[11]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StopSandboxResponse.ProtoReflect.Descriptor instead.
+func (*StopSandboxResponse) Descriptor() ([]byte, []int) {
+ return file_pub_sandbox_v1alpha1_sandbox_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *StopSandboxResponse) GetSandbox() *Sandbox {
+ if x != nil {
+ return x.Sandbox
+ }
+ return nil
+}
+
type Sandbox struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -546,7 +734,7 @@ type Sandbox struct {
func (x *Sandbox) Reset() {
*x = Sandbox{}
if protoimpl.UnsafeEnabled {
- mi := &file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[8]
+ mi := &file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -559,7 +747,7 @@ func (x *Sandbox) String() string {
func (*Sandbox) ProtoMessage() {}
func (x *Sandbox) ProtoReflect() protoreflect.Message {
- mi := &file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[8]
+ mi := &file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -572,7 +760,7 @@ func (x *Sandbox) ProtoReflect() protoreflect.Message {
// Deprecated: Use Sandbox.ProtoReflect.Descriptor instead.
func (*Sandbox) Descriptor() ([]byte, []int) {
- return file_pub_sandbox_v1alpha1_sandbox_proto_rawDescGZIP(), []int{8}
+ return file_pub_sandbox_v1alpha1_sandbox_proto_rawDescGZIP(), []int{12}
}
func (x *Sandbox) GetId() string {
@@ -713,85 +901,112 @@ var file_pub_sandbox_v1alpha1_sandbox_proto_rawDesc = []byte{
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61, 0x6e,
0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x61,
0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x65, 0x73,
- 0x22, 0x82, 0x03, 0x0a, 0x07, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x0e, 0x0a, 0x02,
- 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x14,
- 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67,
- 0x5f, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x65, 0x78, 0x74, 0x65,
- 0x72, 0x6e, 0x61, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x67, 0x12, 0x12,
- 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x65,
- 0x70, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x64, 0x69, 0x72, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x64, 0x69, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65,
- 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03,
- 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x38,
- 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e,
- 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c,
- 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74,
- 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65,
- 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
- 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
- 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65,
- 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
- 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
- 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41,
- 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x2a, 0xb6, 0x01, 0x0a, 0x0c, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f,
- 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x41, 0x4e, 0x44, 0x42, 0x4f,
- 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
- 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x41, 0x4e, 0x44, 0x42, 0x4f, 0x58,
- 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10,
- 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x41, 0x4e, 0x44, 0x42, 0x4f, 0x58, 0x5f, 0x53, 0x54, 0x41,
- 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16,
- 0x53, 0x41, 0x4e, 0x44, 0x42, 0x4f, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x54,
- 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x41, 0x4e, 0x44,
- 0x42, 0x4f, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45,
- 0x44, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x41, 0x4e, 0x44, 0x42, 0x4f, 0x58, 0x5f, 0x53,
- 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x05, 0x32, 0xb9,
- 0x03, 0x0a, 0x0e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
- 0x65, 0x12, 0x68, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62,
- 0x6f, 0x78, 0x12, 0x2a, 0x2e, 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
- 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b,
- 0x2e, 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61,
- 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64,
- 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x0a, 0x47,
- 0x65, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x27, 0x2e, 0x70, 0x75, 0x62, 0x2e,
- 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
- 0x2e, 0x47, 0x65, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
- 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x61, 0x6e,
- 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x0d,
- 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x2a, 0x2e,
- 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c,
- 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62,
- 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x75, 0x62, 0x2e,
- 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
- 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x02, 0x12, 0x6d, 0x0a, 0x0d, 0x4c,
- 0x69, 0x73, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x70,
+ 0x22, 0x25, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4f, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x72, 0x74,
+ 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x37, 0x0a, 0x07, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1d, 0x2e, 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76,
+ 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52,
+ 0x07, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x22, 0x24, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x70,
+ 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e,
+ 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4e,
+ 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61, 0x6e,
+ 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x07, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x22, 0x82,
+ 0x03, 0x0a, 0x07, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x65, 0x78,
+ 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x74,
+ 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e,
+ 0x61, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04,
+ 0x72, 0x65, 0x70, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f,
+ 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x64, 0x69, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x06, 0x73, 0x75, 0x62, 0x64, 0x69, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72,
+ 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x38, 0x0a, 0x05,
+ 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x75,
+ 0x62, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 0x31, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
+ 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
+ 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63,
+ 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f,
+ 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
+ 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12,
+ 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x2a, 0xb6, 0x01, 0x0a, 0x0c, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53,
+ 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x41, 0x4e, 0x44, 0x42, 0x4f, 0x58, 0x5f,
+ 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
+ 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x41, 0x4e, 0x44, 0x42, 0x4f, 0x58, 0x5f, 0x53,
+ 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12,
+ 0x19, 0x0a, 0x15, 0x53, 0x41, 0x4e, 0x44, 0x42, 0x4f, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45,
+ 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x41,
+ 0x4e, 0x44, 0x42, 0x4f, 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x54, 0x4f, 0x50,
+ 0x50, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x41, 0x4e, 0x44, 0x42, 0x4f,
+ 0x58, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10,
+ 0x04, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x41, 0x4e, 0x44, 0x42, 0x4f, 0x58, 0x5f, 0x53, 0x54, 0x41,
+ 0x54, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x05, 0x32, 0x88, 0x05, 0x0a,
+ 0x0e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
+ 0x68, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
+ 0x12, 0x2a, 0x2e, 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76,
+ 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70,
0x75, 0x62, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
- 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x65,
- 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x75, 0x62, 0x2e, 0x73,
+ 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f,
+ 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x0a, 0x47, 0x65, 0x74,
+ 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x27, 0x2e, 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47,
+ 0x65, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x28, 0x2e, 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76,
+ 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62,
+ 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x0d, 0x44, 0x65,
+ 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x2a, 0x2e, 0x70, 0x75,
+ 0x62, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
+ 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x02, 0x12, 0x6d, 0x0a, 0x0d, 0x4c, 0x69, 0x73,
+ 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x70, 0x75, 0x62,
+ 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x65, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61, 0x6e,
+ 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69,
+ 0x73, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x12, 0x67, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x72,
+ 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x29, 0x2e, 0x70, 0x75, 0x62, 0x2e, 0x73,
0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e,
- 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x65, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x90, 0x02, 0x01, 0x42, 0xdc, 0x01, 0x0a, 0x18, 0x63,
- 0x6f, 0x6d, 0x2e, 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76,
- 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0c, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
- 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x6f, 0x2e, 0x6a, 0x65, 0x74, 0x70,
- 0x61, 0x63, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x78, 0x69, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69,
- 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x75, 0x62, 0x2f, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
- 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f,
- 0x78, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x53, 0x58, 0xaa,
- 0x02, 0x14, 0x50, 0x75, 0x62, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x56, 0x31,
- 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x14, 0x50, 0x75, 0x62, 0x5c, 0x53, 0x61, 0x6e,
- 0x64, 0x62, 0x6f, 0x78, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x20,
- 0x50, 0x75, 0x62, 0x5c, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5c, 0x56, 0x31, 0x61, 0x6c,
- 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
- 0xea, 0x02, 0x16, 0x50, 0x75, 0x62, 0x3a, 0x3a, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x3a,
- 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x33,
+ 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f,
+ 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74,
+ 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x12, 0x64, 0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
+ 0x12, 0x28, 0x2e, 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76,
+ 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x61, 0x6e, 0x64,
+ 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x70, 0x75, 0x62,
+ 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xdc, 0x01, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e,
+ 0x70, 0x75, 0x62, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c,
+ 0x70, 0x68, 0x61, 0x31, 0x42, 0x0c, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x50, 0x72, 0x6f,
+ 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x6f, 0x2e, 0x6a, 0x65, 0x74, 0x70, 0x61, 0x63, 0x6b,
+ 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x78, 0x69, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x65,
+ 0x6e, 0x2f, 0x70, 0x75, 0x62, 0x2f, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2f, 0x76, 0x31,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x76, 0x31,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x53, 0x58, 0xaa, 0x02, 0x14, 0x50,
+ 0x75, 0x62, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70,
+ 0x68, 0x61, 0x31, 0xca, 0x02, 0x14, 0x50, 0x75, 0x62, 0x5c, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f,
+ 0x78, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x20, 0x50, 0x75, 0x62,
+ 0x5c, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
+ 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x16,
+ 0x50, 0x75, 0x62, 0x3a, 0x3a, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x3a, 0x3a, 0x56, 0x31,
+ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -807,7 +1022,7 @@ func file_pub_sandbox_v1alpha1_sandbox_proto_rawDescGZIP() []byte {
}
var file_pub_sandbox_v1alpha1_sandbox_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
+var file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
var file_pub_sandbox_v1alpha1_sandbox_proto_goTypes = []any{
(SandboxState)(0), // 0: pub.sandbox.v1alpha1.SandboxState
(*CreateSandboxRequest)(nil), // 1: pub.sandbox.v1alpha1.CreateSandboxRequest
@@ -818,31 +1033,41 @@ var file_pub_sandbox_v1alpha1_sandbox_proto_goTypes = []any{
(*DeleteSandboxResponse)(nil), // 6: pub.sandbox.v1alpha1.DeleteSandboxResponse
(*ListSandboxesRequest)(nil), // 7: pub.sandbox.v1alpha1.ListSandboxesRequest
(*ListSandboxesResponse)(nil), // 8: pub.sandbox.v1alpha1.ListSandboxesResponse
- (*Sandbox)(nil), // 9: pub.sandbox.v1alpha1.Sandbox
- nil, // 10: pub.sandbox.v1alpha1.CreateSandboxRequest.EnvironmentVariablesEntry
- (*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp
+ (*StartSandboxRequest)(nil), // 9: pub.sandbox.v1alpha1.StartSandboxRequest
+ (*StartSandboxResponse)(nil), // 10: pub.sandbox.v1alpha1.StartSandboxResponse
+ (*StopSandboxRequest)(nil), // 11: pub.sandbox.v1alpha1.StopSandboxRequest
+ (*StopSandboxResponse)(nil), // 12: pub.sandbox.v1alpha1.StopSandboxResponse
+ (*Sandbox)(nil), // 13: pub.sandbox.v1alpha1.Sandbox
+ nil, // 14: pub.sandbox.v1alpha1.CreateSandboxRequest.EnvironmentVariablesEntry
+ (*timestamppb.Timestamp)(nil), // 15: google.protobuf.Timestamp
}
var file_pub_sandbox_v1alpha1_sandbox_proto_depIdxs = []int32{
- 10, // 0: pub.sandbox.v1alpha1.CreateSandboxRequest.environment_variables:type_name -> pub.sandbox.v1alpha1.CreateSandboxRequest.EnvironmentVariablesEntry
- 9, // 1: pub.sandbox.v1alpha1.CreateSandboxResponse.sandbox:type_name -> pub.sandbox.v1alpha1.Sandbox
- 9, // 2: pub.sandbox.v1alpha1.GetSandboxResponse.sandbox:type_name -> pub.sandbox.v1alpha1.Sandbox
- 9, // 3: pub.sandbox.v1alpha1.ListSandboxesResponse.sandboxes:type_name -> pub.sandbox.v1alpha1.Sandbox
- 0, // 4: pub.sandbox.v1alpha1.Sandbox.state:type_name -> pub.sandbox.v1alpha1.SandboxState
- 11, // 5: pub.sandbox.v1alpha1.Sandbox.created_at:type_name -> google.protobuf.Timestamp
- 11, // 6: pub.sandbox.v1alpha1.Sandbox.updated_at:type_name -> google.protobuf.Timestamp
- 1, // 7: pub.sandbox.v1alpha1.SandboxService.CreateSandbox:input_type -> pub.sandbox.v1alpha1.CreateSandboxRequest
- 3, // 8: pub.sandbox.v1alpha1.SandboxService.GetSandbox:input_type -> pub.sandbox.v1alpha1.GetSandboxRequest
- 5, // 9: pub.sandbox.v1alpha1.SandboxService.DeleteSandbox:input_type -> pub.sandbox.v1alpha1.DeleteSandboxRequest
- 7, // 10: pub.sandbox.v1alpha1.SandboxService.ListSandboxes:input_type -> pub.sandbox.v1alpha1.ListSandboxesRequest
- 2, // 11: pub.sandbox.v1alpha1.SandboxService.CreateSandbox:output_type -> pub.sandbox.v1alpha1.CreateSandboxResponse
- 4, // 12: pub.sandbox.v1alpha1.SandboxService.GetSandbox:output_type -> pub.sandbox.v1alpha1.GetSandboxResponse
- 6, // 13: pub.sandbox.v1alpha1.SandboxService.DeleteSandbox:output_type -> pub.sandbox.v1alpha1.DeleteSandboxResponse
- 8, // 14: pub.sandbox.v1alpha1.SandboxService.ListSandboxes:output_type -> pub.sandbox.v1alpha1.ListSandboxesResponse
- 11, // [11:15] is the sub-list for method output_type
- 7, // [7:11] is the sub-list for method input_type
- 7, // [7:7] is the sub-list for extension type_name
- 7, // [7:7] is the sub-list for extension extendee
- 0, // [0:7] is the sub-list for field type_name
+ 14, // 0: pub.sandbox.v1alpha1.CreateSandboxRequest.environment_variables:type_name -> pub.sandbox.v1alpha1.CreateSandboxRequest.EnvironmentVariablesEntry
+ 13, // 1: pub.sandbox.v1alpha1.CreateSandboxResponse.sandbox:type_name -> pub.sandbox.v1alpha1.Sandbox
+ 13, // 2: pub.sandbox.v1alpha1.GetSandboxResponse.sandbox:type_name -> pub.sandbox.v1alpha1.Sandbox
+ 13, // 3: pub.sandbox.v1alpha1.ListSandboxesResponse.sandboxes:type_name -> pub.sandbox.v1alpha1.Sandbox
+ 13, // 4: pub.sandbox.v1alpha1.StartSandboxResponse.sandbox:type_name -> pub.sandbox.v1alpha1.Sandbox
+ 13, // 5: pub.sandbox.v1alpha1.StopSandboxResponse.sandbox:type_name -> pub.sandbox.v1alpha1.Sandbox
+ 0, // 6: pub.sandbox.v1alpha1.Sandbox.state:type_name -> pub.sandbox.v1alpha1.SandboxState
+ 15, // 7: pub.sandbox.v1alpha1.Sandbox.created_at:type_name -> google.protobuf.Timestamp
+ 15, // 8: pub.sandbox.v1alpha1.Sandbox.updated_at:type_name -> google.protobuf.Timestamp
+ 1, // 9: pub.sandbox.v1alpha1.SandboxService.CreateSandbox:input_type -> pub.sandbox.v1alpha1.CreateSandboxRequest
+ 3, // 10: pub.sandbox.v1alpha1.SandboxService.GetSandbox:input_type -> pub.sandbox.v1alpha1.GetSandboxRequest
+ 5, // 11: pub.sandbox.v1alpha1.SandboxService.DeleteSandbox:input_type -> pub.sandbox.v1alpha1.DeleteSandboxRequest
+ 7, // 12: pub.sandbox.v1alpha1.SandboxService.ListSandboxes:input_type -> pub.sandbox.v1alpha1.ListSandboxesRequest
+ 9, // 13: pub.sandbox.v1alpha1.SandboxService.StartSandbox:input_type -> pub.sandbox.v1alpha1.StartSandboxRequest
+ 11, // 14: pub.sandbox.v1alpha1.SandboxService.StopSandbox:input_type -> pub.sandbox.v1alpha1.StopSandboxRequest
+ 2, // 15: pub.sandbox.v1alpha1.SandboxService.CreateSandbox:output_type -> pub.sandbox.v1alpha1.CreateSandboxResponse
+ 4, // 16: pub.sandbox.v1alpha1.SandboxService.GetSandbox:output_type -> pub.sandbox.v1alpha1.GetSandboxResponse
+ 6, // 17: pub.sandbox.v1alpha1.SandboxService.DeleteSandbox:output_type -> pub.sandbox.v1alpha1.DeleteSandboxResponse
+ 8, // 18: pub.sandbox.v1alpha1.SandboxService.ListSandboxes:output_type -> pub.sandbox.v1alpha1.ListSandboxesResponse
+ 10, // 19: pub.sandbox.v1alpha1.SandboxService.StartSandbox:output_type -> pub.sandbox.v1alpha1.StartSandboxResponse
+ 12, // 20: pub.sandbox.v1alpha1.SandboxService.StopSandbox:output_type -> pub.sandbox.v1alpha1.StopSandboxResponse
+ 15, // [15:21] is the sub-list for method output_type
+ 9, // [9:15] is the sub-list for method input_type
+ 9, // [9:9] is the sub-list for extension type_name
+ 9, // [9:9] is the sub-list for extension extendee
+ 0, // [0:9] is the sub-list for field type_name
}
func init() { file_pub_sandbox_v1alpha1_sandbox_proto_init() }
@@ -948,6 +1173,54 @@ func file_pub_sandbox_v1alpha1_sandbox_proto_init() {
}
}
file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[8].Exporter = func(v any, i int) any {
+ switch v := v.(*StartSandboxRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[9].Exporter = func(v any, i int) any {
+ switch v := v.(*StartSandboxResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[10].Exporter = func(v any, i int) any {
+ switch v := v.(*StopSandboxRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[11].Exporter = func(v any, i int) any {
+ switch v := v.(*StopSandboxResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pub_sandbox_v1alpha1_sandbox_proto_msgTypes[12].Exporter = func(v any, i int) any {
switch v := v.(*Sandbox); i {
case 0:
return &v.state
@@ -966,7 +1239,7 @@ func file_pub_sandbox_v1alpha1_sandbox_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_pub_sandbox_v1alpha1_sandbox_proto_rawDesc,
NumEnums: 1,
- NumMessages: 10,
+ NumMessages: 14,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/api/go/gen/pub/sandbox/v1alpha1/sandboxv1alpha1connect/sandbox.connect.go b/api/go/gen/pub/sandbox/v1alpha1/sandboxv1alpha1connect/sandbox.connect.go
index baca7b5..e771449 100644
--- a/api/go/gen/pub/sandbox/v1alpha1/sandboxv1alpha1connect/sandbox.connect.go
+++ b/api/go/gen/pub/sandbox/v1alpha1/sandboxv1alpha1connect/sandbox.connect.go
@@ -48,6 +48,12 @@ const (
// SandboxServiceListSandboxesProcedure is the fully-qualified name of the SandboxService's
// ListSandboxes RPC.
SandboxServiceListSandboxesProcedure = "/pub.sandbox.v1alpha1.SandboxService/ListSandboxes"
+ // SandboxServiceStartSandboxProcedure is the fully-qualified name of the SandboxService's
+ // StartSandbox RPC.
+ SandboxServiceStartSandboxProcedure = "/pub.sandbox.v1alpha1.SandboxService/StartSandbox"
+ // SandboxServiceStopSandboxProcedure is the fully-qualified name of the SandboxService's
+ // StopSandbox RPC.
+ SandboxServiceStopSandboxProcedure = "/pub.sandbox.v1alpha1.SandboxService/StopSandbox"
)
// These variables are the protoreflect.Descriptor objects for the RPCs defined in this package.
@@ -57,6 +63,8 @@ var (
sandboxServiceGetSandboxMethodDescriptor = sandboxServiceServiceDescriptor.Methods().ByName("GetSandbox")
sandboxServiceDeleteSandboxMethodDescriptor = sandboxServiceServiceDescriptor.Methods().ByName("DeleteSandbox")
sandboxServiceListSandboxesMethodDescriptor = sandboxServiceServiceDescriptor.Methods().ByName("ListSandboxes")
+ sandboxServiceStartSandboxMethodDescriptor = sandboxServiceServiceDescriptor.Methods().ByName("StartSandbox")
+ sandboxServiceStopSandboxMethodDescriptor = sandboxServiceServiceDescriptor.Methods().ByName("StopSandbox")
)
// SandboxServiceClient is a client for the pub.sandbox.v1alpha1.SandboxService service.
@@ -65,6 +73,12 @@ type SandboxServiceClient interface {
GetSandbox(context.Context, *connect.Request[v1alpha1.GetSandboxRequest]) (*connect.Response[v1alpha1.GetSandboxResponse], error)
DeleteSandbox(context.Context, *connect.Request[v1alpha1.DeleteSandboxRequest]) (*connect.Response[v1alpha1.DeleteSandboxResponse], error)
ListSandboxes(context.Context, *connect.Request[v1alpha1.ListSandboxesRequest]) (*connect.Response[v1alpha1.ListSandboxesResponse], error)
+ // Starts sandbox. If sandbox is already starting or running, it does nothing.
+ // May return error if sandbox is stopping.
+ StartSandbox(context.Context, *connect.Request[v1alpha1.StartSandboxRequest]) (*connect.Response[v1alpha1.StartSandboxResponse], error)
+ // Stops sandbox. If sandbox is already stopped, it does nothing.
+ // May return error if sandbox is starting.
+ StopSandbox(context.Context, *connect.Request[v1alpha1.StopSandboxRequest]) (*connect.Response[v1alpha1.StopSandboxResponse], error)
}
// NewSandboxServiceClient constructs a client for the pub.sandbox.v1alpha1.SandboxService service.
@@ -103,6 +117,18 @@ func NewSandboxServiceClient(httpClient connect.HTTPClient, baseURL string, opts
connect.WithIdempotency(connect.IdempotencyNoSideEffects),
connect.WithClientOptions(opts...),
),
+ startSandbox: connect.NewClient[v1alpha1.StartSandboxRequest, v1alpha1.StartSandboxResponse](
+ httpClient,
+ baseURL+SandboxServiceStartSandboxProcedure,
+ connect.WithSchema(sandboxServiceStartSandboxMethodDescriptor),
+ connect.WithClientOptions(opts...),
+ ),
+ stopSandbox: connect.NewClient[v1alpha1.StopSandboxRequest, v1alpha1.StopSandboxResponse](
+ httpClient,
+ baseURL+SandboxServiceStopSandboxProcedure,
+ connect.WithSchema(sandboxServiceStopSandboxMethodDescriptor),
+ connect.WithClientOptions(opts...),
+ ),
}
}
@@ -112,6 +138,8 @@ type sandboxServiceClient struct {
getSandbox *connect.Client[v1alpha1.GetSandboxRequest, v1alpha1.GetSandboxResponse]
deleteSandbox *connect.Client[v1alpha1.DeleteSandboxRequest, v1alpha1.DeleteSandboxResponse]
listSandboxes *connect.Client[v1alpha1.ListSandboxesRequest, v1alpha1.ListSandboxesResponse]
+ startSandbox *connect.Client[v1alpha1.StartSandboxRequest, v1alpha1.StartSandboxResponse]
+ stopSandbox *connect.Client[v1alpha1.StopSandboxRequest, v1alpha1.StopSandboxResponse]
}
// CreateSandbox calls pub.sandbox.v1alpha1.SandboxService.CreateSandbox.
@@ -134,12 +162,28 @@ func (c *sandboxServiceClient) ListSandboxes(ctx context.Context, req *connect.R
return c.listSandboxes.CallUnary(ctx, req)
}
+// StartSandbox calls pub.sandbox.v1alpha1.SandboxService.StartSandbox.
+func (c *sandboxServiceClient) StartSandbox(ctx context.Context, req *connect.Request[v1alpha1.StartSandboxRequest]) (*connect.Response[v1alpha1.StartSandboxResponse], error) {
+ return c.startSandbox.CallUnary(ctx, req)
+}
+
+// StopSandbox calls pub.sandbox.v1alpha1.SandboxService.StopSandbox.
+func (c *sandboxServiceClient) StopSandbox(ctx context.Context, req *connect.Request[v1alpha1.StopSandboxRequest]) (*connect.Response[v1alpha1.StopSandboxResponse], error) {
+ return c.stopSandbox.CallUnary(ctx, req)
+}
+
// SandboxServiceHandler is an implementation of the pub.sandbox.v1alpha1.SandboxService service.
type SandboxServiceHandler interface {
CreateSandbox(context.Context, *connect.Request[v1alpha1.CreateSandboxRequest]) (*connect.Response[v1alpha1.CreateSandboxResponse], error)
GetSandbox(context.Context, *connect.Request[v1alpha1.GetSandboxRequest]) (*connect.Response[v1alpha1.GetSandboxResponse], error)
DeleteSandbox(context.Context, *connect.Request[v1alpha1.DeleteSandboxRequest]) (*connect.Response[v1alpha1.DeleteSandboxResponse], error)
ListSandboxes(context.Context, *connect.Request[v1alpha1.ListSandboxesRequest]) (*connect.Response[v1alpha1.ListSandboxesResponse], error)
+ // Starts sandbox. If sandbox is already starting or running, it does nothing.
+ // May return error if sandbox is stopping.
+ StartSandbox(context.Context, *connect.Request[v1alpha1.StartSandboxRequest]) (*connect.Response[v1alpha1.StartSandboxResponse], error)
+ // Stops sandbox. If sandbox is already stopped, it does nothing.
+ // May return error if sandbox is starting.
+ StopSandbox(context.Context, *connect.Request[v1alpha1.StopSandboxRequest]) (*connect.Response[v1alpha1.StopSandboxResponse], error)
}
// NewSandboxServiceHandler builds an HTTP handler from the service implementation. It returns the
@@ -174,6 +218,18 @@ func NewSandboxServiceHandler(svc SandboxServiceHandler, opts ...connect.Handler
connect.WithIdempotency(connect.IdempotencyNoSideEffects),
connect.WithHandlerOptions(opts...),
)
+ sandboxServiceStartSandboxHandler := connect.NewUnaryHandler(
+ SandboxServiceStartSandboxProcedure,
+ svc.StartSandbox,
+ connect.WithSchema(sandboxServiceStartSandboxMethodDescriptor),
+ connect.WithHandlerOptions(opts...),
+ )
+ sandboxServiceStopSandboxHandler := connect.NewUnaryHandler(
+ SandboxServiceStopSandboxProcedure,
+ svc.StopSandbox,
+ connect.WithSchema(sandboxServiceStopSandboxMethodDescriptor),
+ connect.WithHandlerOptions(opts...),
+ )
return "/pub.sandbox.v1alpha1.SandboxService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
switch r.URL.Path {
case SandboxServiceCreateSandboxProcedure:
@@ -184,6 +240,10 @@ func NewSandboxServiceHandler(svc SandboxServiceHandler, opts ...connect.Handler
sandboxServiceDeleteSandboxHandler.ServeHTTP(w, r)
case SandboxServiceListSandboxesProcedure:
sandboxServiceListSandboxesHandler.ServeHTTP(w, r)
+ case SandboxServiceStartSandboxProcedure:
+ sandboxServiceStartSandboxHandler.ServeHTTP(w, r)
+ case SandboxServiceStopSandboxProcedure:
+ sandboxServiceStopSandboxHandler.ServeHTTP(w, r)
default:
http.NotFound(w, r)
}
@@ -208,3 +268,11 @@ func (UnimplementedSandboxServiceHandler) DeleteSandbox(context.Context, *connec
func (UnimplementedSandboxServiceHandler) ListSandboxes(context.Context, *connect.Request[v1alpha1.ListSandboxesRequest]) (*connect.Response[v1alpha1.ListSandboxesResponse], error) {
return nil, connect.NewError(connect.CodeUnimplemented, errors.New("pub.sandbox.v1alpha1.SandboxService.ListSandboxes is not implemented"))
}
+
+func (UnimplementedSandboxServiceHandler) StartSandbox(context.Context, *connect.Request[v1alpha1.StartSandboxRequest]) (*connect.Response[v1alpha1.StartSandboxResponse], error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("pub.sandbox.v1alpha1.SandboxService.StartSandbox is not implemented"))
+}
+
+func (UnimplementedSandboxServiceHandler) StopSandbox(context.Context, *connect.Request[v1alpha1.StopSandboxRequest]) (*connect.Response[v1alpha1.StopSandboxResponse], error) {
+ return nil, connect.NewError(connect.CodeUnimplemented, errors.New("pub.sandbox.v1alpha1.SandboxService.StopSandbox is not implemented"))
+}
diff --git a/api/ts/package.json b/api/ts/package.json
index bd52690..92e854e 100644
--- a/api/ts/package.json
+++ b/api/ts/package.json
@@ -1,6 +1,6 @@
{
"name": "@jetify/client",
- "version": "0.5.0-dev",
+ "version": "0.6.0-dev",
"description": "Jetify client library for Node.js and the browser",
"keywords": [
"jetify",
diff --git a/api/ts/src/gen/pub/sandbox/v1alpha1/sandbox_connect.ts b/api/ts/src/gen/pub/sandbox/v1alpha1/sandbox_connect.ts
index 93f0ad6..8fbc0b3 100644
--- a/api/ts/src/gen/pub/sandbox/v1alpha1/sandbox_connect.ts
+++ b/api/ts/src/gen/pub/sandbox/v1alpha1/sandbox_connect.ts
@@ -6,7 +6,7 @@
/* eslint-disable */
// @ts-nocheck
-import { CreateSandboxRequest, CreateSandboxResponse, DeleteSandboxRequest, DeleteSandboxResponse, GetSandboxRequest, GetSandboxResponse, ListSandboxesRequest, ListSandboxesResponse } from "./sandbox_pb.js";
+import { CreateSandboxRequest, CreateSandboxResponse, DeleteSandboxRequest, DeleteSandboxResponse, GetSandboxRequest, GetSandboxResponse, ListSandboxesRequest, ListSandboxesResponse, StartSandboxRequest, StartSandboxResponse, StopSandboxRequest, StopSandboxResponse } from "./sandbox_pb.js";
import { MethodIdempotency, MethodKind } from "@bufbuild/protobuf";
/**
@@ -53,6 +53,30 @@ export const SandboxService = {
kind: MethodKind.Unary,
idempotency: MethodIdempotency.NoSideEffects,
},
+ /**
+ * Starts sandbox. If sandbox is already starting or running, it does nothing.
+ * May return error if sandbox is stopping.
+ *
+ * @generated from rpc pub.sandbox.v1alpha1.SandboxService.StartSandbox
+ */
+ startSandbox: {
+ name: "StartSandbox",
+ I: StartSandboxRequest,
+ O: StartSandboxResponse,
+ kind: MethodKind.Unary,
+ },
+ /**
+ * Stops sandbox. If sandbox is already stopped, it does nothing.
+ * May return error if sandbox is starting.
+ *
+ * @generated from rpc pub.sandbox.v1alpha1.SandboxService.StopSandbox
+ */
+ stopSandbox: {
+ name: "StopSandbox",
+ I: StopSandboxRequest,
+ O: StopSandboxResponse,
+ kind: MethodKind.Unary,
+ },
}
} as const;
diff --git a/api/ts/src/gen/pub/sandbox/v1alpha1/sandbox_pb.ts b/api/ts/src/gen/pub/sandbox/v1alpha1/sandbox_pb.ts
index 2ab7403..bfd0481 100644
--- a/api/ts/src/gen/pub/sandbox/v1alpha1/sandbox_pb.ts
+++ b/api/ts/src/gen/pub/sandbox/v1alpha1/sandbox_pb.ts
@@ -410,6 +410,154 @@ export class ListSandboxesResponse extends Message {
}
}
+/**
+ * @generated from message pub.sandbox.v1alpha1.StartSandboxRequest
+ */
+export class StartSandboxRequest extends Message {
+ /**
+ * @generated from field: string id = 1;
+ */
+ id = "";
+
+ constructor(data?: PartialMessage) {
+ super();
+ proto3.util.initPartial(data, this);
+ }
+
+ static readonly runtime: typeof proto3 = proto3;
+ static readonly typeName = "pub.sandbox.v1alpha1.StartSandboxRequest";
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
+ { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
+ ]);
+
+ static fromBinary(bytes: Uint8Array, options?: Partial): StartSandboxRequest {
+ return new StartSandboxRequest().fromBinary(bytes, options);
+ }
+
+ static fromJson(jsonValue: JsonValue, options?: Partial): StartSandboxRequest {
+ return new StartSandboxRequest().fromJson(jsonValue, options);
+ }
+
+ static fromJsonString(jsonString: string, options?: Partial): StartSandboxRequest {
+ return new StartSandboxRequest().fromJsonString(jsonString, options);
+ }
+
+ static equals(a: StartSandboxRequest | PlainMessage | undefined, b: StartSandboxRequest | PlainMessage | undefined): boolean {
+ return proto3.util.equals(StartSandboxRequest, a, b);
+ }
+}
+
+/**
+ * @generated from message pub.sandbox.v1alpha1.StartSandboxResponse
+ */
+export class StartSandboxResponse extends Message {
+ /**
+ * @generated from field: pub.sandbox.v1alpha1.Sandbox sandbox = 1;
+ */
+ sandbox?: Sandbox;
+
+ constructor(data?: PartialMessage) {
+ super();
+ proto3.util.initPartial(data, this);
+ }
+
+ static readonly runtime: typeof proto3 = proto3;
+ static readonly typeName = "pub.sandbox.v1alpha1.StartSandboxResponse";
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
+ { no: 1, name: "sandbox", kind: "message", T: Sandbox },
+ ]);
+
+ static fromBinary(bytes: Uint8Array, options?: Partial): StartSandboxResponse {
+ return new StartSandboxResponse().fromBinary(bytes, options);
+ }
+
+ static fromJson(jsonValue: JsonValue, options?: Partial): StartSandboxResponse {
+ return new StartSandboxResponse().fromJson(jsonValue, options);
+ }
+
+ static fromJsonString(jsonString: string, options?: Partial): StartSandboxResponse {
+ return new StartSandboxResponse().fromJsonString(jsonString, options);
+ }
+
+ static equals(a: StartSandboxResponse | PlainMessage | undefined, b: StartSandboxResponse | PlainMessage | undefined): boolean {
+ return proto3.util.equals(StartSandboxResponse, a, b);
+ }
+}
+
+/**
+ * @generated from message pub.sandbox.v1alpha1.StopSandboxRequest
+ */
+export class StopSandboxRequest extends Message {
+ /**
+ * @generated from field: string id = 1;
+ */
+ id = "";
+
+ constructor(data?: PartialMessage) {
+ super();
+ proto3.util.initPartial(data, this);
+ }
+
+ static readonly runtime: typeof proto3 = proto3;
+ static readonly typeName = "pub.sandbox.v1alpha1.StopSandboxRequest";
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
+ { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
+ ]);
+
+ static fromBinary(bytes: Uint8Array, options?: Partial): StopSandboxRequest {
+ return new StopSandboxRequest().fromBinary(bytes, options);
+ }
+
+ static fromJson(jsonValue: JsonValue, options?: Partial): StopSandboxRequest {
+ return new StopSandboxRequest().fromJson(jsonValue, options);
+ }
+
+ static fromJsonString(jsonString: string, options?: Partial): StopSandboxRequest {
+ return new StopSandboxRequest().fromJsonString(jsonString, options);
+ }
+
+ static equals(a: StopSandboxRequest | PlainMessage | undefined, b: StopSandboxRequest | PlainMessage | undefined): boolean {
+ return proto3.util.equals(StopSandboxRequest, a, b);
+ }
+}
+
+/**
+ * @generated from message pub.sandbox.v1alpha1.StopSandboxResponse
+ */
+export class StopSandboxResponse extends Message {
+ /**
+ * @generated from field: pub.sandbox.v1alpha1.Sandbox sandbox = 1;
+ */
+ sandbox?: Sandbox;
+
+ constructor(data?: PartialMessage) {
+ super();
+ proto3.util.initPartial(data, this);
+ }
+
+ static readonly runtime: typeof proto3 = proto3;
+ static readonly typeName = "pub.sandbox.v1alpha1.StopSandboxResponse";
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
+ { no: 1, name: "sandbox", kind: "message", T: Sandbox },
+ ]);
+
+ static fromBinary(bytes: Uint8Array, options?: Partial): StopSandboxResponse {
+ return new StopSandboxResponse().fromBinary(bytes, options);
+ }
+
+ static fromJson(jsonValue: JsonValue, options?: Partial): StopSandboxResponse {
+ return new StopSandboxResponse().fromJson(jsonValue, options);
+ }
+
+ static fromJsonString(jsonString: string, options?: Partial): StopSandboxResponse {
+ return new StopSandboxResponse().fromJsonString(jsonString, options);
+ }
+
+ static equals(a: StopSandboxResponse | PlainMessage | undefined, b: StopSandboxResponse | PlainMessage | undefined): boolean {
+ return proto3.util.equals(StopSandboxResponse, a, b);
+ }
+}
+
/**
* @generated from message pub.sandbox.v1alpha1.Sandbox
*/