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

    +

    LabelsPatch adds, updates or remove given labels without modifying others

    + + + + + + + + + + + + + + + + + + + + + + + +
    FieldTypeLabelDescription
    updateLabels

    Update labels. New ones will be added, existing ones overwritten

    removestringrepeated

    Remove labels by key

    + + + + +

    Meta

    Meta of a message

    @@ -3116,45 +3147,14 @@

    UpdateLabels

    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

    -

    UpdateLabelsIndividually 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]
    FieldTypeLabelDescription
    updateLabelspatchLabelsPatch

    Update labels. New ones will be added, existing ones overwritten

    removestringrepeated

    Remove labels by key

    Patch adds, updates or remove given labels without modifying others