@otterscale/api 0.8.19 → 0.8.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@otterscale/api",
3
- "version": "0.8.19",
3
+ "version": "0.8.21",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./feature": {
@@ -1,4 +1,4 @@
1
- // @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts"
1
+ // @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts,import_extension=.js"
2
2
  // @generated from file feature.proto (package otterscale.api, edition 2023)
3
3
  /* eslint-disable */
4
4
 
package/src/feature_pb.js CHANGED
@@ -1,4 +1,4 @@
1
- // @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts"
1
+ // @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts,import_extension=.js"
2
2
  // @generated from file feature.proto (package otterscale.api, edition 2023)
3
3
  /* eslint-disable */
4
4
 
@@ -1,4 +1,4 @@
1
- // @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts"
1
+ // @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts,import_extension=.js"
2
2
  // @generated from file link/v1/link.proto (package otterscale.link.v1, edition 2023)
3
3
  /* eslint-disable */
4
4
 
@@ -1,9 +1,9 @@
1
- // @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts"
1
+ // @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts,import_extension=.js"
2
2
  // @generated from file link/v1/link.proto (package otterscale.link.v1, edition 2023)
3
3
  /* eslint-disable */
4
4
 
5
5
  import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
6
- import { file_feature } from "../../feature_pb";
6
+ import { file_feature } from "../../feature_pb.js";
7
7
 
8
8
  /**
9
9
  * Describes the file link/v1/link.proto.
@@ -1,4 +1,4 @@
1
- // @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts"
1
+ // @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts,import_extension=.js"
2
2
  // @generated from file resource/v1/resource.proto (package otterscale.resource.v1, edition 2023)
3
3
  /* eslint-disable */
4
4
 
@@ -73,6 +73,64 @@ export declare type APIResource = Message<"otterscale.resource.v1.APIResource">
73
73
  */
74
74
  export declare const APIResourceSchema: GenMessage<APIResource>;
75
75
 
76
+ /**
77
+ * ColumnDefinition describes a single column as returned by the
78
+ * Kubernetes Table API, equivalent to what `kubectl get` displays.
79
+ *
80
+ * @generated from message otterscale.resource.v1.ColumnDefinition
81
+ */
82
+ export declare type ColumnDefinition = Message<"otterscale.resource.v1.ColumnDefinition"> & {
83
+ /**
84
+ * The display name of the column (e.g., "Name", "Ready", "Node").
85
+ *
86
+ * @generated from field: string name = 1;
87
+ */
88
+ name: string;
89
+
90
+ /**
91
+ * The data type of the column (e.g., "string", "integer", "date").
92
+ *
93
+ * @generated from field: string type = 2;
94
+ */
95
+ type: string;
96
+
97
+ /**
98
+ * The display format (e.g., "name", "int32").
99
+ *
100
+ * @generated from field: string format = 3;
101
+ */
102
+ format: string;
103
+
104
+ /**
105
+ * A human-readable description of the column.
106
+ *
107
+ * @generated from field: string description = 4;
108
+ */
109
+ description: string;
110
+
111
+ /**
112
+ * Display priority: 0 means shown by default, 1 means shown only
113
+ * in wide mode (kubectl get -o wide).
114
+ *
115
+ * @generated from field: int32 priority = 5;
116
+ */
117
+ priority: number;
118
+
119
+ /**
120
+ * The JSONPath expression to extract the column value from the
121
+ * resource object. Present for CRD-defined columns.
122
+ *
123
+ * @generated from field: string json_path = 6;
124
+ */
125
+ jsonPath: string;
126
+ };
127
+
128
+ /**
129
+ * Describes the message otterscale.resource.v1.ColumnDefinition.
130
+ * Use `create(ColumnDefinitionSchema)` to create a new message.
131
+ */
132
+ export declare const ColumnDefinitionSchema: GenMessage<ColumnDefinition>;
133
+
76
134
  /**
77
135
  * DiscoveryRequest defines the parameters for discovering API resources.
78
136
  *
@@ -174,6 +232,76 @@ export declare type SchemaResponse = Message<"otterscale.resource.v1.SchemaRespo
174
232
  */
175
233
  export declare const SchemaResponseSchema: GenMessage<SchemaResponse>;
176
234
 
235
+ /**
236
+ * ColumnsRequest defines the parameters for retrieving printer column
237
+ * definitions for a resource type.
238
+ *
239
+ * @generated from message otterscale.resource.v1.ColumnsRequest
240
+ */
241
+ export declare type ColumnsRequest = Message<"otterscale.resource.v1.ColumnsRequest"> & {
242
+ /**
243
+ * The target Kubernetes cluster identifier.
244
+ *
245
+ * @generated from field: string cluster = 1;
246
+ */
247
+ cluster: string;
248
+
249
+ /**
250
+ * Kubernetes API Group (e.g., "apps").
251
+ *
252
+ * @generated from field: string group = 2;
253
+ */
254
+ group: string;
255
+
256
+ /**
257
+ * Kubernetes API Version (e.g., "v1").
258
+ *
259
+ * @generated from field: string version = 3;
260
+ */
261
+ version: string;
262
+
263
+ /**
264
+ * Kubernetes API Resource name in plural (e.g., "pods", "deployments").
265
+ *
266
+ * @generated from field: string resource = 4;
267
+ */
268
+ resource: string;
269
+
270
+ /**
271
+ * The namespace to use for the Table API request.
272
+ * Required for namespace-scoped resources.
273
+ *
274
+ * @generated from field: string namespace = 5;
275
+ */
276
+ namespace: string;
277
+ };
278
+
279
+ /**
280
+ * Describes the message otterscale.resource.v1.ColumnsRequest.
281
+ * Use `create(ColumnsRequestSchema)` to create a new message.
282
+ */
283
+ export declare const ColumnsRequestSchema: GenMessage<ColumnsRequest>;
284
+
285
+ /**
286
+ * ColumnsResponse contains the column definitions for a resource type.
287
+ *
288
+ * @generated from message otterscale.resource.v1.ColumnsResponse
289
+ */
290
+ export declare type ColumnsResponse = Message<"otterscale.resource.v1.ColumnsResponse"> & {
291
+ /**
292
+ * The list of column definitions.
293
+ *
294
+ * @generated from field: repeated otterscale.resource.v1.ColumnDefinition columns = 1;
295
+ */
296
+ columns: ColumnDefinition[];
297
+ };
298
+
299
+ /**
300
+ * Describes the message otterscale.resource.v1.ColumnsResponse.
301
+ * Use `create(ColumnsResponseSchema)` to create a new message.
302
+ */
303
+ export declare const ColumnsResponseSchema: GenMessage<ColumnsResponse>;
304
+
177
305
  /**
178
306
  * Resource represents a single Kubernetes object serialized as a JSON string.
179
307
  *
@@ -832,6 +960,18 @@ export declare const ResourceService: GenService<{
832
960
  input: typeof SchemaRequestSchema;
833
961
  output: typeof SchemaResponseSchema;
834
962
  },
963
+ /**
964
+ * Columns returns the printer column definitions for a resource type,
965
+ * equivalent to the columns shown by `kubectl get` and `kubectl get -o wide`.
966
+ * It uses the Kubernetes Table API internally and caches results.
967
+ *
968
+ * @generated from rpc otterscale.resource.v1.ResourceService.Columns
969
+ */
970
+ columns: {
971
+ methodKind: "unary";
972
+ input: typeof ColumnsRequestSchema;
973
+ output: typeof ColumnsResponseSchema;
974
+ },
835
975
  /**
836
976
  * List retrieves a collection of resources based on the provided GVR and filters.
837
977
  *
@@ -1,16 +1,16 @@
1
- // @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts"
1
+ // @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts,import_extension=.js"
2
2
  // @generated from file resource/v1/resource.proto (package otterscale.resource.v1, edition 2023)
3
3
  /* eslint-disable */
4
4
 
5
5
  import { enumDesc, fileDesc, messageDesc, serviceDesc, tsEnum } from "@bufbuild/protobuf/codegenv2";
6
- import { file_feature } from "../../feature_pb";
6
+ import { file_feature } from "../../feature_pb.js";
7
7
  import { file_google_protobuf_empty, file_google_protobuf_struct } from "@bufbuild/protobuf/wkt";
8
8
 
9
9
  /**
10
10
  * Describes the file resource/v1/resource.proto.
11
11
  */
12
12
  export const file_resource_v1_resource = /*@__PURE__*/
13
- fileDesc("ChpyZXNvdXJjZS92MS9yZXNvdXJjZS5wcm90bxIWb3R0ZXJzY2FsZS5yZXNvdXJjZS52MSKFAQoLQVBJUmVzb3VyY2USDQoFZ3JvdXAYASABKAkSDwoHdmVyc2lvbhgCIAEoCRIQCghyZXNvdXJjZRgDIAEoCRIMCgRraW5kGAQgASgJEhIKCm5hbWVzcGFjZWQYBSABKAgSDQoFdmVyYnMYBiADKAkSEwoLc2hvcnRfbmFtZXMYByADKAkiIwoQRGlzY292ZXJ5UmVxdWVzdBIPCgdjbHVzdGVyGAEgASgJIk8KEURpc2NvdmVyeVJlc3BvbnNlEjoKDWFwaV9yZXNvdXJjZXMYASADKAsyIy5vdHRlcnNjYWxlLnJlc291cmNlLnYxLkFQSVJlc291cmNlIk4KDVNjaGVtYVJlcXVlc3QSDwoHY2x1c3RlchgBIAEoCRINCgVncm91cBgCIAEoCRIPCgd2ZXJzaW9uGAMgASgJEgwKBGtpbmQYBCABKAkiOQoOU2NoZW1hUmVzcG9uc2USJwoGc2NoZW1hGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCIzCghSZXNvdXJjZRInCgZvYmplY3QYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IrQBCgtMaXN0UmVxdWVzdBIPCgdjbHVzdGVyGAEgASgJEg0KBWdyb3VwGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSEAoIcmVzb3VyY2UYBCABKAkSEQoJbmFtZXNwYWNlGAUgASgJEhYKDmxhYmVsX3NlbGVjdG9yGAYgASgJEhYKDmZpZWxkX3NlbGVjdG9yGAcgASgJEg0KBWxpbWl0GAggASgDEhAKCGNvbnRpbnVlGAkgASgJIokBCgxMaXN0UmVzcG9uc2USGAoQcmVzb3VyY2VfdmVyc2lvbhgBIAEoCRIQCghjb250aW51ZRgCIAEoCRIcChRyZW1haW5pbmdfaXRlbV9jb3VudBgDIAEoAxIvCgVpdGVtcxgEIAMoCzIgLm90dGVyc2NhbGUucmVzb3VyY2UudjEuUmVzb3VyY2UicAoKR2V0UmVxdWVzdBIPCgdjbHVzdGVyGAEgASgJEg0KBWdyb3VwGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSEAoIcmVzb3VyY2UYBCABKAkSEQoJbmFtZXNwYWNlGAUgASgJEgwKBG5hbWUYBiABKAkidQoPRGVzY3JpYmVSZXF1ZXN0Eg8KB2NsdXN0ZXIYASABKAkSDQoFZ3JvdXAYAiABKAkSDwoHdmVyc2lvbhgDIAEoCRIQCghyZXNvdXJjZRgEIAEoCRIRCgluYW1lc3BhY2UYBSABKAkSDAoEbmFtZRgGIAEoCSJ4ChBEZXNjcmliZVJlc3BvbnNlEjIKCHJlc291cmNlGAEgASgLMiAub3R0ZXJzY2FsZS5yZXNvdXJjZS52MS5SZXNvdXJjZRIwCgZldmVudHMYAiADKAsyIC5vdHRlcnNjYWxlLnJlc291cmNlLnYxLlJlc291cmNlIncKDUNyZWF0ZVJlcXVlc3QSDwoHY2x1c3RlchgBIAEoCRINCgVncm91cBgCIAEoCRIPCgd2ZXJzaW9uGAMgASgJEhAKCHJlc291cmNlGAQgASgJEhEKCW5hbWVzcGFjZRgFIAEoCRIQCghtYW5pZmVzdBgGIAEoDCKqAQoMQXBwbHlSZXF1ZXN0Eg8KB2NsdXN0ZXIYASABKAkSDQoFZ3JvdXAYAiABKAkSDwoHdmVyc2lvbhgDIAEoCRIQCghyZXNvdXJjZRgEIAEoCRIRCgluYW1lc3BhY2UYBSABKAkSDAoEbmFtZRgGIAEoCRIQCghtYW5pZmVzdBgHIAEoDBINCgVmb3JjZRgIIAEoCBIVCg1maWVsZF9tYW5hZ2VyGAkgASgJIpgBCg1EZWxldGVSZXF1ZXN0Eg8KB2NsdXN0ZXIYASABKAkSDQoFZ3JvdXAYAiABKAkSDwoHdmVyc2lvbhgDIAEoCRIQCghyZXNvdXJjZRgEIAEoCRIRCgluYW1lc3BhY2UYBSABKAkSDAoEbmFtZRgGIAEoCRIjChRncmFjZV9wZXJpb2Rfc2Vjb25kcxgHIAEoA0IFqgECCAEirgEKDFdhdGNoUmVxdWVzdBIPCgdjbHVzdGVyGAEgASgJEg0KBWdyb3VwGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSEAoIcmVzb3VyY2UYBCABKAkSEQoJbmFtZXNwYWNlGAUgASgJEhYKDmxhYmVsX3NlbGVjdG9yGAYgASgJEhYKDmZpZWxkX3NlbGVjdG9yGAcgASgJEhgKEHJlc291cmNlX3ZlcnNpb24YCCABKAkihwIKCldhdGNoRXZlbnQSNQoEdHlwZRgBIAEoDjInLm90dGVyc2NhbGUucmVzb3VyY2UudjEuV2F0Y2hFdmVudC5UeXBlEjIKCHJlc291cmNlGAIgASgLMiAub3R0ZXJzY2FsZS5yZXNvdXJjZS52MS5SZXNvdXJjZRIYChByZXNvdXJjZV92ZXJzaW9uGAMgASgJInQKBFR5cGUSFAoQVFlQRV9VTlNQRUNJRklFRBAAEg4KClRZUEVfQURERUQQARIRCg1UWVBFX01PRElGSUVEEAISEAoMVFlQRV9ERUxFVEVEEAMSEQoNVFlQRV9CT09LTUFSSxAEEg4KClRZUEVfRVJST1IQBTLuBwoPUmVzb3VyY2VTZXJ2aWNlEnkKCURpc2NvdmVyeRIoLm90dGVyc2NhbGUucmVzb3VyY2UudjEuRGlzY292ZXJ5UmVxdWVzdBopLm90dGVyc2NhbGUucmVzb3VyY2UudjEuRGlzY292ZXJ5UmVzcG9uc2UiF4rf1R0SChByZXNvdXJjZS1lbmFibGVkEnAKBlNjaGVtYRIlLm90dGVyc2NhbGUucmVzb3VyY2UudjEuU2NoZW1hUmVxdWVzdBomLm90dGVyc2NhbGUucmVzb3VyY2UudjEuU2NoZW1hUmVzcG9uc2UiF4rf1R0SChByZXNvdXJjZS1lbmFibGVkEmoKBExpc3QSIy5vdHRlcnNjYWxlLnJlc291cmNlLnYxLkxpc3RSZXF1ZXN0GiQub3R0ZXJzY2FsZS5yZXNvdXJjZS52MS5MaXN0UmVzcG9uc2UiF4rf1R0SChByZXNvdXJjZS1lbmFibGVkEmQKA0dldBIiLm90dGVyc2NhbGUucmVzb3VyY2UudjEuR2V0UmVxdWVzdBogLm90dGVyc2NhbGUucmVzb3VyY2UudjEuUmVzb3VyY2UiF4rf1R0SChByZXNvdXJjZS1lbmFibGVkEnYKCERlc2NyaWJlEicub3R0ZXJzY2FsZS5yZXNvdXJjZS52MS5EZXNjcmliZVJlcXVlc3QaKC5vdHRlcnNjYWxlLnJlc291cmNlLnYxLkRlc2NyaWJlUmVzcG9uc2UiF4rf1R0SChByZXNvdXJjZS1lbmFibGVkEmoKBkNyZWF0ZRIlLm90dGVyc2NhbGUucmVzb3VyY2UudjEuQ3JlYXRlUmVxdWVzdBogLm90dGVyc2NhbGUucmVzb3VyY2UudjEuUmVzb3VyY2UiF4rf1R0SChByZXNvdXJjZS1lbmFibGVkEmgKBUFwcGx5EiQub3R0ZXJzY2FsZS5yZXNvdXJjZS52MS5BcHBseVJlcXVlc3QaIC5vdHRlcnNjYWxlLnJlc291cmNlLnYxLlJlc291cmNlIheK39UdEgoQcmVzb3VyY2UtZW5hYmxlZBJgCgZEZWxldGUSJS5vdHRlcnNjYWxlLnJlc291cmNlLnYxLkRlbGV0ZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiF4rf1R0SChByZXNvdXJjZS1lbmFibGVkEmwKBVdhdGNoEiQub3R0ZXJzY2FsZS5yZXNvdXJjZS52MS5XYXRjaFJlcXVlc3QaIi5vdHRlcnNjYWxlLnJlc291cmNlLnYxLldhdGNoRXZlbnQiF4rf1R0SChByZXNvdXJjZS1lbmFibGVkMAFCMlowZ2l0aHViLmNvbS9vdHRlcnNjYWxlL2FwaS9yZXNvdXJjZS92MTtyZXNvdXJjZXYxYghlZGl0aW9uc3DoBw", [file_feature, file_google_protobuf_empty, file_google_protobuf_struct]);
13
+ fileDesc("ChpyZXNvdXJjZS92MS9yZXNvdXJjZS5wcm90bxIWb3R0ZXJzY2FsZS5yZXNvdXJjZS52MSKFAQoLQVBJUmVzb3VyY2USDQoFZ3JvdXAYASABKAkSDwoHdmVyc2lvbhgCIAEoCRIQCghyZXNvdXJjZRgDIAEoCRIMCgRraW5kGAQgASgJEhIKCm5hbWVzcGFjZWQYBSABKAgSDQoFdmVyYnMYBiADKAkSEwoLc2hvcnRfbmFtZXMYByADKAkieAoQQ29sdW1uRGVmaW5pdGlvbhIMCgRuYW1lGAEgASgJEgwKBHR5cGUYAiABKAkSDgoGZm9ybWF0GAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhAKCHByaW9yaXR5GAUgASgFEhEKCWpzb25fcGF0aBgGIAEoCSIjChBEaXNjb3ZlcnlSZXF1ZXN0Eg8KB2NsdXN0ZXIYASABKAkiTwoRRGlzY292ZXJ5UmVzcG9uc2USOgoNYXBpX3Jlc291cmNlcxgBIAMoCzIjLm90dGVyc2NhbGUucmVzb3VyY2UudjEuQVBJUmVzb3VyY2UiTgoNU2NoZW1hUmVxdWVzdBIPCgdjbHVzdGVyGAEgASgJEg0KBWdyb3VwGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSDAoEa2luZBgEIAEoCSI5Cg5TY2hlbWFSZXNwb25zZRInCgZzY2hlbWEYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0ImYKDkNvbHVtbnNSZXF1ZXN0Eg8KB2NsdXN0ZXIYASABKAkSDQoFZ3JvdXAYAiABKAkSDwoHdmVyc2lvbhgDIAEoCRIQCghyZXNvdXJjZRgEIAEoCRIRCgluYW1lc3BhY2UYBSABKAkiTAoPQ29sdW1uc1Jlc3BvbnNlEjkKB2NvbHVtbnMYASADKAsyKC5vdHRlcnNjYWxlLnJlc291cmNlLnYxLkNvbHVtbkRlZmluaXRpb24iMwoIUmVzb3VyY2USJwoGb2JqZWN0GAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCK0AQoLTGlzdFJlcXVlc3QSDwoHY2x1c3RlchgBIAEoCRINCgVncm91cBgCIAEoCRIPCgd2ZXJzaW9uGAMgASgJEhAKCHJlc291cmNlGAQgASgJEhEKCW5hbWVzcGFjZRgFIAEoCRIWCg5sYWJlbF9zZWxlY3RvchgGIAEoCRIWCg5maWVsZF9zZWxlY3RvchgHIAEoCRINCgVsaW1pdBgIIAEoAxIQCghjb250aW51ZRgJIAEoCSKJAQoMTGlzdFJlc3BvbnNlEhgKEHJlc291cmNlX3ZlcnNpb24YASABKAkSEAoIY29udGludWUYAiABKAkSHAoUcmVtYWluaW5nX2l0ZW1fY291bnQYAyABKAMSLwoFaXRlbXMYBCADKAsyIC5vdHRlcnNjYWxlLnJlc291cmNlLnYxLlJlc291cmNlInAKCkdldFJlcXVlc3QSDwoHY2x1c3RlchgBIAEoCRINCgVncm91cBgCIAEoCRIPCgd2ZXJzaW9uGAMgASgJEhAKCHJlc291cmNlGAQgASgJEhEKCW5hbWVzcGFjZRgFIAEoCRIMCgRuYW1lGAYgASgJInUKD0Rlc2NyaWJlUmVxdWVzdBIPCgdjbHVzdGVyGAEgASgJEg0KBWdyb3VwGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSEAoIcmVzb3VyY2UYBCABKAkSEQoJbmFtZXNwYWNlGAUgASgJEgwKBG5hbWUYBiABKAkieAoQRGVzY3JpYmVSZXNwb25zZRIyCghyZXNvdXJjZRgBIAEoCzIgLm90dGVyc2NhbGUucmVzb3VyY2UudjEuUmVzb3VyY2USMAoGZXZlbnRzGAIgAygLMiAub3R0ZXJzY2FsZS5yZXNvdXJjZS52MS5SZXNvdXJjZSJ3Cg1DcmVhdGVSZXF1ZXN0Eg8KB2NsdXN0ZXIYASABKAkSDQoFZ3JvdXAYAiABKAkSDwoHdmVyc2lvbhgDIAEoCRIQCghyZXNvdXJjZRgEIAEoCRIRCgluYW1lc3BhY2UYBSABKAkSEAoIbWFuaWZlc3QYBiABKAwiqgEKDEFwcGx5UmVxdWVzdBIPCgdjbHVzdGVyGAEgASgJEg0KBWdyb3VwGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSEAoIcmVzb3VyY2UYBCABKAkSEQoJbmFtZXNwYWNlGAUgASgJEgwKBG5hbWUYBiABKAkSEAoIbWFuaWZlc3QYByABKAwSDQoFZm9yY2UYCCABKAgSFQoNZmllbGRfbWFuYWdlchgJIAEoCSKYAQoNRGVsZXRlUmVxdWVzdBIPCgdjbHVzdGVyGAEgASgJEg0KBWdyb3VwGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSEAoIcmVzb3VyY2UYBCABKAkSEQoJbmFtZXNwYWNlGAUgASgJEgwKBG5hbWUYBiABKAkSIwoUZ3JhY2VfcGVyaW9kX3NlY29uZHMYByABKANCBaoBAggBIq4BCgxXYXRjaFJlcXVlc3QSDwoHY2x1c3RlchgBIAEoCRINCgVncm91cBgCIAEoCRIPCgd2ZXJzaW9uGAMgASgJEhAKCHJlc291cmNlGAQgASgJEhEKCW5hbWVzcGFjZRgFIAEoCRIWCg5sYWJlbF9zZWxlY3RvchgGIAEoCRIWCg5maWVsZF9zZWxlY3RvchgHIAEoCRIYChByZXNvdXJjZV92ZXJzaW9uGAggASgJIocCCgpXYXRjaEV2ZW50EjUKBHR5cGUYASABKA4yJy5vdHRlcnNjYWxlLnJlc291cmNlLnYxLldhdGNoRXZlbnQuVHlwZRIyCghyZXNvdXJjZRgCIAEoCzIgLm90dGVyc2NhbGUucmVzb3VyY2UudjEuUmVzb3VyY2USGAoQcmVzb3VyY2VfdmVyc2lvbhgDIAEoCSJ0CgRUeXBlEhQKEFRZUEVfVU5TUEVDSUZJRUQQABIOCgpUWVBFX0FEREVEEAESEQoNVFlQRV9NT0RJRklFRBACEhAKDFRZUEVfREVMRVRFRBADEhEKDVRZUEVfQk9PS01BUksQBBIOCgpUWVBFX0VSUk9SEAUy4wgKD1Jlc291cmNlU2VydmljZRJ5CglEaXNjb3ZlcnkSKC5vdHRlcnNjYWxlLnJlc291cmNlLnYxLkRpc2NvdmVyeVJlcXVlc3QaKS5vdHRlcnNjYWxlLnJlc291cmNlLnYxLkRpc2NvdmVyeVJlc3BvbnNlIheK39UdEgoQcmVzb3VyY2UtZW5hYmxlZBJwCgZTY2hlbWESJS5vdHRlcnNjYWxlLnJlc291cmNlLnYxLlNjaGVtYVJlcXVlc3QaJi5vdHRlcnNjYWxlLnJlc291cmNlLnYxLlNjaGVtYVJlc3BvbnNlIheK39UdEgoQcmVzb3VyY2UtZW5hYmxlZBJzCgdDb2x1bW5zEiYub3R0ZXJzY2FsZS5yZXNvdXJjZS52MS5Db2x1bW5zUmVxdWVzdBonLm90dGVyc2NhbGUucmVzb3VyY2UudjEuQ29sdW1uc1Jlc3BvbnNlIheK39UdEgoQcmVzb3VyY2UtZW5hYmxlZBJqCgRMaXN0EiMub3R0ZXJzY2FsZS5yZXNvdXJjZS52MS5MaXN0UmVxdWVzdBokLm90dGVyc2NhbGUucmVzb3VyY2UudjEuTGlzdFJlc3BvbnNlIheK39UdEgoQcmVzb3VyY2UtZW5hYmxlZBJkCgNHZXQSIi5vdHRlcnNjYWxlLnJlc291cmNlLnYxLkdldFJlcXVlc3QaIC5vdHRlcnNjYWxlLnJlc291cmNlLnYxLlJlc291cmNlIheK39UdEgoQcmVzb3VyY2UtZW5hYmxlZBJ2CghEZXNjcmliZRInLm90dGVyc2NhbGUucmVzb3VyY2UudjEuRGVzY3JpYmVSZXF1ZXN0Gigub3R0ZXJzY2FsZS5yZXNvdXJjZS52MS5EZXNjcmliZVJlc3BvbnNlIheK39UdEgoQcmVzb3VyY2UtZW5hYmxlZBJqCgZDcmVhdGUSJS5vdHRlcnNjYWxlLnJlc291cmNlLnYxLkNyZWF0ZVJlcXVlc3QaIC5vdHRlcnNjYWxlLnJlc291cmNlLnYxLlJlc291cmNlIheK39UdEgoQcmVzb3VyY2UtZW5hYmxlZBJoCgVBcHBseRIkLm90dGVyc2NhbGUucmVzb3VyY2UudjEuQXBwbHlSZXF1ZXN0GiAub3R0ZXJzY2FsZS5yZXNvdXJjZS52MS5SZXNvdXJjZSIXit/VHRIKEHJlc291cmNlLWVuYWJsZWQSYAoGRGVsZXRlEiUub3R0ZXJzY2FsZS5yZXNvdXJjZS52MS5EZWxldGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IheK39UdEgoQcmVzb3VyY2UtZW5hYmxlZBJsCgVXYXRjaBIkLm90dGVyc2NhbGUucmVzb3VyY2UudjEuV2F0Y2hSZXF1ZXN0GiIub3R0ZXJzY2FsZS5yZXNvdXJjZS52MS5XYXRjaEV2ZW50IheK39UdEgoQcmVzb3VyY2UtZW5hYmxlZDABQjJaMGdpdGh1Yi5jb20vb3R0ZXJzY2FsZS9hcGkvcmVzb3VyY2UvdjE7cmVzb3VyY2V2MWIIZWRpdGlvbnNw6Ac", [file_feature, file_google_protobuf_empty, file_google_protobuf_struct]);
14
14
 
15
15
  /**
16
16
  * Describes the message otterscale.resource.v1.APIResource.
@@ -19,116 +19,137 @@ export const file_resource_v1_resource = /*@__PURE__*/
19
19
  export const APIResourceSchema = /*@__PURE__*/
20
20
  messageDesc(file_resource_v1_resource, 0);
21
21
 
22
+ /**
23
+ * Describes the message otterscale.resource.v1.ColumnDefinition.
24
+ * Use `create(ColumnDefinitionSchema)` to create a new message.
25
+ */
26
+ export const ColumnDefinitionSchema = /*@__PURE__*/
27
+ messageDesc(file_resource_v1_resource, 1);
28
+
22
29
  /**
23
30
  * Describes the message otterscale.resource.v1.DiscoveryRequest.
24
31
  * Use `create(DiscoveryRequestSchema)` to create a new message.
25
32
  */
26
33
  export const DiscoveryRequestSchema = /*@__PURE__*/
27
- messageDesc(file_resource_v1_resource, 1);
34
+ messageDesc(file_resource_v1_resource, 2);
28
35
 
29
36
  /**
30
37
  * Describes the message otterscale.resource.v1.DiscoveryResponse.
31
38
  * Use `create(DiscoveryResponseSchema)` to create a new message.
32
39
  */
33
40
  export const DiscoveryResponseSchema = /*@__PURE__*/
34
- messageDesc(file_resource_v1_resource, 2);
41
+ messageDesc(file_resource_v1_resource, 3);
35
42
 
36
43
  /**
37
44
  * Describes the message otterscale.resource.v1.SchemaRequest.
38
45
  * Use `create(SchemaRequestSchema)` to create a new message.
39
46
  */
40
47
  export const SchemaRequestSchema = /*@__PURE__*/
41
- messageDesc(file_resource_v1_resource, 3);
48
+ messageDesc(file_resource_v1_resource, 4);
42
49
 
43
50
  /**
44
51
  * Describes the message otterscale.resource.v1.SchemaResponse.
45
52
  * Use `create(SchemaResponseSchema)` to create a new message.
46
53
  */
47
54
  export const SchemaResponseSchema = /*@__PURE__*/
48
- messageDesc(file_resource_v1_resource, 4);
55
+ messageDesc(file_resource_v1_resource, 5);
56
+
57
+ /**
58
+ * Describes the message otterscale.resource.v1.ColumnsRequest.
59
+ * Use `create(ColumnsRequestSchema)` to create a new message.
60
+ */
61
+ export const ColumnsRequestSchema = /*@__PURE__*/
62
+ messageDesc(file_resource_v1_resource, 6);
63
+
64
+ /**
65
+ * Describes the message otterscale.resource.v1.ColumnsResponse.
66
+ * Use `create(ColumnsResponseSchema)` to create a new message.
67
+ */
68
+ export const ColumnsResponseSchema = /*@__PURE__*/
69
+ messageDesc(file_resource_v1_resource, 7);
49
70
 
50
71
  /**
51
72
  * Describes the message otterscale.resource.v1.Resource.
52
73
  * Use `create(ResourceSchema)` to create a new message.
53
74
  */
54
75
  export const ResourceSchema = /*@__PURE__*/
55
- messageDesc(file_resource_v1_resource, 5);
76
+ messageDesc(file_resource_v1_resource, 8);
56
77
 
57
78
  /**
58
79
  * Describes the message otterscale.resource.v1.ListRequest.
59
80
  * Use `create(ListRequestSchema)` to create a new message.
60
81
  */
61
82
  export const ListRequestSchema = /*@__PURE__*/
62
- messageDesc(file_resource_v1_resource, 6);
83
+ messageDesc(file_resource_v1_resource, 9);
63
84
 
64
85
  /**
65
86
  * Describes the message otterscale.resource.v1.ListResponse.
66
87
  * Use `create(ListResponseSchema)` to create a new message.
67
88
  */
68
89
  export const ListResponseSchema = /*@__PURE__*/
69
- messageDesc(file_resource_v1_resource, 7);
90
+ messageDesc(file_resource_v1_resource, 10);
70
91
 
71
92
  /**
72
93
  * Describes the message otterscale.resource.v1.GetRequest.
73
94
  * Use `create(GetRequestSchema)` to create a new message.
74
95
  */
75
96
  export const GetRequestSchema = /*@__PURE__*/
76
- messageDesc(file_resource_v1_resource, 8);
97
+ messageDesc(file_resource_v1_resource, 11);
77
98
 
78
99
  /**
79
100
  * Describes the message otterscale.resource.v1.DescribeRequest.
80
101
  * Use `create(DescribeRequestSchema)` to create a new message.
81
102
  */
82
103
  export const DescribeRequestSchema = /*@__PURE__*/
83
- messageDesc(file_resource_v1_resource, 9);
104
+ messageDesc(file_resource_v1_resource, 12);
84
105
 
85
106
  /**
86
107
  * Describes the message otterscale.resource.v1.DescribeResponse.
87
108
  * Use `create(DescribeResponseSchema)` to create a new message.
88
109
  */
89
110
  export const DescribeResponseSchema = /*@__PURE__*/
90
- messageDesc(file_resource_v1_resource, 10);
111
+ messageDesc(file_resource_v1_resource, 13);
91
112
 
92
113
  /**
93
114
  * Describes the message otterscale.resource.v1.CreateRequest.
94
115
  * Use `create(CreateRequestSchema)` to create a new message.
95
116
  */
96
117
  export const CreateRequestSchema = /*@__PURE__*/
97
- messageDesc(file_resource_v1_resource, 11);
118
+ messageDesc(file_resource_v1_resource, 14);
98
119
 
99
120
  /**
100
121
  * Describes the message otterscale.resource.v1.ApplyRequest.
101
122
  * Use `create(ApplyRequestSchema)` to create a new message.
102
123
  */
103
124
  export const ApplyRequestSchema = /*@__PURE__*/
104
- messageDesc(file_resource_v1_resource, 12);
125
+ messageDesc(file_resource_v1_resource, 15);
105
126
 
106
127
  /**
107
128
  * Describes the message otterscale.resource.v1.DeleteRequest.
108
129
  * Use `create(DeleteRequestSchema)` to create a new message.
109
130
  */
110
131
  export const DeleteRequestSchema = /*@__PURE__*/
111
- messageDesc(file_resource_v1_resource, 13);
132
+ messageDesc(file_resource_v1_resource, 16);
112
133
 
113
134
  /**
114
135
  * Describes the message otterscale.resource.v1.WatchRequest.
115
136
  * Use `create(WatchRequestSchema)` to create a new message.
116
137
  */
117
138
  export const WatchRequestSchema = /*@__PURE__*/
118
- messageDesc(file_resource_v1_resource, 14);
139
+ messageDesc(file_resource_v1_resource, 17);
119
140
 
120
141
  /**
121
142
  * Describes the message otterscale.resource.v1.WatchEvent.
122
143
  * Use `create(WatchEventSchema)` to create a new message.
123
144
  */
124
145
  export const WatchEventSchema = /*@__PURE__*/
125
- messageDesc(file_resource_v1_resource, 15);
146
+ messageDesc(file_resource_v1_resource, 18);
126
147
 
127
148
  /**
128
149
  * Describes the enum otterscale.resource.v1.WatchEvent.Type.
129
150
  */
130
151
  export const WatchEvent_TypeSchema = /*@__PURE__*/
131
- enumDesc(file_resource_v1_resource, 15, 0);
152
+ enumDesc(file_resource_v1_resource, 18, 0);
132
153
 
133
154
  /**
134
155
  * Type defines the possible types of events from Kubernetes watch.
@@ -1,9 +1,9 @@
1
- // @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts"
1
+ // @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts,import_extension=.js"
2
2
  // @generated from file runtime/v1/runtime.proto (package otterscale.runtime.v1, edition 2023)
3
3
  /* eslint-disable */
4
4
 
5
5
  import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
6
- import type { Message } from "@bufbuild/protobuf";
6
+ import type { JsonObject, Message } from "@bufbuild/protobuf";
7
7
  import type { EmptySchema, Timestamp } from "@bufbuild/protobuf/wkt";
8
8
 
9
9
  /**
@@ -524,6 +524,107 @@ export declare type RestartRequest = Message<"otterscale.runtime.v1.RestartReque
524
524
  */
525
525
  export declare const RestartRequestSchema: GenMessage<RestartRequest>;
526
526
 
527
+ /**
528
+ * SubResourceActionRequest defines the parameters for invoking a
529
+ * subresource action on any Kubernetes resource. This is designed for
530
+ * operations like KubeVirt VM start/stop/restart/migrate that use PUT
531
+ * or POST on a named subresource path.
532
+ *
533
+ * @generated from message otterscale.runtime.v1.SubResourceActionRequest
534
+ */
535
+ export declare type SubResourceActionRequest = Message<"otterscale.runtime.v1.SubResourceActionRequest"> & {
536
+ /**
537
+ * The target Kubernetes cluster identifier.
538
+ *
539
+ * @generated from field: string cluster = 1;
540
+ */
541
+ cluster: string;
542
+
543
+ /**
544
+ * Kubernetes API Group (e.g., "kubevirt.io").
545
+ *
546
+ * @generated from field: string group = 2;
547
+ */
548
+ group: string;
549
+
550
+ /**
551
+ * Kubernetes API Version (e.g., "v1").
552
+ *
553
+ * @generated from field: string version = 3;
554
+ */
555
+ version: string;
556
+
557
+ /**
558
+ * Kubernetes API Resource name in plural (e.g., "virtualmachines").
559
+ *
560
+ * @generated from field: string resource = 4;
561
+ */
562
+ resource: string;
563
+
564
+ /**
565
+ * The namespace of the resource.
566
+ *
567
+ * @generated from field: string namespace = 5;
568
+ */
569
+ namespace: string;
570
+
571
+ /**
572
+ * The name of the resource.
573
+ *
574
+ * @generated from field: string name = 6;
575
+ */
576
+ name: string;
577
+
578
+ /**
579
+ * The subresource to invoke (e.g., "start", "stop", "restart").
580
+ *
581
+ * @generated from field: string subresource = 7;
582
+ */
583
+ subresource: string;
584
+
585
+ /**
586
+ * The HTTP method for the subresource action. Only "PUT" and "POST"
587
+ * are allowed; DELETE and PATCH have dedicated RPCs.
588
+ *
589
+ * @generated from field: string method = 8;
590
+ */
591
+ method: string;
592
+
593
+ /**
594
+ * Optional JSON body (e.g., KubeVirt StopOptions with gracePeriod).
595
+ *
596
+ * @generated from field: bytes body = 9;
597
+ */
598
+ body: Uint8Array;
599
+ };
600
+
601
+ /**
602
+ * Describes the message otterscale.runtime.v1.SubResourceActionRequest.
603
+ * Use `create(SubResourceActionRequestSchema)` to create a new message.
604
+ */
605
+ export declare const SubResourceActionRequestSchema: GenMessage<SubResourceActionRequest>;
606
+
607
+ /**
608
+ * SubResourceActionResponse contains the optional response body from
609
+ * the subresource action.
610
+ *
611
+ * @generated from message otterscale.runtime.v1.SubResourceActionResponse
612
+ */
613
+ export declare type SubResourceActionResponse = Message<"otterscale.runtime.v1.SubResourceActionResponse"> & {
614
+ /**
615
+ * The JSON response body returned by the API server, if any.
616
+ *
617
+ * @generated from field: google.protobuf.Struct result = 1;
618
+ */
619
+ result?: JsonObject;
620
+ };
621
+
622
+ /**
623
+ * Describes the message otterscale.runtime.v1.SubResourceActionResponse.
624
+ * Use `create(SubResourceActionResponseSchema)` to create a new message.
625
+ */
626
+ export declare const SubResourceActionResponseSchema: GenMessage<SubResourceActionResponse>;
627
+
527
628
  /**
528
629
  * RuntimeService provides runtime operations for Kubernetes workloads,
529
630
  * including log streaming, interactive exec, port forwarding, scaling,
@@ -618,5 +719,18 @@ export declare const RuntimeService: GenService<{
618
719
  input: typeof RestartRequestSchema;
619
720
  output: typeof EmptySchema;
620
721
  },
722
+ /**
723
+ * SubResourceAction performs a generic action on a Kubernetes
724
+ * subresource, such as KubeVirt VM start/stop/restart. The request
725
+ * is forwarded to kube-apiserver via impersonation, so RBAC is
726
+ * enforced automatically. Only PUT and POST methods are allowed.
727
+ *
728
+ * @generated from rpc otterscale.runtime.v1.RuntimeService.SubResourceAction
729
+ */
730
+ subResourceAction: {
731
+ methodKind: "unary";
732
+ input: typeof SubResourceActionRequestSchema;
733
+ output: typeof SubResourceActionResponseSchema;
734
+ },
621
735
  }>;
622
736
 
@@ -1,16 +1,16 @@
1
- // @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts"
1
+ // @generated by protoc-gen-es v2.11.0 with parameter "target=js+dts,import_extension=.js"
2
2
  // @generated from file runtime/v1/runtime.proto (package otterscale.runtime.v1, edition 2023)
3
3
  /* eslint-disable */
4
4
 
5
5
  import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
6
- import { file_feature } from "../../feature_pb";
7
- import { file_google_protobuf_empty, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
6
+ import { file_feature } from "../../feature_pb.js";
7
+ import { file_google_protobuf_empty, file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
8
8
 
9
9
  /**
10
10
  * Describes the file runtime/v1/runtime.proto.
11
11
  */
12
12
  export const file_runtime_v1_runtime = /*@__PURE__*/
13
- fileDesc("ChhydW50aW1lL3YxL3J1bnRpbWUucHJvdG8SFW90dGVyc2NhbGUucnVudGltZS52MSKPAgoNUG9kTG9nUmVxdWVzdBIPCgdjbHVzdGVyGAEgASgJEhEKCW5hbWVzcGFjZRgCIAEoCRIMCgRuYW1lGAMgASgJEhEKCWNvbnRhaW5lchgEIAEoCRIOCgZmb2xsb3cYBSABKAgSGQoKdGFpbF9saW5lcxgGIAEoA0IFqgECCAESHAoNc2luY2Vfc2Vjb25kcxgHIAEoA0IFqgECCAESLgoKc2luY2VfdGltZRgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEAoIcHJldmlvdXMYCSABKAgSEgoKdGltZXN0YW1wcxgKIAEoCBIaCgtsaW1pdF9ieXRlcxgLIAEoA0IFqgECCAEiHgoOUG9kTG9nUmVzcG9uc2USDAoEZGF0YRgBIAEoDCKSAQoRRXhlY3V0ZVRUWVJlcXVlc3QSDwoHY2x1c3RlchgBIAEoCRIRCgluYW1lc3BhY2UYAiABKAkSDAoEbmFtZRgDIAEoCRIRCgljb250YWluZXIYBCABKAkSDwoHY29tbWFuZBgFIAMoCRILCgN0dHkYBiABKAgSDAoEcm93cxgHIAEoDRIMCgRjb2xzGAggASgNIkgKEkV4ZWN1dGVUVFlSZXNwb25zZRISCgpzZXNzaW9uX2lkGAEgASgJEg4KBnN0ZG91dBgCIAEoDBIOCgZzdGRlcnIYAyABKAwiNAoPV3JpdGVUVFlSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDQoFc3RkaW4YAiABKAwiQgoQUmVzaXplVFRZUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEgwKBHJvd3MYAiABKA0SDAoEY29scxgDIAEoDSJUChJQb3J0Rm9yd2FyZFJlcXVlc3QSDwoHY2x1c3RlchgBIAEoCRIRCgluYW1lc3BhY2UYAiABKAkSDAoEbmFtZRgDIAEoCRIMCgRwb3J0GAQgASgFIjcKE1BvcnRGb3J3YXJkUmVzcG9uc2USEgoKc2Vzc2lvbl9pZBgBIAEoCRIMCgRkYXRhGAIgASgMIjsKF1dyaXRlUG9ydEZvcndhcmRSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDAoEZGF0YRgCIAEoDCKEAQoMU2NhbGVSZXF1ZXN0Eg8KB2NsdXN0ZXIYASABKAkSDQoFZ3JvdXAYAiABKAkSDwoHdmVyc2lvbhgDIAEoCRIQCghyZXNvdXJjZRgEIAEoCRIRCgluYW1lc3BhY2UYBSABKAkSDAoEbmFtZRgGIAEoCRIQCghyZXBsaWNhcxgHIAEoBSIhCg1TY2FsZVJlc3BvbnNlEhAKCHJlcGxpY2FzGAEgASgFInQKDlJlc3RhcnRSZXF1ZXN0Eg8KB2NsdXN0ZXIYASABKAkSDQoFZ3JvdXAYAiABKAkSDwoHdmVyc2lvbhgDIAEoCRIQCghyZXNvdXJjZRgEIAEoCRIRCgluYW1lc3BhY2UYBSABKAkSDAoEbmFtZRgGIAEoCTKKBwoOUnVudGltZVNlcnZpY2USbwoGUG9kTG9nEiQub3R0ZXJzY2FsZS5ydW50aW1lLnYxLlBvZExvZ1JlcXVlc3QaJS5vdHRlcnNjYWxlLnJ1bnRpbWUudjEuUG9kTG9nUmVzcG9uc2UiForf1R0RCg9ydW50aW1lLWVuYWJsZWQwARJ7CgpFeGVjdXRlVFRZEigub3R0ZXJzY2FsZS5ydW50aW1lLnYxLkV4ZWN1dGVUVFlSZXF1ZXN0Gikub3R0ZXJzY2FsZS5ydW50aW1lLnYxLkV4ZWN1dGVUVFlSZXNwb25zZSIWit/VHREKD3J1bnRpbWUtZW5hYmxlZDABEmIKCFdyaXRlVFRZEiYub3R0ZXJzY2FsZS5ydW50aW1lLnYxLldyaXRlVFRZUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIWit/VHREKD3J1bnRpbWUtZW5hYmxlZBJkCglSZXNpemVUVFkSJy5vdHRlcnNjYWxlLnJ1bnRpbWUudjEuUmVzaXplVFRZUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIWit/VHREKD3J1bnRpbWUtZW5hYmxlZBJ+CgtQb3J0Rm9yd2FyZBIpLm90dGVyc2NhbGUucnVudGltZS52MS5Qb3J0Rm9yd2FyZFJlcXVlc3QaKi5vdHRlcnNjYWxlLnJ1bnRpbWUudjEuUG9ydEZvcndhcmRSZXNwb25zZSIWit/VHREKD3J1bnRpbWUtZW5hYmxlZDABEnIKEFdyaXRlUG9ydEZvcndhcmQSLi5vdHRlcnNjYWxlLnJ1bnRpbWUudjEuV3JpdGVQb3J0Rm9yd2FyZFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiForf1R0RCg9ydW50aW1lLWVuYWJsZWQSagoFU2NhbGUSIy5vdHRlcnNjYWxlLnJ1bnRpbWUudjEuU2NhbGVSZXF1ZXN0GiQub3R0ZXJzY2FsZS5ydW50aW1lLnYxLlNjYWxlUmVzcG9uc2UiForf1R0RCg9ydW50aW1lLWVuYWJsZWQSYAoHUmVzdGFydBIlLm90dGVyc2NhbGUucnVudGltZS52MS5SZXN0YXJ0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIWit/VHREKD3J1bnRpbWUtZW5hYmxlZEIwWi5naXRodWIuY29tL290dGVyc2NhbGUvYXBpL3J1bnRpbWUvdjE7cnVudGltZXYxYghlZGl0aW9uc3DoBw", [file_feature, file_google_protobuf_empty, file_google_protobuf_timestamp]);
13
+ fileDesc("ChhydW50aW1lL3YxL3J1bnRpbWUucHJvdG8SFW90dGVyc2NhbGUucnVudGltZS52MSKPAgoNUG9kTG9nUmVxdWVzdBIPCgdjbHVzdGVyGAEgASgJEhEKCW5hbWVzcGFjZRgCIAEoCRIMCgRuYW1lGAMgASgJEhEKCWNvbnRhaW5lchgEIAEoCRIOCgZmb2xsb3cYBSABKAgSGQoKdGFpbF9saW5lcxgGIAEoA0IFqgECCAESHAoNc2luY2Vfc2Vjb25kcxgHIAEoA0IFqgECCAESLgoKc2luY2VfdGltZRgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEAoIcHJldmlvdXMYCSABKAgSEgoKdGltZXN0YW1wcxgKIAEoCBIaCgtsaW1pdF9ieXRlcxgLIAEoA0IFqgECCAEiHgoOUG9kTG9nUmVzcG9uc2USDAoEZGF0YRgBIAEoDCKSAQoRRXhlY3V0ZVRUWVJlcXVlc3QSDwoHY2x1c3RlchgBIAEoCRIRCgluYW1lc3BhY2UYAiABKAkSDAoEbmFtZRgDIAEoCRIRCgljb250YWluZXIYBCABKAkSDwoHY29tbWFuZBgFIAMoCRILCgN0dHkYBiABKAgSDAoEcm93cxgHIAEoDRIMCgRjb2xzGAggASgNIkgKEkV4ZWN1dGVUVFlSZXNwb25zZRISCgpzZXNzaW9uX2lkGAEgASgJEg4KBnN0ZG91dBgCIAEoDBIOCgZzdGRlcnIYAyABKAwiNAoPV3JpdGVUVFlSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDQoFc3RkaW4YAiABKAwiQgoQUmVzaXplVFRZUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEgwKBHJvd3MYAiABKA0SDAoEY29scxgDIAEoDSJUChJQb3J0Rm9yd2FyZFJlcXVlc3QSDwoHY2x1c3RlchgBIAEoCRIRCgluYW1lc3BhY2UYAiABKAkSDAoEbmFtZRgDIAEoCRIMCgRwb3J0GAQgASgFIjcKE1BvcnRGb3J3YXJkUmVzcG9uc2USEgoKc2Vzc2lvbl9pZBgBIAEoCRIMCgRkYXRhGAIgASgMIjsKF1dyaXRlUG9ydEZvcndhcmRSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDAoEZGF0YRgCIAEoDCKEAQoMU2NhbGVSZXF1ZXN0Eg8KB2NsdXN0ZXIYASABKAkSDQoFZ3JvdXAYAiABKAkSDwoHdmVyc2lvbhgDIAEoCRIQCghyZXNvdXJjZRgEIAEoCRIRCgluYW1lc3BhY2UYBSABKAkSDAoEbmFtZRgGIAEoCRIQCghyZXBsaWNhcxgHIAEoBSIhCg1TY2FsZVJlc3BvbnNlEhAKCHJlcGxpY2FzGAEgASgFInQKDlJlc3RhcnRSZXF1ZXN0Eg8KB2NsdXN0ZXIYASABKAkSDQoFZ3JvdXAYAiABKAkSDwoHdmVyc2lvbhgDIAEoCRIQCghyZXNvdXJjZRgEIAEoCRIRCgluYW1lc3BhY2UYBSABKAkSDAoEbmFtZRgGIAEoCSKxAQoYU3ViUmVzb3VyY2VBY3Rpb25SZXF1ZXN0Eg8KB2NsdXN0ZXIYASABKAkSDQoFZ3JvdXAYAiABKAkSDwoHdmVyc2lvbhgDIAEoCRIQCghyZXNvdXJjZRgEIAEoCRIRCgluYW1lc3BhY2UYBSABKAkSDAoEbmFtZRgGIAEoCRITCgtzdWJyZXNvdXJjZRgHIAEoCRIOCgZtZXRob2QYCCABKAkSDAoEYm9keRgJIAEoDCJEChlTdWJSZXNvdXJjZUFjdGlvblJlc3BvbnNlEicKBnJlc3VsdBgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QymwgKDlJ1bnRpbWVTZXJ2aWNlEm8KBlBvZExvZxIkLm90dGVyc2NhbGUucnVudGltZS52MS5Qb2RMb2dSZXF1ZXN0GiUub3R0ZXJzY2FsZS5ydW50aW1lLnYxLlBvZExvZ1Jlc3BvbnNlIhaK39UdEQoPcnVudGltZS1lbmFibGVkMAESewoKRXhlY3V0ZVRUWRIoLm90dGVyc2NhbGUucnVudGltZS52MS5FeGVjdXRlVFRZUmVxdWVzdBopLm90dGVyc2NhbGUucnVudGltZS52MS5FeGVjdXRlVFRZUmVzcG9uc2UiForf1R0RCg9ydW50aW1lLWVuYWJsZWQwARJiCghXcml0ZVRUWRImLm90dGVyc2NhbGUucnVudGltZS52MS5Xcml0ZVRUWVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiForf1R0RCg9ydW50aW1lLWVuYWJsZWQSZAoJUmVzaXplVFRZEicub3R0ZXJzY2FsZS5ydW50aW1lLnYxLlJlc2l6ZVRUWVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiForf1R0RCg9ydW50aW1lLWVuYWJsZWQSfgoLUG9ydEZvcndhcmQSKS5vdHRlcnNjYWxlLnJ1bnRpbWUudjEuUG9ydEZvcndhcmRSZXF1ZXN0Gioub3R0ZXJzY2FsZS5ydW50aW1lLnYxLlBvcnRGb3J3YXJkUmVzcG9uc2UiForf1R0RCg9ydW50aW1lLWVuYWJsZWQwARJyChBXcml0ZVBvcnRGb3J3YXJkEi4ub3R0ZXJzY2FsZS5ydW50aW1lLnYxLldyaXRlUG9ydEZvcndhcmRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhaK39UdEQoPcnVudGltZS1lbmFibGVkEmoKBVNjYWxlEiMub3R0ZXJzY2FsZS5ydW50aW1lLnYxLlNjYWxlUmVxdWVzdBokLm90dGVyc2NhbGUucnVudGltZS52MS5TY2FsZVJlc3BvbnNlIhaK39UdEQoPcnVudGltZS1lbmFibGVkEmAKB1Jlc3RhcnQSJS5vdHRlcnNjYWxlLnJ1bnRpbWUudjEuUmVzdGFydFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiForf1R0RCg9ydW50aW1lLWVuYWJsZWQSjgEKEVN1YlJlc291cmNlQWN0aW9uEi8ub3R0ZXJzY2FsZS5ydW50aW1lLnYxLlN1YlJlc291cmNlQWN0aW9uUmVxdWVzdBowLm90dGVyc2NhbGUucnVudGltZS52MS5TdWJSZXNvdXJjZUFjdGlvblJlc3BvbnNlIhaK39UdEQoPcnVudGltZS1lbmFibGVkQjBaLmdpdGh1Yi5jb20vb3R0ZXJzY2FsZS9hcGkvcnVudGltZS92MTtydW50aW1ldjFiCGVkaXRpb25zcOgH", [file_feature, file_google_protobuf_empty, file_google_protobuf_struct, file_google_protobuf_timestamp]);
14
14
 
15
15
  /**
16
16
  * Describes the message otterscale.runtime.v1.PodLogRequest.
@@ -96,6 +96,20 @@ export const ScaleResponseSchema = /*@__PURE__*/
96
96
  export const RestartRequestSchema = /*@__PURE__*/
97
97
  messageDesc(file_runtime_v1_runtime, 11);
98
98
 
99
+ /**
100
+ * Describes the message otterscale.runtime.v1.SubResourceActionRequest.
101
+ * Use `create(SubResourceActionRequestSchema)` to create a new message.
102
+ */
103
+ export const SubResourceActionRequestSchema = /*@__PURE__*/
104
+ messageDesc(file_runtime_v1_runtime, 12);
105
+
106
+ /**
107
+ * Describes the message otterscale.runtime.v1.SubResourceActionResponse.
108
+ * Use `create(SubResourceActionResponseSchema)` to create a new message.
109
+ */
110
+ export const SubResourceActionResponseSchema = /*@__PURE__*/
111
+ messageDesc(file_runtime_v1_runtime, 13);
112
+
99
113
  /**
100
114
  * RuntimeService provides runtime operations for Kubernetes workloads,
101
115
  * including log streaming, interactive exec, port forwarding, scaling,