diff --git a/doc/index.html b/doc/index.html
index 423ce078..5120e158 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -270,19 +270,19 @@
Table of Contents
- MMeta
+ MLabelsPatch
- MPaging
+ MMeta
- MUpdateLabels
+ MPaging
- MUpdateLabelsIndividually
+ MUpdateLabels
@@ -3016,6 +3016,37 @@ Labels.LabelsEntry
+
+ LabelsPatch adds, updates or remove given labels without modifying others
+
+
+
+
+ | Field | Type | Label | Description |
+
+
+
+
+ | update |
+ Labels |
+ |
+ Update labels. New ones will be added, existing ones overwritten |
+
+
+
+ | remove |
+ string |
+ repeated |
+ Remove labels by key |
+
+
+
+
+
+
+
+
+
Meta of a message
@@ -3116,45 +3147,14 @@
replace |
Labels |
|
- Labels replaces existing labels with the given ones |
-
-
-
- | individual |
- UpdateLabelsIndividually |
- |
- UpdateLabelsIndividually adds, updates or remove given labels without modifying others |
+ Replace existing labels with the given ones |
-
-
-
-
-
-
-
-
- UpdateLabelsIndividually adds, updates or remove given labels without modifying others
-
-
-
-
- | Field | Type | Label | Description |
-
-
-
- | update |
- Labels |
+ patch |
+ LabelsPatch |
|
- Update labels. New ones will be added, existing ones overwritten |
-
-
-
- | remove |
- string |
- repeated |
- Remove labels by key |
+ Patch adds, updates or remove given labels without modifying others |
diff --git a/go/metalstack/api/v2/common.pb.go b/go/metalstack/api/v2/common.pb.go
index 86a07ff6..f3733236 100644
--- a/go/metalstack/api/v2/common.pb.go
+++ b/go/metalstack/api/v2/common.pb.go
@@ -655,12 +655,12 @@ func (x *Meta) GetDeletionTaskId() string {
// UpdateLabels is a message to update labels
type UpdateLabels struct {
state protoimpl.MessageState `protogen:"open.v1"`
- // strategy defines the label update strategy
+ // Strategy defines the label update strategy
//
// Types that are valid to be assigned to Strategy:
//
// *UpdateLabels_Replace
- // *UpdateLabels_Individual
+ // *UpdateLabels_Patch
Strategy isUpdateLabels_Strategy `protobuf_oneof:"strategy"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
@@ -712,10 +712,10 @@ func (x *UpdateLabels) GetReplace() *Labels {
return nil
}
-func (x *UpdateLabels) GetIndividual() *UpdateLabelsIndividually {
+func (x *UpdateLabels) GetPatch() *LabelsPatch {
if x != nil {
- if x, ok := x.Strategy.(*UpdateLabels_Individual); ok {
- return x.Individual
+ if x, ok := x.Strategy.(*UpdateLabels_Patch); ok {
+ return x.Patch
}
}
return nil
@@ -726,21 +726,21 @@ type isUpdateLabels_Strategy interface {
}
type UpdateLabels_Replace struct {
- // Labels replaces existing labels with the given ones
+ // Replace existing labels with the given ones
Replace *Labels `protobuf:"bytes,1,opt,name=replace,proto3,oneof"`
}
-type UpdateLabels_Individual struct {
- // UpdateLabelsIndividually adds, updates or remove given labels without modifying others
- Individual *UpdateLabelsIndividually `protobuf:"bytes,2,opt,name=individual,proto3,oneof"`
+type UpdateLabels_Patch struct {
+ // Patch adds, updates or remove given labels without modifying others
+ Patch *LabelsPatch `protobuf:"bytes,2,opt,name=patch,proto3,oneof"`
}
func (*UpdateLabels_Replace) isUpdateLabels_Strategy() {}
-func (*UpdateLabels_Individual) isUpdateLabels_Strategy() {}
+func (*UpdateLabels_Patch) isUpdateLabels_Strategy() {}
-// UpdateLabelsIndividually adds, updates or remove given labels without modifying others
-type UpdateLabelsIndividually struct {
+// LabelsPatch adds, updates or remove given labels without modifying others
+type LabelsPatch struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Update labels. New ones will be added, existing ones overwritten
Update *Labels `protobuf:"bytes,1,opt,name=update,proto3" json:"update,omitempty"`
@@ -750,20 +750,20 @@ type UpdateLabelsIndividually struct {
sizeCache protoimpl.SizeCache
}
-func (x *UpdateLabelsIndividually) Reset() {
- *x = UpdateLabelsIndividually{}
+func (x *LabelsPatch) Reset() {
+ *x = LabelsPatch{}
mi := &file_metalstack_api_v2_common_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
-func (x *UpdateLabelsIndividually) String() string {
+func (x *LabelsPatch) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*UpdateLabelsIndividually) ProtoMessage() {}
+func (*LabelsPatch) ProtoMessage() {}
-func (x *UpdateLabelsIndividually) ProtoReflect() protoreflect.Message {
+func (x *LabelsPatch) ProtoReflect() protoreflect.Message {
mi := &file_metalstack_api_v2_common_proto_msgTypes[4]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -775,19 +775,19 @@ func (x *UpdateLabelsIndividually) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use UpdateLabelsIndividually.ProtoReflect.Descriptor instead.
-func (*UpdateLabelsIndividually) Descriptor() ([]byte, []int) {
+// Deprecated: Use LabelsPatch.ProtoReflect.Descriptor instead.
+func (*LabelsPatch) Descriptor() ([]byte, []int) {
return file_metalstack_api_v2_common_proto_rawDescGZIP(), []int{4}
}
-func (x *UpdateLabelsIndividually) GetUpdate() *Labels {
+func (x *LabelsPatch) GetUpdate() *Labels {
if x != nil {
return x.Update
}
return nil
}
-func (x *UpdateLabelsIndividually) GetRemove() []string {
+func (x *LabelsPatch) GetRemove() []string {
if x != nil {
return x.Remove
}
@@ -983,16 +983,14 @@ const file_metalstack_api_v2_common_proto_rawDesc = "" +
"generation\x12-\n" +
"\x10deletion_task_id\x18\x05 \x01(\tH\x01R\x0edeletionTaskId\x88\x01\x01B\t\n" +
"\a_labelsB\x13\n" +
- "\x11_deletion_task_id\"\xa7\x01\n" +
+ "\x11_deletion_task_id\"\x90\x01\n" +
"\fUpdateLabels\x125\n" +
- "\areplace\x18\x01 \x01(\v2\x19.metalstack.api.v2.LabelsH\x00R\areplace\x12M\n" +
- "\n" +
- "individual\x18\x02 \x01(\v2+.metalstack.api.v2.UpdateLabelsIndividuallyH\x00R\n" +
- "individualB\x11\n" +
- "\bstrategy\x12\x05\xbaH\x02\b\x01\"s\n" +
- "\x18UpdateLabelsIndividually\x121\n" +
- "\x06update\x18\x01 \x01(\v2\x19.metalstack.api.v2.LabelsR\x06update\x12$\n" +
- "\x06remove\x18\x02 \x03(\tB\f\xbaH\t\x92\x01\x06ะค\xb3\xb1\x02\x01R\x06remove\"\xaa\x01\n" +
+ "\areplace\x18\x01 \x01(\v2\x19.metalstack.api.v2.LabelsH\x00R\areplace\x126\n" +
+ "\x05patch\x18\x02 \x01(\v2\x1e.metalstack.api.v2.LabelsPatchH\x00R\x05patchB\x11\n" +
+ "\bstrategy\x12\x05\xbaH\x02\b\x01\"l\n" +
+ "\vLabelsPatch\x121\n" +
+ "\x06update\x18\x01 \x01(\v2\x19.metalstack.api.v2.LabelsR\x06update\x12*\n" +
+ "\x06remove\x18\x02 \x03(\tB\x12\xbaH\x0f\x92\x01\f\x18\x01\"\br\x06\U00033bb1\x02\x01R\x06remove\"\xaa\x01\n" +
"\n" +
"UpdateMeta\x129\n" +
"\n" +
@@ -1076,7 +1074,7 @@ var file_metalstack_api_v2_common_proto_goTypes = []any{
(*Labels)(nil), // 9: metalstack.api.v2.Labels
(*Meta)(nil), // 10: metalstack.api.v2.Meta
(*UpdateLabels)(nil), // 11: metalstack.api.v2.UpdateLabels
- (*UpdateLabelsIndividually)(nil), // 12: metalstack.api.v2.UpdateLabelsIndividually
+ (*LabelsPatch)(nil), // 12: metalstack.api.v2.LabelsPatch
(*UpdateMeta)(nil), // 13: metalstack.api.v2.UpdateMeta
nil, // 14: metalstack.api.v2.Labels.LabelsEntry
(*timestamppb.Timestamp)(nil), // 15: google.protobuf.Timestamp
@@ -1089,8 +1087,8 @@ var file_metalstack_api_v2_common_proto_depIdxs = []int32{
15, // 2: metalstack.api.v2.Meta.created_at:type_name -> google.protobuf.Timestamp
15, // 3: metalstack.api.v2.Meta.updated_at:type_name -> google.protobuf.Timestamp
9, // 4: metalstack.api.v2.UpdateLabels.replace:type_name -> metalstack.api.v2.Labels
- 12, // 5: metalstack.api.v2.UpdateLabels.individual:type_name -> metalstack.api.v2.UpdateLabelsIndividually
- 9, // 6: metalstack.api.v2.UpdateLabelsIndividually.update:type_name -> metalstack.api.v2.Labels
+ 12, // 5: metalstack.api.v2.UpdateLabels.patch:type_name -> metalstack.api.v2.LabelsPatch
+ 9, // 6: metalstack.api.v2.LabelsPatch.update:type_name -> metalstack.api.v2.Labels
15, // 7: metalstack.api.v2.UpdateMeta.updated_at:type_name -> google.protobuf.Timestamp
7, // 8: metalstack.api.v2.UpdateMeta.locking_strategy:type_name -> metalstack.api.v2.OptimisticLockingStrategy
16, // 9: metalstack.api.v2.tenant_roles:extendee -> google.protobuf.MethodOptions
@@ -1125,7 +1123,7 @@ func file_metalstack_api_v2_common_proto_init() {
file_metalstack_api_v2_common_proto_msgTypes[2].OneofWrappers = []any{}
file_metalstack_api_v2_common_proto_msgTypes[3].OneofWrappers = []any{
(*UpdateLabels_Replace)(nil),
- (*UpdateLabels_Individual)(nil),
+ (*UpdateLabels_Patch)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
diff --git a/js/metalstack/api/v2/common_pb.d.ts b/js/metalstack/api/v2/common_pb.d.ts
index 6ad353fa..b8ba51d5 100644
--- a/js/metalstack/api/v2/common_pb.d.ts
+++ b/js/metalstack/api/v2/common_pb.d.ts
@@ -101,13 +101,13 @@ export declare const MetaSchema: GenMessage;
*/
export type UpdateLabels = Message<"metalstack.api.v2.UpdateLabels"> & {
/**
- * strategy defines the label update strategy
+ * Strategy defines the label update strategy
*
* @generated from oneof metalstack.api.v2.UpdateLabels.strategy
*/
strategy: {
/**
- * Labels replaces existing labels with the given ones
+ * Replace existing labels with the given ones
*
* @generated from field: metalstack.api.v2.Labels replace = 1;
*/
@@ -115,12 +115,12 @@ export type UpdateLabels = Message<"metalstack.api.v2.UpdateLabels"> & {
case: "replace";
} | {
/**
- * UpdateLabelsIndividually adds, updates or remove given labels without modifying others
+ * Patch adds, updates or remove given labels without modifying others
*
- * @generated from field: metalstack.api.v2.UpdateLabelsIndividually individual = 2;
+ * @generated from field: metalstack.api.v2.LabelsPatch patch = 2;
*/
- value: UpdateLabelsIndividually;
- case: "individual";
+ value: LabelsPatch;
+ case: "patch";
} | {
case: undefined;
value?: undefined;
@@ -132,11 +132,11 @@ export type UpdateLabels = Message<"metalstack.api.v2.UpdateLabels"> & {
*/
export declare const UpdateLabelsSchema: GenMessage;
/**
- * UpdateLabelsIndividually adds, updates or remove given labels without modifying others
+ * LabelsPatch adds, updates or remove given labels without modifying others
*
- * @generated from message metalstack.api.v2.UpdateLabelsIndividually
+ * @generated from message metalstack.api.v2.LabelsPatch
*/
-export type UpdateLabelsIndividually = Message<"metalstack.api.v2.UpdateLabelsIndividually"> & {
+export type LabelsPatch = Message<"metalstack.api.v2.LabelsPatch"> & {
/**
* Update labels. New ones will be added, existing ones overwritten
*
@@ -151,10 +151,10 @@ export type UpdateLabelsIndividually = Message<"metalstack.api.v2.UpdateLabelsIn
remove: string[];
};
/**
- * Describes the message metalstack.api.v2.UpdateLabelsIndividually.
- * Use `create(UpdateLabelsIndividuallySchema)` to create a new message.
+ * Describes the message metalstack.api.v2.LabelsPatch.
+ * Use `create(LabelsPatchSchema)` to create a new message.
*/
-export declare const UpdateLabelsIndividuallySchema: GenMessage;
+export declare const LabelsPatchSchema: GenMessage;
/**
* UpdateMeta must be provided with every UpdateRequest to define how optimistic locking should be handled
*
diff --git a/js/metalstack/api/v2/common_pb.js b/js/metalstack/api/v2/common_pb.js
index 518993eb..5962b737 100644
--- a/js/metalstack/api/v2/common_pb.js
+++ b/js/metalstack/api/v2/common_pb.js
@@ -8,7 +8,7 @@ import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb";
/**
* Describes the file metalstack/api/v2/common.proto.
*/
-export const file_metalstack_api_v2_common = /*@__PURE__*/ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9jb21tb24ucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIkIKBlBhZ2luZxIRCgRwYWdlGAEgASgESACIAQESEgoFY291bnQYAiABKARIAYgBAUIHCgVfcGFnZUIICgZfY291bnQijgEKBkxhYmVscxJVCgZsYWJlbHMYASADKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMuTGFiZWxzRW50cnlCHrpIG5oBGLiVuLECASIHcgUQARiAAioHcgUQABiAAhotCgtMYWJlbHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIukBCgRNZXRhEi4KBmxhYmVscxgBIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gAiAEBEi4KCmNyZWF0ZWRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmdlbmVyYXRpb24YBCABKAQSHQoQZGVsZXRpb25fdGFza19pZBgFIAEoCUgBiAEBQgkKB19sYWJlbHNCEwoRX2RlbGV0aW9uX3Rhc2tfaWQikgEKDFVwZGF0ZUxhYmVscxIsCgdyZXBsYWNlGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAASQQoKaW5kaXZpZHVhbBgCIAEoCzIrLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0luZGl2aWR1YWxseUgAQhEKCHN0cmF0ZWd5EgW6SAIIASJjChhVcGRhdGVMYWJlbHNJbmRpdmlkdWFsbHkSKQoGdXBkYXRlGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzEhwKBnJlbW92ZRgCIAMoCUIMukgJkgEG0KSzsQIBIo4BCgpVcGRhdGVNZXRhEi4KCnVwZGF0ZWRfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wElAKEGxvY2tpbmdfc3RyYXRlZ3kYAiABKA4yLC5tZXRhbHN0YWNrLmFwaS52Mi5PcHRpbWlzdGljTG9ja2luZ1N0cmF0ZWd5Qgi6SAWCAQIQASqHAQoKVGVuYW50Um9sZRIbChdURU5BTlRfUk9MRV9VTlNQRUNJRklFRBAAEhUKEVRFTkFOVF9ST0xFX09XTkVSEAESFgoSVEVOQU5UX1JPTEVfRURJVE9SEAISFgoSVEVOQU5UX1JPTEVfVklFV0VSEAMSFQoRVEVOQU5UX1JPTEVfR1VFU1QQBCp1CgtQcm9qZWN0Um9sZRIcChhQUk9KRUNUX1JPTEVfVU5TUEVDSUZJRUQQABIWChJQUk9KRUNUX1JPTEVfT1dORVIQARIXChNQUk9KRUNUX1JPTEVfRURJVE9SEAISFwoTUFJPSkVDVF9ST0xFX1ZJRVdFUhADKlUKCUFkbWluUm9sZRIaChZBRE1JTl9ST0xFX1VOU1BFQ0lGSUVEEAASFQoRQURNSU5fUk9MRV9FRElUT1IQARIVChFBRE1JTl9ST0xFX1ZJRVdFUhACKlUKCUluZnJhUm9sZRIaChZJTkZSQV9ST0xFX1VOU1BFQ0lGSUVEEAASFQoRSU5GUkFfUk9MRV9FRElUT1IQARIVChFJTkZSQV9ST0xFX1ZJRVdFUhACKl0KC01hY2hpbmVSb2xlEhwKGE1BQ0hJTkVfUk9MRV9VTlNQRUNJRklFRBAAEhcKE01BQ0hJTkVfUk9MRV9FRElUT1IQARIXChNNQUNISU5FX1JPTEVfVklFV0VSEAIqVAoKVmlzaWJpbGl0eRIaChZWSVNJQklMSVRZX1VOU1BFQ0lGSUVEEAASFQoRVklTSUJJTElUWV9QVUJMSUMQARITCg9WSVNJQklMSVRZX1NFTEYQAipSCghBdWRpdGluZxIYChRBVURJVElOR19VTlNQRUNJRklFRBAAEhUKEUFVRElUSU5HX0lOQ0xVREVEEAESFQoRQVVESVRJTkdfRVhDTFVERUQQAiqYAQoZT3B0aW1pc3RpY0xvY2tpbmdTdHJhdGVneRIrCidPUFRJTUlTVElDX0xPQ0tJTkdfU1RSQVRFR1lfVU5TUEVDSUZJRUQQABImCiJPUFRJTUlTVElDX0xPQ0tJTkdfU1RSQVRFR1lfQ0xJRU5UEAESJgoiT1BUSU1JU1RJQ19MT0NLSU5HX1NUUkFURUdZX1NFUlZFUhACOmIKDHRlbmFudF9yb2xlcxIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGLiOAyADKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRSb2xlUgt0ZW5hbnRSb2xlczplCg1wcm9qZWN0X3JvbGVzEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYuY4DIAMoDjIeLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RSb2xlUgxwcm9qZWN0Um9sZXM6XwoLYWRtaW5fcm9sZXMSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxi6jgMgAygOMhwubWV0YWxzdGFjay5hcGkudjIuQWRtaW5Sb2xlUgphZG1pblJvbGVzOl8KCnZpc2liaWxpdHkSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxi7jgMgASgOMh0ubWV0YWxzdGFjay5hcGkudjIuVmlzaWJpbGl0eVIKdmlzaWJpbGl0eTpZCghhdWRpdGluZxIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGLyOAyABKA4yGy5tZXRhbHN0YWNrLmFwaS52Mi5BdWRpdGluZ1IIYXVkaXRpbmc6XwoLaW5mcmFfcm9sZXMSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxi9jgMgAygOMhwubWV0YWxzdGFjay5hcGkudjIuSW5mcmFSb2xlUgppbmZyYVJvbGVzOmUKDW1hY2hpbmVfcm9sZXMSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxi+jgMgAygOMh4ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZVJvbGVSDG1hY2hpbmVSb2xlczpPChFlbnVtX3N0cmluZ192YWx1ZRIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zGKCWAyABKAlSD2VudW1TdHJpbmdWYWx1ZULBAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgtDb21tb25Qcm90b1ABWjVnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FwaS92MjthcGl2MqICA01BWKoCEU1ldGFsc3RhY2suQXBpLlYyygIRTWV0YWxzdGFja1xBcGlcVjLiAh1NZXRhbHN0YWNrXEFwaVxWMlxHUEJNZXRhZGF0YeoCE01ldGFsc3RhY2s6OkFwaTo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_descriptor, file_google_protobuf_timestamp, file_metalstack_api_v2_predefined_rules]);
+export const file_metalstack_api_v2_common = /*@__PURE__*/ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9jb21tb24ucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIkIKBlBhZ2luZxIRCgRwYWdlGAEgASgESACIAQESEgoFY291bnQYAiABKARIAYgBAUIHCgVfcGFnZUIICgZfY291bnQijgEKBkxhYmVscxJVCgZsYWJlbHMYASADKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMuTGFiZWxzRW50cnlCHrpIG5oBGLiVuLECASIHcgUQARiAAioHcgUQABiAAhotCgtMYWJlbHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIukBCgRNZXRhEi4KBmxhYmVscxgBIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gAiAEBEi4KCmNyZWF0ZWRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmdlbmVyYXRpb24YBCABKAQSHQoQZGVsZXRpb25fdGFza19pZBgFIAEoCUgBiAEBQgkKB19sYWJlbHNCEwoRX2RlbGV0aW9uX3Rhc2tfaWQigAEKDFVwZGF0ZUxhYmVscxIsCgdyZXBsYWNlGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAASLwoFcGF0Y2gYAiABKAsyHi5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHNQYXRjaEgAQhEKCHN0cmF0ZWd5EgW6SAIIASJcCgtMYWJlbHNQYXRjaBIpCgZ1cGRhdGUYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMSIgoGcmVtb3ZlGAIgAygJQhK6SA+SAQwYASIIcgbws66xAgEijgEKClVwZGF0ZU1ldGESLgoKdXBkYXRlZF9hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASUAoQbG9ja2luZ19zdHJhdGVneRgCIAEoDjIsLm1ldGFsc3RhY2suYXBpLnYyLk9wdGltaXN0aWNMb2NraW5nU3RyYXRlZ3lCCLpIBYIBAhABKocBCgpUZW5hbnRSb2xlEhsKF1RFTkFOVF9ST0xFX1VOU1BFQ0lGSUVEEAASFQoRVEVOQU5UX1JPTEVfT1dORVIQARIWChJURU5BTlRfUk9MRV9FRElUT1IQAhIWChJURU5BTlRfUk9MRV9WSUVXRVIQAxIVChFURU5BTlRfUk9MRV9HVUVTVBAEKnUKC1Byb2plY3RSb2xlEhwKGFBST0pFQ1RfUk9MRV9VTlNQRUNJRklFRBAAEhYKElBST0pFQ1RfUk9MRV9PV05FUhABEhcKE1BST0pFQ1RfUk9MRV9FRElUT1IQAhIXChNQUk9KRUNUX1JPTEVfVklFV0VSEAMqVQoJQWRtaW5Sb2xlEhoKFkFETUlOX1JPTEVfVU5TUEVDSUZJRUQQABIVChFBRE1JTl9ST0xFX0VESVRPUhABEhUKEUFETUlOX1JPTEVfVklFV0VSEAIqVQoJSW5mcmFSb2xlEhoKFklORlJBX1JPTEVfVU5TUEVDSUZJRUQQABIVChFJTkZSQV9ST0xFX0VESVRPUhABEhUKEUlORlJBX1JPTEVfVklFV0VSEAIqXQoLTWFjaGluZVJvbGUSHAoYTUFDSElORV9ST0xFX1VOU1BFQ0lGSUVEEAASFwoTTUFDSElORV9ST0xFX0VESVRPUhABEhcKE01BQ0hJTkVfUk9MRV9WSUVXRVIQAipUCgpWaXNpYmlsaXR5EhoKFlZJU0lCSUxJVFlfVU5TUEVDSUZJRUQQABIVChFWSVNJQklMSVRZX1BVQkxJQxABEhMKD1ZJU0lCSUxJVFlfU0VMRhACKlIKCEF1ZGl0aW5nEhgKFEFVRElUSU5HX1VOU1BFQ0lGSUVEEAASFQoRQVVESVRJTkdfSU5DTFVERUQQARIVChFBVURJVElOR19FWENMVURFRBACKpgBChlPcHRpbWlzdGljTG9ja2luZ1N0cmF0ZWd5EisKJ09QVElNSVNUSUNfTE9DS0lOR19TVFJBVEVHWV9VTlNQRUNJRklFRBAAEiYKIk9QVElNSVNUSUNfTE9DS0lOR19TVFJBVEVHWV9DTElFTlQQARImCiJPUFRJTUlTVElDX0xPQ0tJTkdfU1RSQVRFR1lfU0VSVkVSEAI6YgoMdGVuYW50X3JvbGVzEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYuI4DIAMoDjIdLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFJvbGVSC3RlbmFudFJvbGVzOmUKDXByb2plY3Rfcm9sZXMSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxi5jgMgAygOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVSDHByb2plY3RSb2xlczpfCgthZG1pbl9yb2xlcxIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGLqOAyADKA4yHC5tZXRhbHN0YWNrLmFwaS52Mi5BZG1pblJvbGVSCmFkbWluUm9sZXM6XwoKdmlzaWJpbGl0eRIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGLuOAyABKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5WaXNpYmlsaXR5Ugp2aXNpYmlsaXR5OlkKCGF1ZGl0aW5nEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYvI4DIAEoDjIbLm1ldGFsc3RhY2suYXBpLnYyLkF1ZGl0aW5nUghhdWRpdGluZzpfCgtpbmZyYV9yb2xlcxIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGL2OAyADKA4yHC5tZXRhbHN0YWNrLmFwaS52Mi5JbmZyYVJvbGVSCmluZnJhUm9sZXM6ZQoNbWFjaGluZV9yb2xlcxIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGL6OAyADKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5NYWNoaW5lUm9sZVIMbWFjaGluZVJvbGVzOk8KEWVudW1fc3RyaW5nX3ZhbHVlEiEuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnMYoJYDIAEoCVIPZW51bVN0cmluZ1ZhbHVlQsEBChVjb20ubWV0YWxzdGFjay5hcGkudjJCC0NvbW1vblByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_descriptor, file_google_protobuf_timestamp, file_metalstack_api_v2_predefined_rules]);
/**
* Describes the message metalstack.api.v2.Paging.
* Use `create(PagingSchema)` to create a new message.
@@ -30,10 +30,10 @@ export const MetaSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_commo
*/
export const UpdateLabelsSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_common, 3);
/**
- * Describes the message metalstack.api.v2.UpdateLabelsIndividually.
- * Use `create(UpdateLabelsIndividuallySchema)` to create a new message.
+ * Describes the message metalstack.api.v2.LabelsPatch.
+ * Use `create(LabelsPatchSchema)` to create a new message.
*/
-export const UpdateLabelsIndividuallySchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_common, 4);
+export const LabelsPatchSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_common, 4);
/**
* Describes the message metalstack.api.v2.UpdateMeta.
* Use `create(UpdateMetaSchema)` to create a new message.
diff --git a/js/metalstack/api/v2/common_pb.ts b/js/metalstack/api/v2/common_pb.ts
index 9adeb7b5..2394b163 100644
--- a/js/metalstack/api/v2/common_pb.ts
+++ b/js/metalstack/api/v2/common_pb.ts
@@ -14,7 +14,7 @@ import type { Message } from "@bufbuild/protobuf";
* Describes the file metalstack/api/v2/common.proto.
*/
export const file_metalstack_api_v2_common: GenFile = /*@__PURE__*/
- fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9jb21tb24ucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIkIKBlBhZ2luZxIRCgRwYWdlGAEgASgESACIAQESEgoFY291bnQYAiABKARIAYgBAUIHCgVfcGFnZUIICgZfY291bnQijgEKBkxhYmVscxJVCgZsYWJlbHMYASADKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMuTGFiZWxzRW50cnlCHrpIG5oBGLiVuLECASIHcgUQARiAAioHcgUQABiAAhotCgtMYWJlbHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIukBCgRNZXRhEi4KBmxhYmVscxgBIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gAiAEBEi4KCmNyZWF0ZWRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmdlbmVyYXRpb24YBCABKAQSHQoQZGVsZXRpb25fdGFza19pZBgFIAEoCUgBiAEBQgkKB19sYWJlbHNCEwoRX2RlbGV0aW9uX3Rhc2tfaWQikgEKDFVwZGF0ZUxhYmVscxIsCgdyZXBsYWNlGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAASQQoKaW5kaXZpZHVhbBgCIAEoCzIrLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0luZGl2aWR1YWxseUgAQhEKCHN0cmF0ZWd5EgW6SAIIASJjChhVcGRhdGVMYWJlbHNJbmRpdmlkdWFsbHkSKQoGdXBkYXRlGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzEhwKBnJlbW92ZRgCIAMoCUIMukgJkgEG0KSzsQIBIo4BCgpVcGRhdGVNZXRhEi4KCnVwZGF0ZWRfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wElAKEGxvY2tpbmdfc3RyYXRlZ3kYAiABKA4yLC5tZXRhbHN0YWNrLmFwaS52Mi5PcHRpbWlzdGljTG9ja2luZ1N0cmF0ZWd5Qgi6SAWCAQIQASqHAQoKVGVuYW50Um9sZRIbChdURU5BTlRfUk9MRV9VTlNQRUNJRklFRBAAEhUKEVRFTkFOVF9ST0xFX09XTkVSEAESFgoSVEVOQU5UX1JPTEVfRURJVE9SEAISFgoSVEVOQU5UX1JPTEVfVklFV0VSEAMSFQoRVEVOQU5UX1JPTEVfR1VFU1QQBCp1CgtQcm9qZWN0Um9sZRIcChhQUk9KRUNUX1JPTEVfVU5TUEVDSUZJRUQQABIWChJQUk9KRUNUX1JPTEVfT1dORVIQARIXChNQUk9KRUNUX1JPTEVfRURJVE9SEAISFwoTUFJPSkVDVF9ST0xFX1ZJRVdFUhADKlUKCUFkbWluUm9sZRIaChZBRE1JTl9ST0xFX1VOU1BFQ0lGSUVEEAASFQoRQURNSU5fUk9MRV9FRElUT1IQARIVChFBRE1JTl9ST0xFX1ZJRVdFUhACKlUKCUluZnJhUm9sZRIaChZJTkZSQV9ST0xFX1VOU1BFQ0lGSUVEEAASFQoRSU5GUkFfUk9MRV9FRElUT1IQARIVChFJTkZSQV9ST0xFX1ZJRVdFUhACKl0KC01hY2hpbmVSb2xlEhwKGE1BQ0hJTkVfUk9MRV9VTlNQRUNJRklFRBAAEhcKE01BQ0hJTkVfUk9MRV9FRElUT1IQARIXChNNQUNISU5FX1JPTEVfVklFV0VSEAIqVAoKVmlzaWJpbGl0eRIaChZWSVNJQklMSVRZX1VOU1BFQ0lGSUVEEAASFQoRVklTSUJJTElUWV9QVUJMSUMQARITCg9WSVNJQklMSVRZX1NFTEYQAipSCghBdWRpdGluZxIYChRBVURJVElOR19VTlNQRUNJRklFRBAAEhUKEUFVRElUSU5HX0lOQ0xVREVEEAESFQoRQVVESVRJTkdfRVhDTFVERUQQAiqYAQoZT3B0aW1pc3RpY0xvY2tpbmdTdHJhdGVneRIrCidPUFRJTUlTVElDX0xPQ0tJTkdfU1RSQVRFR1lfVU5TUEVDSUZJRUQQABImCiJPUFRJTUlTVElDX0xPQ0tJTkdfU1RSQVRFR1lfQ0xJRU5UEAESJgoiT1BUSU1JU1RJQ19MT0NLSU5HX1NUUkFURUdZX1NFUlZFUhACOmIKDHRlbmFudF9yb2xlcxIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGLiOAyADKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRSb2xlUgt0ZW5hbnRSb2xlczplCg1wcm9qZWN0X3JvbGVzEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYuY4DIAMoDjIeLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RSb2xlUgxwcm9qZWN0Um9sZXM6XwoLYWRtaW5fcm9sZXMSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxi6jgMgAygOMhwubWV0YWxzdGFjay5hcGkudjIuQWRtaW5Sb2xlUgphZG1pblJvbGVzOl8KCnZpc2liaWxpdHkSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxi7jgMgASgOMh0ubWV0YWxzdGFjay5hcGkudjIuVmlzaWJpbGl0eVIKdmlzaWJpbGl0eTpZCghhdWRpdGluZxIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGLyOAyABKA4yGy5tZXRhbHN0YWNrLmFwaS52Mi5BdWRpdGluZ1IIYXVkaXRpbmc6XwoLaW5mcmFfcm9sZXMSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxi9jgMgAygOMhwubWV0YWxzdGFjay5hcGkudjIuSW5mcmFSb2xlUgppbmZyYVJvbGVzOmUKDW1hY2hpbmVfcm9sZXMSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxi+jgMgAygOMh4ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZVJvbGVSDG1hY2hpbmVSb2xlczpPChFlbnVtX3N0cmluZ192YWx1ZRIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zGKCWAyABKAlSD2VudW1TdHJpbmdWYWx1ZULBAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgtDb21tb25Qcm90b1ABWjVnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FwaS92MjthcGl2MqICA01BWKoCEU1ldGFsc3RhY2suQXBpLlYyygIRTWV0YWxzdGFja1xBcGlcVjLiAh1NZXRhbHN0YWNrXEFwaVxWMlxHUEJNZXRhZGF0YeoCE01ldGFsc3RhY2s6OkFwaTo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_descriptor, file_google_protobuf_timestamp, file_metalstack_api_v2_predefined_rules]);
+ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9jb21tb24ucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIkIKBlBhZ2luZxIRCgRwYWdlGAEgASgESACIAQESEgoFY291bnQYAiABKARIAYgBAUIHCgVfcGFnZUIICgZfY291bnQijgEKBkxhYmVscxJVCgZsYWJlbHMYASADKAsyJS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMuTGFiZWxzRW50cnlCHrpIG5oBGLiVuLECASIHcgUQARiAAioHcgUQABiAAhotCgtMYWJlbHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIukBCgRNZXRhEi4KBmxhYmVscxgBIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0gAiAEBEi4KCmNyZWF0ZWRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmdlbmVyYXRpb24YBCABKAQSHQoQZGVsZXRpb25fdGFza19pZBgFIAEoCUgBiAEBQgkKB19sYWJlbHNCEwoRX2RlbGV0aW9uX3Rhc2tfaWQigAEKDFVwZGF0ZUxhYmVscxIsCgdyZXBsYWNlGAEgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAASLwoFcGF0Y2gYAiABKAsyHi5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHNQYXRjaEgAQhEKCHN0cmF0ZWd5EgW6SAIIASJcCgtMYWJlbHNQYXRjaBIpCgZ1cGRhdGUYASABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMSIgoGcmVtb3ZlGAIgAygJQhK6SA+SAQwYASIIcgbws66xAgEijgEKClVwZGF0ZU1ldGESLgoKdXBkYXRlZF9hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASUAoQbG9ja2luZ19zdHJhdGVneRgCIAEoDjIsLm1ldGFsc3RhY2suYXBpLnYyLk9wdGltaXN0aWNMb2NraW5nU3RyYXRlZ3lCCLpIBYIBAhABKocBCgpUZW5hbnRSb2xlEhsKF1RFTkFOVF9ST0xFX1VOU1BFQ0lGSUVEEAASFQoRVEVOQU5UX1JPTEVfT1dORVIQARIWChJURU5BTlRfUk9MRV9FRElUT1IQAhIWChJURU5BTlRfUk9MRV9WSUVXRVIQAxIVChFURU5BTlRfUk9MRV9HVUVTVBAEKnUKC1Byb2plY3RSb2xlEhwKGFBST0pFQ1RfUk9MRV9VTlNQRUNJRklFRBAAEhYKElBST0pFQ1RfUk9MRV9PV05FUhABEhcKE1BST0pFQ1RfUk9MRV9FRElUT1IQAhIXChNQUk9KRUNUX1JPTEVfVklFV0VSEAMqVQoJQWRtaW5Sb2xlEhoKFkFETUlOX1JPTEVfVU5TUEVDSUZJRUQQABIVChFBRE1JTl9ST0xFX0VESVRPUhABEhUKEUFETUlOX1JPTEVfVklFV0VSEAIqVQoJSW5mcmFSb2xlEhoKFklORlJBX1JPTEVfVU5TUEVDSUZJRUQQABIVChFJTkZSQV9ST0xFX0VESVRPUhABEhUKEUlORlJBX1JPTEVfVklFV0VSEAIqXQoLTWFjaGluZVJvbGUSHAoYTUFDSElORV9ST0xFX1VOU1BFQ0lGSUVEEAASFwoTTUFDSElORV9ST0xFX0VESVRPUhABEhcKE01BQ0hJTkVfUk9MRV9WSUVXRVIQAipUCgpWaXNpYmlsaXR5EhoKFlZJU0lCSUxJVFlfVU5TUEVDSUZJRUQQABIVChFWSVNJQklMSVRZX1BVQkxJQxABEhMKD1ZJU0lCSUxJVFlfU0VMRhACKlIKCEF1ZGl0aW5nEhgKFEFVRElUSU5HX1VOU1BFQ0lGSUVEEAASFQoRQVVESVRJTkdfSU5DTFVERUQQARIVChFBVURJVElOR19FWENMVURFRBACKpgBChlPcHRpbWlzdGljTG9ja2luZ1N0cmF0ZWd5EisKJ09QVElNSVNUSUNfTE9DS0lOR19TVFJBVEVHWV9VTlNQRUNJRklFRBAAEiYKIk9QVElNSVNUSUNfTE9DS0lOR19TVFJBVEVHWV9DTElFTlQQARImCiJPUFRJTUlTVElDX0xPQ0tJTkdfU1RSQVRFR1lfU0VSVkVSEAI6YgoMdGVuYW50X3JvbGVzEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYuI4DIAMoDjIdLm1ldGFsc3RhY2suYXBpLnYyLlRlbmFudFJvbGVSC3RlbmFudFJvbGVzOmUKDXByb2plY3Rfcm9sZXMSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxi5jgMgAygOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVSDHByb2plY3RSb2xlczpfCgthZG1pbl9yb2xlcxIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGLqOAyADKA4yHC5tZXRhbHN0YWNrLmFwaS52Mi5BZG1pblJvbGVSCmFkbWluUm9sZXM6XwoKdmlzaWJpbGl0eRIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGLuOAyABKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5WaXNpYmlsaXR5Ugp2aXNpYmlsaXR5OlkKCGF1ZGl0aW5nEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYvI4DIAEoDjIbLm1ldGFsc3RhY2suYXBpLnYyLkF1ZGl0aW5nUghhdWRpdGluZzpfCgtpbmZyYV9yb2xlcxIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGL2OAyADKA4yHC5tZXRhbHN0YWNrLmFwaS52Mi5JbmZyYVJvbGVSCmluZnJhUm9sZXM6ZQoNbWFjaGluZV9yb2xlcxIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGL6OAyADKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5NYWNoaW5lUm9sZVIMbWFjaGluZVJvbGVzOk8KEWVudW1fc3RyaW5nX3ZhbHVlEiEuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnMYoJYDIAEoCVIPZW51bVN0cmluZ1ZhbHVlQsEBChVjb20ubWV0YWxzdGFjay5hcGkudjJCC0NvbW1vblByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_descriptor, file_google_protobuf_timestamp, file_metalstack_api_v2_predefined_rules]);
/**
* Paging defines paging for methods with a lot of results
@@ -124,13 +124,13 @@ export const MetaSchema: GenMessage = /*@__PURE__*/
*/
export type UpdateLabels = Message<"metalstack.api.v2.UpdateLabels"> & {
/**
- * strategy defines the label update strategy
+ * Strategy defines the label update strategy
*
* @generated from oneof metalstack.api.v2.UpdateLabels.strategy
*/
strategy: {
/**
- * Labels replaces existing labels with the given ones
+ * Replace existing labels with the given ones
*
* @generated from field: metalstack.api.v2.Labels replace = 1;
*/
@@ -138,12 +138,12 @@ export type UpdateLabels = Message<"metalstack.api.v2.UpdateLabels"> & {
case: "replace";
} | {
/**
- * UpdateLabelsIndividually adds, updates or remove given labels without modifying others
+ * Patch adds, updates or remove given labels without modifying others
*
- * @generated from field: metalstack.api.v2.UpdateLabelsIndividually individual = 2;
+ * @generated from field: metalstack.api.v2.LabelsPatch patch = 2;
*/
- value: UpdateLabelsIndividually;
- case: "individual";
+ value: LabelsPatch;
+ case: "patch";
} | { case: undefined; value?: undefined };
};
@@ -155,11 +155,11 @@ export const UpdateLabelsSchema: GenMessage = /*@__PURE__*/
messageDesc(file_metalstack_api_v2_common, 3);
/**
- * UpdateLabelsIndividually adds, updates or remove given labels without modifying others
+ * LabelsPatch adds, updates or remove given labels without modifying others
*
- * @generated from message metalstack.api.v2.UpdateLabelsIndividually
+ * @generated from message metalstack.api.v2.LabelsPatch
*/
-export type UpdateLabelsIndividually = Message<"metalstack.api.v2.UpdateLabelsIndividually"> & {
+export type LabelsPatch = Message<"metalstack.api.v2.LabelsPatch"> & {
/**
* Update labels. New ones will be added, existing ones overwritten
*
@@ -176,10 +176,10 @@ export type UpdateLabelsIndividually = Message<"metalstack.api.v2.UpdateLabelsIn
};
/**
- * Describes the message metalstack.api.v2.UpdateLabelsIndividually.
- * Use `create(UpdateLabelsIndividuallySchema)` to create a new message.
+ * Describes the message metalstack.api.v2.LabelsPatch.
+ * Use `create(LabelsPatchSchema)` to create a new message.
*/
-export const UpdateLabelsIndividuallySchema: GenMessage = /*@__PURE__*/
+export const LabelsPatchSchema: GenMessage = /*@__PURE__*/
messageDesc(file_metalstack_api_v2_common, 4);
/**
diff --git a/proto/metalstack/api/v2/common.proto b/proto/metalstack/api/v2/common.proto
index 254ecb14..b448be33 100644
--- a/proto/metalstack/api/v2/common.proto
+++ b/proto/metalstack/api/v2/common.proto
@@ -160,24 +160,27 @@ message Meta {
// UpdateLabels is a message to update labels
message UpdateLabels {
- // strategy defines the label update strategy
+ // Strategy defines the label update strategy
oneof strategy {
// ensure at least one match is specified
option (buf.validate.oneof).required = true;
- // Labels replaces existing labels with the given ones
+ // Replace existing labels with the given ones
Labels replace = 1;
- // UpdateLabelsIndividually adds, updates or remove given labels without modifying others
- UpdateLabelsIndividually individual = 2;
+ // Patch adds, updates or remove given labels without modifying others
+ LabelsPatch patch = 2;
}
}
-// UpdateLabelsIndividually adds, updates or remove given labels without modifying others
-message UpdateLabelsIndividually {
+// LabelsPatch adds, updates or remove given labels without modifying others
+message LabelsPatch {
// Update labels. New ones will be added, existing ones overwritten
Labels update = 1;
// Remove labels by key
- repeated string remove = 2 [(buf.validate.field).repeated.(metalstack.api.v2.all_trimmed) = true];
+ repeated string remove = 2 [(buf.validate.field).repeated = {
+ unique: true
+ items: {string: {[metalstack.api.v2.trimmed]: true}}
+ }];
}
// UpdateMeta must be provided with every UpdateRequest to define how optimistic locking should be handled
diff --git a/python/metalstack/api/v2/common_pb2.py b/python/metalstack/api/v2/common_pb2.py
index 40432d14..cfedafb3 100644
--- a/python/metalstack/api/v2/common_pb2.py
+++ b/python/metalstack/api/v2/common_pb2.py
@@ -28,7 +28,7 @@
from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1emetalstack/api/v2/common.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a google/protobuf/descriptor.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a(metalstack/api/v2/predefined_rules.proto\"O\n\x06Paging\x12\x17\n\x04page\x18\x01 \x01(\x04H\x00R\x04page\x88\x01\x01\x12\x19\n\x05\x63ount\x18\x02 \x01(\x04H\x01R\x05\x63ount\x88\x01\x01\x42\x07\n\x05_pageB\x08\n\x06_count\"\xa2\x01\n\x06Labels\x12]\n\x06labels\x18\x01 \x03(\x0b\x32%.metalstack.api.v2.Labels.LabelsEntryB\x1e\xbaH\x1b\x9a\x01\x18\"\x07r\x05\x10\x01\x18\x80\x02*\x07r\x05\x10\x00\x18\x80\x02\xb8\x95\xb8\xb1\x02\x01R\x06labels\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xa3\x02\n\x04Meta\x12\x36\n\x06labels\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x00R\x06labels\x88\x01\x01\x12\x39\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x1e\n\ngeneration\x18\x04 \x01(\x04R\ngeneration\x12-\n\x10\x64\x65letion_task_id\x18\x05 \x01(\tH\x01R\x0e\x64\x65letionTaskId\x88\x01\x01\x42\t\n\x07_labelsB\x13\n\x11_deletion_task_id\"\xa7\x01\n\x0cUpdateLabels\x12\x35\n\x07replace\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x00R\x07replace\x12M\n\nindividual\x18\x02 \x01(\x0b\x32+.metalstack.api.v2.UpdateLabelsIndividuallyH\x00R\nindividualB\x11\n\x08strategy\x12\x05\xbaH\x02\x08\x01\"s\n\x18UpdateLabelsIndividually\x12\x31\n\x06update\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06update\x12$\n\x06remove\x18\x02 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xd0\xa4\xb3\xb1\x02\x01R\x06remove\"\xaa\x01\n\nUpdateMeta\x12\x39\n\nupdated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x61\n\x10locking_strategy\x18\x02 \x01(\x0e\x32,.metalstack.api.v2.OptimisticLockingStrategyB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0flockingStrategy*\x87\x01\n\nTenantRole\x12\x1b\n\x17TENANT_ROLE_UNSPECIFIED\x10\x00\x12\x15\n\x11TENANT_ROLE_OWNER\x10\x01\x12\x16\n\x12TENANT_ROLE_EDITOR\x10\x02\x12\x16\n\x12TENANT_ROLE_VIEWER\x10\x03\x12\x15\n\x11TENANT_ROLE_GUEST\x10\x04*u\n\x0bProjectRole\x12\x1c\n\x18PROJECT_ROLE_UNSPECIFIED\x10\x00\x12\x16\n\x12PROJECT_ROLE_OWNER\x10\x01\x12\x17\n\x13PROJECT_ROLE_EDITOR\x10\x02\x12\x17\n\x13PROJECT_ROLE_VIEWER\x10\x03*U\n\tAdminRole\x12\x1a\n\x16\x41\x44MIN_ROLE_UNSPECIFIED\x10\x00\x12\x15\n\x11\x41\x44MIN_ROLE_EDITOR\x10\x01\x12\x15\n\x11\x41\x44MIN_ROLE_VIEWER\x10\x02*U\n\tInfraRole\x12\x1a\n\x16INFRA_ROLE_UNSPECIFIED\x10\x00\x12\x15\n\x11INFRA_ROLE_EDITOR\x10\x01\x12\x15\n\x11INFRA_ROLE_VIEWER\x10\x02*]\n\x0bMachineRole\x12\x1c\n\x18MACHINE_ROLE_UNSPECIFIED\x10\x00\x12\x17\n\x13MACHINE_ROLE_EDITOR\x10\x01\x12\x17\n\x13MACHINE_ROLE_VIEWER\x10\x02*T\n\nVisibility\x12\x1a\n\x16VISIBILITY_UNSPECIFIED\x10\x00\x12\x15\n\x11VISIBILITY_PUBLIC\x10\x01\x12\x13\n\x0fVISIBILITY_SELF\x10\x02*R\n\x08\x41uditing\x12\x18\n\x14\x41UDITING_UNSPECIFIED\x10\x00\x12\x15\n\x11\x41UDITING_INCLUDED\x10\x01\x12\x15\n\x11\x41UDITING_EXCLUDED\x10\x02*\x98\x01\n\x19OptimisticLockingStrategy\x12+\n\'OPTIMISTIC_LOCKING_STRATEGY_UNSPECIFIED\x10\x00\x12&\n\"OPTIMISTIC_LOCKING_STRATEGY_CLIENT\x10\x01\x12&\n\"OPTIMISTIC_LOCKING_STRATEGY_SERVER\x10\x02:b\n\x0ctenant_roles\x12\x1e.google.protobuf.MethodOptions\x18\xb8\x8e\x03 \x03(\x0e\x32\x1d.metalstack.api.v2.TenantRoleR\x0btenantRoles:e\n\rproject_roles\x12\x1e.google.protobuf.MethodOptions\x18\xb9\x8e\x03 \x03(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleR\x0cprojectRoles:_\n\x0b\x61\x64min_roles\x12\x1e.google.protobuf.MethodOptions\x18\xba\x8e\x03 \x03(\x0e\x32\x1c.metalstack.api.v2.AdminRoleR\nadminRoles:_\n\nvisibility\x12\x1e.google.protobuf.MethodOptions\x18\xbb\x8e\x03 \x01(\x0e\x32\x1d.metalstack.api.v2.VisibilityR\nvisibility:Y\n\x08\x61uditing\x12\x1e.google.protobuf.MethodOptions\x18\xbc\x8e\x03 \x01(\x0e\x32\x1b.metalstack.api.v2.AuditingR\x08\x61uditing:_\n\x0binfra_roles\x12\x1e.google.protobuf.MethodOptions\x18\xbd\x8e\x03 \x03(\x0e\x32\x1c.metalstack.api.v2.InfraRoleR\ninfraRoles:e\n\rmachine_roles\x12\x1e.google.protobuf.MethodOptions\x18\xbe\x8e\x03 \x03(\x0e\x32\x1e.metalstack.api.v2.MachineRoleR\x0cmachineRoles:O\n\x11\x65num_string_value\x12!.google.protobuf.EnumValueOptions\x18\xa0\x96\x03 \x01(\tR\x0f\x65numStringValueB\xc1\x01\n\x15\x63om.metalstack.api.v2B\x0b\x43ommonProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1emetalstack/api/v2/common.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a google/protobuf/descriptor.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a(metalstack/api/v2/predefined_rules.proto\"O\n\x06Paging\x12\x17\n\x04page\x18\x01 \x01(\x04H\x00R\x04page\x88\x01\x01\x12\x19\n\x05\x63ount\x18\x02 \x01(\x04H\x01R\x05\x63ount\x88\x01\x01\x42\x07\n\x05_pageB\x08\n\x06_count\"\xa2\x01\n\x06Labels\x12]\n\x06labels\x18\x01 \x03(\x0b\x32%.metalstack.api.v2.Labels.LabelsEntryB\x1e\xbaH\x1b\x9a\x01\x18\"\x07r\x05\x10\x01\x18\x80\x02*\x07r\x05\x10\x00\x18\x80\x02\xb8\x95\xb8\xb1\x02\x01R\x06labels\x1a\x39\n\x0bLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\xa3\x02\n\x04Meta\x12\x36\n\x06labels\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x00R\x06labels\x88\x01\x01\x12\x39\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x1e\n\ngeneration\x18\x04 \x01(\x04R\ngeneration\x12-\n\x10\x64\x65letion_task_id\x18\x05 \x01(\tH\x01R\x0e\x64\x65letionTaskId\x88\x01\x01\x42\t\n\x07_labelsB\x13\n\x11_deletion_task_id\"\x90\x01\n\x0cUpdateLabels\x12\x35\n\x07replace\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x00R\x07replace\x12\x36\n\x05patch\x18\x02 \x01(\x0b\x32\x1e.metalstack.api.v2.LabelsPatchH\x00R\x05patchB\x11\n\x08strategy\x12\x05\xbaH\x02\x08\x01\"l\n\x0bLabelsPatch\x12\x31\n\x06update\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06update\x12*\n\x06remove\x18\x02 \x03(\tB\x12\xbaH\x0f\x92\x01\x0c\x18\x01\"\x08r\x06\xf0\xb3\xae\xb1\x02\x01R\x06remove\"\xaa\x01\n\nUpdateMeta\x12\x39\n\nupdated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x61\n\x10locking_strategy\x18\x02 \x01(\x0e\x32,.metalstack.api.v2.OptimisticLockingStrategyB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0flockingStrategy*\x87\x01\n\nTenantRole\x12\x1b\n\x17TENANT_ROLE_UNSPECIFIED\x10\x00\x12\x15\n\x11TENANT_ROLE_OWNER\x10\x01\x12\x16\n\x12TENANT_ROLE_EDITOR\x10\x02\x12\x16\n\x12TENANT_ROLE_VIEWER\x10\x03\x12\x15\n\x11TENANT_ROLE_GUEST\x10\x04*u\n\x0bProjectRole\x12\x1c\n\x18PROJECT_ROLE_UNSPECIFIED\x10\x00\x12\x16\n\x12PROJECT_ROLE_OWNER\x10\x01\x12\x17\n\x13PROJECT_ROLE_EDITOR\x10\x02\x12\x17\n\x13PROJECT_ROLE_VIEWER\x10\x03*U\n\tAdminRole\x12\x1a\n\x16\x41\x44MIN_ROLE_UNSPECIFIED\x10\x00\x12\x15\n\x11\x41\x44MIN_ROLE_EDITOR\x10\x01\x12\x15\n\x11\x41\x44MIN_ROLE_VIEWER\x10\x02*U\n\tInfraRole\x12\x1a\n\x16INFRA_ROLE_UNSPECIFIED\x10\x00\x12\x15\n\x11INFRA_ROLE_EDITOR\x10\x01\x12\x15\n\x11INFRA_ROLE_VIEWER\x10\x02*]\n\x0bMachineRole\x12\x1c\n\x18MACHINE_ROLE_UNSPECIFIED\x10\x00\x12\x17\n\x13MACHINE_ROLE_EDITOR\x10\x01\x12\x17\n\x13MACHINE_ROLE_VIEWER\x10\x02*T\n\nVisibility\x12\x1a\n\x16VISIBILITY_UNSPECIFIED\x10\x00\x12\x15\n\x11VISIBILITY_PUBLIC\x10\x01\x12\x13\n\x0fVISIBILITY_SELF\x10\x02*R\n\x08\x41uditing\x12\x18\n\x14\x41UDITING_UNSPECIFIED\x10\x00\x12\x15\n\x11\x41UDITING_INCLUDED\x10\x01\x12\x15\n\x11\x41UDITING_EXCLUDED\x10\x02*\x98\x01\n\x19OptimisticLockingStrategy\x12+\n\'OPTIMISTIC_LOCKING_STRATEGY_UNSPECIFIED\x10\x00\x12&\n\"OPTIMISTIC_LOCKING_STRATEGY_CLIENT\x10\x01\x12&\n\"OPTIMISTIC_LOCKING_STRATEGY_SERVER\x10\x02:b\n\x0ctenant_roles\x12\x1e.google.protobuf.MethodOptions\x18\xb8\x8e\x03 \x03(\x0e\x32\x1d.metalstack.api.v2.TenantRoleR\x0btenantRoles:e\n\rproject_roles\x12\x1e.google.protobuf.MethodOptions\x18\xb9\x8e\x03 \x03(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleR\x0cprojectRoles:_\n\x0b\x61\x64min_roles\x12\x1e.google.protobuf.MethodOptions\x18\xba\x8e\x03 \x03(\x0e\x32\x1c.metalstack.api.v2.AdminRoleR\nadminRoles:_\n\nvisibility\x12\x1e.google.protobuf.MethodOptions\x18\xbb\x8e\x03 \x01(\x0e\x32\x1d.metalstack.api.v2.VisibilityR\nvisibility:Y\n\x08\x61uditing\x12\x1e.google.protobuf.MethodOptions\x18\xbc\x8e\x03 \x01(\x0e\x32\x1b.metalstack.api.v2.AuditingR\x08\x61uditing:_\n\x0binfra_roles\x12\x1e.google.protobuf.MethodOptions\x18\xbd\x8e\x03 \x03(\x0e\x32\x1c.metalstack.api.v2.InfraRoleR\ninfraRoles:e\n\rmachine_roles\x12\x1e.google.protobuf.MethodOptions\x18\xbe\x8e\x03 \x03(\x0e\x32\x1e.metalstack.api.v2.MachineRoleR\x0cmachineRoles:O\n\x11\x65num_string_value\x12!.google.protobuf.EnumValueOptions\x18\xa0\x96\x03 \x01(\tR\x0f\x65numStringValueB\xc1\x01\n\x15\x63om.metalstack.api.v2B\x0b\x43ommonProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -42,26 +42,26 @@
_globals['_LABELS'].fields_by_name['labels']._serialized_options = b'\272H\033\232\001\030\"\007r\005\020\001\030\200\002*\007r\005\020\000\030\200\002\270\225\270\261\002\001'
_globals['_UPDATELABELS'].oneofs_by_name['strategy']._loaded_options = None
_globals['_UPDATELABELS'].oneofs_by_name['strategy']._serialized_options = b'\272H\002\010\001'
- _globals['_UPDATELABELSINDIVIDUALLY'].fields_by_name['remove']._loaded_options = None
- _globals['_UPDATELABELSINDIVIDUALLY'].fields_by_name['remove']._serialized_options = b'\272H\t\222\001\006\320\244\263\261\002\001'
+ _globals['_LABELSPATCH'].fields_by_name['remove']._loaded_options = None
+ _globals['_LABELSPATCH'].fields_by_name['remove']._serialized_options = b'\272H\017\222\001\014\030\001\"\010r\006\360\263\256\261\002\001'
_globals['_UPDATEMETA'].fields_by_name['locking_strategy']._loaded_options = None
_globals['_UPDATEMETA'].fields_by_name['locking_strategy']._serialized_options = b'\272H\005\202\001\002\020\001'
- _globals['_TENANTROLE']._serialized_start=1192
- _globals['_TENANTROLE']._serialized_end=1327
- _globals['_PROJECTROLE']._serialized_start=1329
- _globals['_PROJECTROLE']._serialized_end=1446
- _globals['_ADMINROLE']._serialized_start=1448
- _globals['_ADMINROLE']._serialized_end=1533
- _globals['_INFRAROLE']._serialized_start=1535
- _globals['_INFRAROLE']._serialized_end=1620
- _globals['_MACHINEROLE']._serialized_start=1622
- _globals['_MACHINEROLE']._serialized_end=1715
- _globals['_VISIBILITY']._serialized_start=1717
- _globals['_VISIBILITY']._serialized_end=1801
- _globals['_AUDITING']._serialized_start=1803
- _globals['_AUDITING']._serialized_end=1885
- _globals['_OPTIMISTICLOCKINGSTRATEGY']._serialized_start=1888
- _globals['_OPTIMISTICLOCKINGSTRATEGY']._serialized_end=2040
+ _globals['_TENANTROLE']._serialized_start=1162
+ _globals['_TENANTROLE']._serialized_end=1297
+ _globals['_PROJECTROLE']._serialized_start=1299
+ _globals['_PROJECTROLE']._serialized_end=1416
+ _globals['_ADMINROLE']._serialized_start=1418
+ _globals['_ADMINROLE']._serialized_end=1503
+ _globals['_INFRAROLE']._serialized_start=1505
+ _globals['_INFRAROLE']._serialized_end=1590
+ _globals['_MACHINEROLE']._serialized_start=1592
+ _globals['_MACHINEROLE']._serialized_end=1685
+ _globals['_VISIBILITY']._serialized_start=1687
+ _globals['_VISIBILITY']._serialized_end=1771
+ _globals['_AUDITING']._serialized_start=1773
+ _globals['_AUDITING']._serialized_end=1855
+ _globals['_OPTIMISTICLOCKINGSTRATEGY']._serialized_start=1858
+ _globals['_OPTIMISTICLOCKINGSTRATEGY']._serialized_end=2010
_globals['_PAGING']._serialized_start=191
_globals['_PAGING']._serialized_end=270
_globals['_LABELS']._serialized_start=273
@@ -71,9 +71,9 @@
_globals['_META']._serialized_start=438
_globals['_META']._serialized_end=729
_globals['_UPDATELABELS']._serialized_start=732
- _globals['_UPDATELABELS']._serialized_end=899
- _globals['_UPDATELABELSINDIVIDUALLY']._serialized_start=901
- _globals['_UPDATELABELSINDIVIDUALLY']._serialized_end=1016
- _globals['_UPDATEMETA']._serialized_start=1019
- _globals['_UPDATEMETA']._serialized_end=1189
+ _globals['_UPDATELABELS']._serialized_end=876
+ _globals['_LABELSPATCH']._serialized_start=878
+ _globals['_LABELSPATCH']._serialized_end=986
+ _globals['_UPDATEMETA']._serialized_start=989
+ _globals['_UPDATEMETA']._serialized_end=1159
# @@protoc_insertion_point(module_scope)
diff --git a/python/metalstack/api/v2/common_pb2.pyi b/python/metalstack/api/v2/common_pb2.pyi
index 73fd565c..23919830 100644
--- a/python/metalstack/api/v2/common_pb2.pyi
+++ b/python/metalstack/api/v2/common_pb2.pyi
@@ -143,14 +143,14 @@ class Meta(_message.Message):
def __init__(self, labels: _Optional[_Union[Labels, _Mapping]] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., generation: _Optional[int] = ..., deletion_task_id: _Optional[str] = ...) -> None: ...
class UpdateLabels(_message.Message):
- __slots__ = ("replace", "individual")
+ __slots__ = ("replace", "patch")
REPLACE_FIELD_NUMBER: _ClassVar[int]
- INDIVIDUAL_FIELD_NUMBER: _ClassVar[int]
+ PATCH_FIELD_NUMBER: _ClassVar[int]
replace: Labels
- individual: UpdateLabelsIndividually
- def __init__(self, replace: _Optional[_Union[Labels, _Mapping]] = ..., individual: _Optional[_Union[UpdateLabelsIndividually, _Mapping]] = ...) -> None: ...
+ patch: LabelsPatch
+ def __init__(self, replace: _Optional[_Union[Labels, _Mapping]] = ..., patch: _Optional[_Union[LabelsPatch, _Mapping]] = ...) -> None: ...
-class UpdateLabelsIndividually(_message.Message):
+class LabelsPatch(_message.Message):
__slots__ = ("update", "remove")
UPDATE_FIELD_NUMBER: _ClassVar[int]
REMOVE_FIELD_NUMBER: _ClassVar[int]