@metal-stack/api 0.2.6 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -587,6 +587,54 @@ export type ProjectServiceLeaveResponse = Message<"metalstack.api.v2.ProjectServ
587
587
  * Use `create(ProjectServiceLeaveResponseSchema)` to create a new message.
588
588
  */
589
589
  export declare const ProjectServiceLeaveResponseSchema: GenMessage<ProjectServiceLeaveResponse>;
590
+ /**
591
+ * ProjectServiceAddMemberRequest is the request payload for adding a member to a project
592
+ *
593
+ * @generated from message metalstack.api.v2.ProjectServiceAddMemberRequest
594
+ */
595
+ export type ProjectServiceAddMemberRequest = Message<"metalstack.api.v2.ProjectServiceAddMemberRequest"> & {
596
+ /**
597
+ * Project is the uuid of the project
598
+ *
599
+ * @generated from field: string project = 1;
600
+ */
601
+ project: string;
602
+ /**
603
+ * Login of the member to add
604
+ *
605
+ * @generated from field: string member = 2;
606
+ */
607
+ member: string;
608
+ /**
609
+ * Role to assign to the new member
610
+ *
611
+ * @generated from field: metalstack.api.v2.ProjectRole role = 3;
612
+ */
613
+ role: ProjectRole;
614
+ };
615
+ /**
616
+ * Describes the message metalstack.api.v2.ProjectServiceAddMemberRequest.
617
+ * Use `create(ProjectServiceAddMemberRequestSchema)` to create a new message.
618
+ */
619
+ export declare const ProjectServiceAddMemberRequestSchema: GenMessage<ProjectServiceAddMemberRequest>;
620
+ /**
621
+ * ProjectServiceAddMemberResponse is the response payload for the add member request
622
+ *
623
+ * @generated from message metalstack.api.v2.ProjectServiceAddMemberResponse
624
+ */
625
+ export type ProjectServiceAddMemberResponse = Message<"metalstack.api.v2.ProjectServiceAddMemberResponse"> & {
626
+ /**
627
+ * ProjectRole is the added project member
628
+ *
629
+ * @generated from field: metalstack.api.v2.ProjectRole project_member = 1;
630
+ */
631
+ projectMember: ProjectRole;
632
+ };
633
+ /**
634
+ * Describes the message metalstack.api.v2.ProjectServiceAddMemberResponse.
635
+ * Use `create(ProjectServiceAddMemberResponseSchema)` to create a new message.
636
+ */
637
+ export declare const ProjectServiceAddMemberResponseSchema: GenMessage<ProjectServiceAddMemberResponse>;
590
638
  /**
591
639
  * ProjectServiceRemoveMemberRequest is used to remove a member from a project
592
640
  *
@@ -813,6 +861,16 @@ export declare const ProjectService: GenService<{
813
861
  input: typeof ProjectServiceLeaveRequestSchema;
814
862
  output: typeof ProjectServiceLeaveResponseSchema;
815
863
  };
864
+ /**
865
+ * AddMember adds a user to a project
866
+ *
867
+ * @generated from rpc metalstack.api.v2.ProjectService.AddMember
868
+ */
869
+ addMember: {
870
+ methodKind: "unary";
871
+ input: typeof ProjectServiceAddMemberRequestSchema;
872
+ output: typeof ProjectServiceAddMemberResponseSchema;
873
+ };
816
874
  /**
817
875
  * RemoveMember removes a user from a project
818
876
  *
@@ -9,7 +9,7 @@ import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb";
9
9
  /**
10
10
  * Describes the file metalstack/api/v2/project.proto.
11
11
  */
12
- export const file_metalstack_api_v2_project = /*@__PURE__*/ fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9wcm9qZWN0LnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiLAAQoHUHJvamVjdBIMCgR1dWlkGAEgASgJEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEhkKBG5hbWUYAyABKAlCC7pICHIGwLOusQIBEiAKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECARIOCgZ0ZW5hbnQYBSABKAkSJAoKYXZhdGFyX3VybBgGIAEoCUILukgIcgbgs66xAgFIAIgBAUINCgtfYXZhdGFyX3VybCLIAQoNUHJvamVjdE1lbWJlchIKCgJpZBgBIAEoCRI2CgRyb2xlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVCCLpIBYIBAhABEhwKFGluaGVyaXRlZF9tZW1iZXJzaGlwGAMgASgIEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKBG1ldGEYBSABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhIpICCg1Qcm9qZWN0SW52aXRlEg4KBnNlY3JldBgBIAEoCRIPCgdwcm9qZWN0GAIgASgJEjYKBHJvbGUYAyABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAESDgoGam9pbmVkGAQgASgIEhQKDHByb2plY3RfbmFtZRgFIAEoCRIOCgZ0ZW5hbnQYBiABKAkSEwoLdGVuYW50X25hbWUYByABKAkSLgoKZXhwaXJlc19hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJam9pbmVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJLChlQcm9qZWN0U2VydmljZUxpc3RSZXF1ZXN0Ei4KBXF1ZXJ5GAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFF1ZXJ5IsUBCgxQcm9qZWN0UXVlcnkSGwoEdXVpZBgBIAEoCUIIukgFcgOwAQFIAIgBARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEiAKBnRlbmFudBgDIAEoCUILukgIcgaQtK6xAgFIAogBARIuCgZsYWJlbHMYBCABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHNIA4gBAUIHCgVfdXVpZEIHCgVfbmFtZUIJCgdfdGVuYW50QgkKB19sYWJlbHMiSgoaUHJvamVjdFNlcnZpY2VMaXN0UmVzcG9uc2USLAoIcHJvamVjdHMYASADKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IjUKGFByb2plY3RTZXJ2aWNlR2V0UmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASKDAQoZUHJvamVjdFNlcnZpY2VHZXRSZXNwb25zZRIrCgdwcm9qZWN0GAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdBI5Cg9wcm9qZWN0X21lbWJlcnMYAiADKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyItYBChtQcm9qZWN0U2VydmljZUNyZWF0ZVJlcXVlc3QSGgoFbG9naW4YASABKAlCC7pICHIGwLOusQIBEhkKBG5hbWUYAiABKAlCC7pICHIGwLOusQIBEiAKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECARIkCgphdmF0YXJfdXJsGAQgASgJQgu6SAhyBuCzrrECAUgAiAEBEikKBmxhYmVscxgFIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0INCgtfYXZhdGFyX3VybCJLChxQcm9qZWN0U2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB3Byb2plY3QYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IjgKG1Byb2plY3RTZXJ2aWNlRGVsZXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASJLChxQcm9qZWN0U2VydmljZURlbGV0ZVJlc3BvbnNlEisKB3Byb2plY3QYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IsoCChtQcm9qZWN0U2VydmljZVVwZGF0ZVJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQESOgoLdXBkYXRlX21ldGEYAiABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5VcGRhdGVNZXRhQga6SAPIAQESHgoEbmFtZRgDIAEoCUILukgIcgbAs66xAgFIAIgBARIlCgtkZXNjcmlwdGlvbhgEIAEoCUILukgIcgbIs66xAgFIAYgBARIkCgphdmF0YXJfdXJsGAUgASgJQgu6SAhyBuCzrrECAUgCiAEBEjQKBmxhYmVscxgGIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gDiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkINCgtfYXZhdGFyX3VybEIJCgdfbGFiZWxzIksKHFByb2plY3RTZXJ2aWNlVXBkYXRlUmVzcG9uc2USKwoHcHJvamVjdBgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3QicAobUHJvamVjdFNlcnZpY2VJbnZpdGVSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEjYKBHJvbGUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAEiUAocUHJvamVjdFNlcnZpY2VJbnZpdGVSZXNwb25zZRIwCgZpbnZpdGUYASABKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0SW52aXRlIj0KIFByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBIlYKIVByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXNwb25zZRIxCgdpbnZpdGVzGAEgAygLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdEludml0ZSIwCh5Qcm9qZWN0U2VydmljZUludml0ZUdldFJlcXVlc3QSDgoGc2VjcmV0GAEgASgJIlMKH1Byb2plY3RTZXJ2aWNlSW52aXRlR2V0UmVzcG9uc2USMAoGaW52aXRlGAEgASgLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdEludml0ZSI3ChpQcm9qZWN0U2VydmljZUxlYXZlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASIdChtQcm9qZWN0U2VydmljZUxlYXZlUmVzcG9uc2UiTgohUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEg4KBm1lbWJlchgCIAEoCSIkCiJQcm9qZWN0U2VydmljZVJlbW92ZU1lbWJlclJlc3BvbnNlIoYBCiFQcm9qZWN0U2VydmljZVVwZGF0ZU1lbWJlclJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQESDgoGbWVtYmVyGAIgASgJEjYKBHJvbGUYAyABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAEiXgoiUHJvamVjdFNlcnZpY2VVcGRhdGVNZW1iZXJSZXNwb25zZRI4Cg5wcm9qZWN0X21lbWJlchgBIAEoCzIgLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RNZW1iZXIiMwohUHJvamVjdFNlcnZpY2VJbnZpdGVBY2NlcHRSZXF1ZXN0Eg4KBnNlY3JldBgBIAEoCSJLCiJQcm9qZWN0U2VydmljZUludml0ZUFjY2VwdFJlc3BvbnNlEg8KB3Byb2plY3QYASABKAkSFAoMcHJvamVjdF9uYW1lGAIgASgJIk4KIVByb2plY3RTZXJ2aWNlSW52aXRlRGVsZXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIOCgZzZWNyZXQYAiABKAkiJAoiUHJvamVjdFNlcnZpY2VJbnZpdGVEZWxldGVSZXNwb25zZTLiDAoOUHJvamVjdFNlcnZpY2USbQoETGlzdBIsLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUxpc3RSZXNwb25zZSII2PMYAuDzGAISbQoDR2V0EisubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VHZXRSZXF1ZXN0GiwubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VHZXRSZXNwb25zZSILyvMYAwECA+DzGAISdQoGQ3JlYXRlEi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VDcmVhdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VDcmVhdGVSZXNwb25zZSIKwvMYAgEC4PMYARJ0CgZEZWxldGUSLi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZURlbGV0ZVJlcXVlc3QaLy5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZURlbGV0ZVJlc3BvbnNlIgnK8xgBAeDzGAESdQoGVXBkYXRlEi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VVcGRhdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VVcGRhdGVSZXNwb25zZSIKyvMYAgEC4PMYARJxCgVMZWF2ZRItLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlTGVhdmVSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VMZWF2ZVJlc3BvbnNlIgnK8xgBA+DzGAEShgEKDFJlbW92ZU1lbWJlchI0Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVxdWVzdBo1Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVzcG9uc2UiCcrzGAEB4PMYARKGAQoMVXBkYXRlTWVtYmVyEjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VVcGRhdGVNZW1iZXJSZXF1ZXN0GjUubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VVcGRhdGVNZW1iZXJSZXNwb25zZSIJyvMYAQHg8xgBEnQKBkludml0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlUmVzcG9uc2UiCcrzGAEB4PMYARKFAQoMSW52aXRlQWNjZXB0EjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVBY2NlcHRSZXF1ZXN0GjUubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVBY2NlcHRSZXNwb25zZSII2PMYAuDzGAEShgEKDEludml0ZURlbGV0ZRI0Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlRGVsZXRlUmVxdWVzdBo1Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlRGVsZXRlUmVzcG9uc2UiCcrzGAEB4PMYARKDAQoLSW52aXRlc0xpc3QSMy5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZXNMaXN0UmVxdWVzdBo0Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXNwb25zZSIJyvMYAQHg8xgCEnwKCUludml0ZUdldBIxLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlR2V0UmVxdWVzdBoyLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlR2V0UmVzcG9uc2UiCNjzGALg8xgCQsIBChVjb20ubWV0YWxzdGFjay5hcGkudjJCDFByb2plY3RQcm90b1ABWjVnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FwaS92MjthcGl2MqICA01BWKoCEU1ldGFsc3RhY2suQXBpLlYyygIRTWV0YWxzdGFja1xBcGlcVjLiAh1NZXRhbHN0YWNrXEFwaVxWMlxHUEJNZXRhZGF0YeoCE01ldGFsc3RhY2s6OkFwaTo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
12
+ export const file_metalstack_api_v2_project = /*@__PURE__*/ fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9wcm9qZWN0LnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiLAAQoHUHJvamVjdBIMCgR1dWlkGAEgASgJEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEhkKBG5hbWUYAyABKAlCC7pICHIGwLOusQIBEiAKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECARIOCgZ0ZW5hbnQYBSABKAkSJAoKYXZhdGFyX3VybBgGIAEoCUILukgIcgbgs66xAgFIAIgBAUINCgtfYXZhdGFyX3VybCLIAQoNUHJvamVjdE1lbWJlchIKCgJpZBgBIAEoCRI2CgRyb2xlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVCCLpIBYIBAhABEhwKFGluaGVyaXRlZF9tZW1iZXJzaGlwGAMgASgIEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKBG1ldGEYBSABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhIpICCg1Qcm9qZWN0SW52aXRlEg4KBnNlY3JldBgBIAEoCRIPCgdwcm9qZWN0GAIgASgJEjYKBHJvbGUYAyABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAESDgoGam9pbmVkGAQgASgIEhQKDHByb2plY3RfbmFtZRgFIAEoCRIOCgZ0ZW5hbnQYBiABKAkSEwoLdGVuYW50X25hbWUYByABKAkSLgoKZXhwaXJlc19hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJam9pbmVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJLChlQcm9qZWN0U2VydmljZUxpc3RSZXF1ZXN0Ei4KBXF1ZXJ5GAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFF1ZXJ5IsUBCgxQcm9qZWN0UXVlcnkSGwoEdXVpZBgBIAEoCUIIukgFcgOwAQFIAIgBARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEiAKBnRlbmFudBgDIAEoCUILukgIcgaQtK6xAgFIAogBARIuCgZsYWJlbHMYBCABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHNIA4gBAUIHCgVfdXVpZEIHCgVfbmFtZUIJCgdfdGVuYW50QgkKB19sYWJlbHMiSgoaUHJvamVjdFNlcnZpY2VMaXN0UmVzcG9uc2USLAoIcHJvamVjdHMYASADKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IjUKGFByb2plY3RTZXJ2aWNlR2V0UmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASKDAQoZUHJvamVjdFNlcnZpY2VHZXRSZXNwb25zZRIrCgdwcm9qZWN0GAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdBI5Cg9wcm9qZWN0X21lbWJlcnMYAiADKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyItYBChtQcm9qZWN0U2VydmljZUNyZWF0ZVJlcXVlc3QSGgoFbG9naW4YASABKAlCC7pICHIGwLOusQIBEhkKBG5hbWUYAiABKAlCC7pICHIGwLOusQIBEiAKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECARIkCgphdmF0YXJfdXJsGAQgASgJQgu6SAhyBuCzrrECAUgAiAEBEikKBmxhYmVscxgFIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0INCgtfYXZhdGFyX3VybCJLChxQcm9qZWN0U2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB3Byb2plY3QYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IjgKG1Byb2plY3RTZXJ2aWNlRGVsZXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASJLChxQcm9qZWN0U2VydmljZURlbGV0ZVJlc3BvbnNlEisKB3Byb2plY3QYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IsoCChtQcm9qZWN0U2VydmljZVVwZGF0ZVJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQESOgoLdXBkYXRlX21ldGEYAiABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5VcGRhdGVNZXRhQga6SAPIAQESHgoEbmFtZRgDIAEoCUILukgIcgbAs66xAgFIAIgBARIlCgtkZXNjcmlwdGlvbhgEIAEoCUILukgIcgbIs66xAgFIAYgBARIkCgphdmF0YXJfdXJsGAUgASgJQgu6SAhyBuCzrrECAUgCiAEBEjQKBmxhYmVscxgGIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gDiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkINCgtfYXZhdGFyX3VybEIJCgdfbGFiZWxzIksKHFByb2plY3RTZXJ2aWNlVXBkYXRlUmVzcG9uc2USKwoHcHJvamVjdBgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3QicAobUHJvamVjdFNlcnZpY2VJbnZpdGVSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEjYKBHJvbGUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAEiUAocUHJvamVjdFNlcnZpY2VJbnZpdGVSZXNwb25zZRIwCgZpbnZpdGUYASABKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0SW52aXRlIj0KIFByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBIlYKIVByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXNwb25zZRIxCgdpbnZpdGVzGAEgAygLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdEludml0ZSIwCh5Qcm9qZWN0U2VydmljZUludml0ZUdldFJlcXVlc3QSDgoGc2VjcmV0GAEgASgJIlMKH1Byb2plY3RTZXJ2aWNlSW52aXRlR2V0UmVzcG9uc2USMAoGaW52aXRlGAEgASgLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdEludml0ZSI3ChpQcm9qZWN0U2VydmljZUxlYXZlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASIdChtQcm9qZWN0U2VydmljZUxlYXZlUmVzcG9uc2UikAEKHlByb2plY3RTZXJ2aWNlQWRkTWVtYmVyUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIbCgZtZW1iZXIYAiABKAlCC7pICHIGkLSusQIBEjYKBHJvbGUYAyABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAEiWQofUHJvamVjdFNlcnZpY2VBZGRNZW1iZXJSZXNwb25zZRI2Cg5wcm9qZWN0X21lbWJlchgBIAEoDjIeLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RSb2xlIk4KIVByb2plY3RTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIOCgZtZW1iZXIYAiABKAkiJAoiUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZSKGAQohUHJvamVjdFNlcnZpY2VVcGRhdGVNZW1iZXJSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEg4KBm1lbWJlchgCIAEoCRI2CgRyb2xlGAMgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVCCLpIBYIBAhABIl4KIlByb2plY3RTZXJ2aWNlVXBkYXRlTWVtYmVyUmVzcG9uc2USOAoOcHJvamVjdF9tZW1iZXIYASABKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyIjMKIVByb2plY3RTZXJ2aWNlSW52aXRlQWNjZXB0UmVxdWVzdBIOCgZzZWNyZXQYASABKAkiSwoiUHJvamVjdFNlcnZpY2VJbnZpdGVBY2NlcHRSZXNwb25zZRIPCgdwcm9qZWN0GAEgASgJEhQKDHByb2plY3RfbmFtZRgCIAEoCSJOCiFQcm9qZWN0U2VydmljZUludml0ZURlbGV0ZVJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQESDgoGc2VjcmV0GAIgASgJIiQKIlByb2plY3RTZXJ2aWNlSW52aXRlRGVsZXRlUmVzcG9uc2Uy4Q0KDlByb2plY3RTZXJ2aWNlEm0KBExpc3QSLC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUxpc3RSZXF1ZXN0Gi0ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VMaXN0UmVzcG9uc2UiCNjzGALg8xgCEm0KA0dldBIrLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlR2V0UmVxdWVzdBosLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlR2V0UmVzcG9uc2UiC8rzGAMBAgPg8xgCEnUKBkNyZWF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlQ3JlYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCsLzGAIBAuDzGAESdAoGRGVsZXRlEi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VEZWxldGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VEZWxldGVSZXNwb25zZSIJyvMYAQHg8xgBEnUKBlVwZGF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlVXBkYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCsrzGAIBAuDzGAEScQoFTGVhdmUSLS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUxlYXZlUmVxdWVzdBouLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlTGVhdmVSZXNwb25zZSIJyvMYAQPg8xgBEn0KCUFkZE1lbWJlchIxLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlQWRkTWVtYmVyUmVxdWVzdBoyLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlQWRkTWVtYmVyUmVzcG9uc2UiCcrzGAEB4PMYARKGAQoMUmVtb3ZlTWVtYmVyEjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXF1ZXN0GjUubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZSIJyvMYAQHg8xgBEoYBCgxVcGRhdGVNZW1iZXISNC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZVVwZGF0ZU1lbWJlclJlcXVlc3QaNS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZVVwZGF0ZU1lbWJlclJlc3BvbnNlIgnK8xgBAeDzGAESdAoGSW52aXRlEi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVSZXNwb25zZSIJyvMYAQHg8xgBEoUBCgxJbnZpdGVBY2NlcHQSNC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZUFjY2VwdFJlcXVlc3QaNS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZUFjY2VwdFJlc3BvbnNlIgjY8xgC4PMYARKGAQoMSW52aXRlRGVsZXRlEjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVEZWxldGVSZXF1ZXN0GjUubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVEZWxldGVSZXNwb25zZSIJyvMYAQHg8xgBEoMBCgtJbnZpdGVzTGlzdBIzLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXF1ZXN0GjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVzTGlzdFJlc3BvbnNlIgnK8xgBAeDzGAISfAoJSW52aXRlR2V0EjEubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVHZXRSZXF1ZXN0GjIubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVHZXRSZXNwb25zZSII2PMYAuDzGAJCwgEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkIMUHJvamVjdFByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
13
13
  /**
14
14
  * Describes the message metalstack.api.v2.Project.
15
15
  * Use `create(ProjectSchema)` to create a new message.
@@ -120,46 +120,56 @@ export const ProjectServiceLeaveRequestSchema = /*@__PURE__*/ messageDesc(file_m
120
120
  * Use `create(ProjectServiceLeaveResponseSchema)` to create a new message.
121
121
  */
122
122
  export const ProjectServiceLeaveResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 21);
123
+ /**
124
+ * Describes the message metalstack.api.v2.ProjectServiceAddMemberRequest.
125
+ * Use `create(ProjectServiceAddMemberRequestSchema)` to create a new message.
126
+ */
127
+ export const ProjectServiceAddMemberRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 22);
128
+ /**
129
+ * Describes the message metalstack.api.v2.ProjectServiceAddMemberResponse.
130
+ * Use `create(ProjectServiceAddMemberResponseSchema)` to create a new message.
131
+ */
132
+ export const ProjectServiceAddMemberResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 23);
123
133
  /**
124
134
  * Describes the message metalstack.api.v2.ProjectServiceRemoveMemberRequest.
125
135
  * Use `create(ProjectServiceRemoveMemberRequestSchema)` to create a new message.
126
136
  */
127
- export const ProjectServiceRemoveMemberRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 22);
137
+ export const ProjectServiceRemoveMemberRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 24);
128
138
  /**
129
139
  * Describes the message metalstack.api.v2.ProjectServiceRemoveMemberResponse.
130
140
  * Use `create(ProjectServiceRemoveMemberResponseSchema)` to create a new message.
131
141
  */
132
- export const ProjectServiceRemoveMemberResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 23);
142
+ export const ProjectServiceRemoveMemberResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 25);
133
143
  /**
134
144
  * Describes the message metalstack.api.v2.ProjectServiceUpdateMemberRequest.
135
145
  * Use `create(ProjectServiceUpdateMemberRequestSchema)` to create a new message.
136
146
  */
137
- export const ProjectServiceUpdateMemberRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 24);
147
+ export const ProjectServiceUpdateMemberRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 26);
138
148
  /**
139
149
  * Describes the message metalstack.api.v2.ProjectServiceUpdateMemberResponse.
140
150
  * Use `create(ProjectServiceUpdateMemberResponseSchema)` to create a new message.
141
151
  */
142
- export const ProjectServiceUpdateMemberResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 25);
152
+ export const ProjectServiceUpdateMemberResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 27);
143
153
  /**
144
154
  * Describes the message metalstack.api.v2.ProjectServiceInviteAcceptRequest.
145
155
  * Use `create(ProjectServiceInviteAcceptRequestSchema)` to create a new message.
146
156
  */
147
- export const ProjectServiceInviteAcceptRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 26);
157
+ export const ProjectServiceInviteAcceptRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 28);
148
158
  /**
149
159
  * Describes the message metalstack.api.v2.ProjectServiceInviteAcceptResponse.
150
160
  * Use `create(ProjectServiceInviteAcceptResponseSchema)` to create a new message.
151
161
  */
152
- export const ProjectServiceInviteAcceptResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 27);
162
+ export const ProjectServiceInviteAcceptResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 29);
153
163
  /**
154
164
  * Describes the message metalstack.api.v2.ProjectServiceInviteDeleteRequest.
155
165
  * Use `create(ProjectServiceInviteDeleteRequestSchema)` to create a new message.
156
166
  */
157
- export const ProjectServiceInviteDeleteRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 28);
167
+ export const ProjectServiceInviteDeleteRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 30);
158
168
  /**
159
169
  * Describes the message metalstack.api.v2.ProjectServiceInviteDeleteResponse.
160
170
  * Use `create(ProjectServiceInviteDeleteResponseSchema)` to create a new message.
161
171
  */
162
- export const ProjectServiceInviteDeleteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 29);
172
+ export const ProjectServiceInviteDeleteResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_project, 31);
163
173
  /**
164
174
  * ProjectService provides project management operations.
165
175
  *
@@ -16,7 +16,7 @@ import type { Message } from "@bufbuild/protobuf";
16
16
  * Describes the file metalstack/api/v2/project.proto.
17
17
  */
18
18
  export const file_metalstack_api_v2_project: GenFile = /*@__PURE__*/
19
- fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9wcm9qZWN0LnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiLAAQoHUHJvamVjdBIMCgR1dWlkGAEgASgJEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEhkKBG5hbWUYAyABKAlCC7pICHIGwLOusQIBEiAKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECARIOCgZ0ZW5hbnQYBSABKAkSJAoKYXZhdGFyX3VybBgGIAEoCUILukgIcgbgs66xAgFIAIgBAUINCgtfYXZhdGFyX3VybCLIAQoNUHJvamVjdE1lbWJlchIKCgJpZBgBIAEoCRI2CgRyb2xlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVCCLpIBYIBAhABEhwKFGluaGVyaXRlZF9tZW1iZXJzaGlwGAMgASgIEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKBG1ldGEYBSABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhIpICCg1Qcm9qZWN0SW52aXRlEg4KBnNlY3JldBgBIAEoCRIPCgdwcm9qZWN0GAIgASgJEjYKBHJvbGUYAyABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAESDgoGam9pbmVkGAQgASgIEhQKDHByb2plY3RfbmFtZRgFIAEoCRIOCgZ0ZW5hbnQYBiABKAkSEwoLdGVuYW50X25hbWUYByABKAkSLgoKZXhwaXJlc19hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJam9pbmVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJLChlQcm9qZWN0U2VydmljZUxpc3RSZXF1ZXN0Ei4KBXF1ZXJ5GAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFF1ZXJ5IsUBCgxQcm9qZWN0UXVlcnkSGwoEdXVpZBgBIAEoCUIIukgFcgOwAQFIAIgBARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEiAKBnRlbmFudBgDIAEoCUILukgIcgaQtK6xAgFIAogBARIuCgZsYWJlbHMYBCABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHNIA4gBAUIHCgVfdXVpZEIHCgVfbmFtZUIJCgdfdGVuYW50QgkKB19sYWJlbHMiSgoaUHJvamVjdFNlcnZpY2VMaXN0UmVzcG9uc2USLAoIcHJvamVjdHMYASADKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IjUKGFByb2plY3RTZXJ2aWNlR2V0UmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASKDAQoZUHJvamVjdFNlcnZpY2VHZXRSZXNwb25zZRIrCgdwcm9qZWN0GAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdBI5Cg9wcm9qZWN0X21lbWJlcnMYAiADKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyItYBChtQcm9qZWN0U2VydmljZUNyZWF0ZVJlcXVlc3QSGgoFbG9naW4YASABKAlCC7pICHIGwLOusQIBEhkKBG5hbWUYAiABKAlCC7pICHIGwLOusQIBEiAKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECARIkCgphdmF0YXJfdXJsGAQgASgJQgu6SAhyBuCzrrECAUgAiAEBEikKBmxhYmVscxgFIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0INCgtfYXZhdGFyX3VybCJLChxQcm9qZWN0U2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB3Byb2plY3QYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IjgKG1Byb2plY3RTZXJ2aWNlRGVsZXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASJLChxQcm9qZWN0U2VydmljZURlbGV0ZVJlc3BvbnNlEisKB3Byb2plY3QYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IsoCChtQcm9qZWN0U2VydmljZVVwZGF0ZVJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQESOgoLdXBkYXRlX21ldGEYAiABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5VcGRhdGVNZXRhQga6SAPIAQESHgoEbmFtZRgDIAEoCUILukgIcgbAs66xAgFIAIgBARIlCgtkZXNjcmlwdGlvbhgEIAEoCUILukgIcgbIs66xAgFIAYgBARIkCgphdmF0YXJfdXJsGAUgASgJQgu6SAhyBuCzrrECAUgCiAEBEjQKBmxhYmVscxgGIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gDiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkINCgtfYXZhdGFyX3VybEIJCgdfbGFiZWxzIksKHFByb2plY3RTZXJ2aWNlVXBkYXRlUmVzcG9uc2USKwoHcHJvamVjdBgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3QicAobUHJvamVjdFNlcnZpY2VJbnZpdGVSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEjYKBHJvbGUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAEiUAocUHJvamVjdFNlcnZpY2VJbnZpdGVSZXNwb25zZRIwCgZpbnZpdGUYASABKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0SW52aXRlIj0KIFByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBIlYKIVByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXNwb25zZRIxCgdpbnZpdGVzGAEgAygLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdEludml0ZSIwCh5Qcm9qZWN0U2VydmljZUludml0ZUdldFJlcXVlc3QSDgoGc2VjcmV0GAEgASgJIlMKH1Byb2plY3RTZXJ2aWNlSW52aXRlR2V0UmVzcG9uc2USMAoGaW52aXRlGAEgASgLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdEludml0ZSI3ChpQcm9qZWN0U2VydmljZUxlYXZlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASIdChtQcm9qZWN0U2VydmljZUxlYXZlUmVzcG9uc2UiTgohUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEg4KBm1lbWJlchgCIAEoCSIkCiJQcm9qZWN0U2VydmljZVJlbW92ZU1lbWJlclJlc3BvbnNlIoYBCiFQcm9qZWN0U2VydmljZVVwZGF0ZU1lbWJlclJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQESDgoGbWVtYmVyGAIgASgJEjYKBHJvbGUYAyABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAEiXgoiUHJvamVjdFNlcnZpY2VVcGRhdGVNZW1iZXJSZXNwb25zZRI4Cg5wcm9qZWN0X21lbWJlchgBIAEoCzIgLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RNZW1iZXIiMwohUHJvamVjdFNlcnZpY2VJbnZpdGVBY2NlcHRSZXF1ZXN0Eg4KBnNlY3JldBgBIAEoCSJLCiJQcm9qZWN0U2VydmljZUludml0ZUFjY2VwdFJlc3BvbnNlEg8KB3Byb2plY3QYASABKAkSFAoMcHJvamVjdF9uYW1lGAIgASgJIk4KIVByb2plY3RTZXJ2aWNlSW52aXRlRGVsZXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIOCgZzZWNyZXQYAiABKAkiJAoiUHJvamVjdFNlcnZpY2VJbnZpdGVEZWxldGVSZXNwb25zZTLiDAoOUHJvamVjdFNlcnZpY2USbQoETGlzdBIsLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUxpc3RSZXNwb25zZSII2PMYAuDzGAISbQoDR2V0EisubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VHZXRSZXF1ZXN0GiwubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VHZXRSZXNwb25zZSILyvMYAwECA+DzGAISdQoGQ3JlYXRlEi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VDcmVhdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VDcmVhdGVSZXNwb25zZSIKwvMYAgEC4PMYARJ0CgZEZWxldGUSLi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZURlbGV0ZVJlcXVlc3QaLy5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZURlbGV0ZVJlc3BvbnNlIgnK8xgBAeDzGAESdQoGVXBkYXRlEi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VVcGRhdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VVcGRhdGVSZXNwb25zZSIKyvMYAgEC4PMYARJxCgVMZWF2ZRItLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlTGVhdmVSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VMZWF2ZVJlc3BvbnNlIgnK8xgBA+DzGAEShgEKDFJlbW92ZU1lbWJlchI0Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVxdWVzdBo1Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVzcG9uc2UiCcrzGAEB4PMYARKGAQoMVXBkYXRlTWVtYmVyEjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VVcGRhdGVNZW1iZXJSZXF1ZXN0GjUubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VVcGRhdGVNZW1iZXJSZXNwb25zZSIJyvMYAQHg8xgBEnQKBkludml0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlUmVzcG9uc2UiCcrzGAEB4PMYARKFAQoMSW52aXRlQWNjZXB0EjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVBY2NlcHRSZXF1ZXN0GjUubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVBY2NlcHRSZXNwb25zZSII2PMYAuDzGAEShgEKDEludml0ZURlbGV0ZRI0Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlRGVsZXRlUmVxdWVzdBo1Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlRGVsZXRlUmVzcG9uc2UiCcrzGAEB4PMYARKDAQoLSW52aXRlc0xpc3QSMy5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZXNMaXN0UmVxdWVzdBo0Lm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXNwb25zZSIJyvMYAQHg8xgCEnwKCUludml0ZUdldBIxLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlR2V0UmVxdWVzdBoyLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlR2V0UmVzcG9uc2UiCNjzGALg8xgCQsIBChVjb20ubWV0YWxzdGFjay5hcGkudjJCDFByb2plY3RQcm90b1ABWjVnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FwaS92MjthcGl2MqICA01BWKoCEU1ldGFsc3RhY2suQXBpLlYyygIRTWV0YWxzdGFja1xBcGlcVjLiAh1NZXRhbHN0YWNrXEFwaVxWMlxHUEJNZXRhZGF0YeoCE01ldGFsc3RhY2s6OkFwaTo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
19
+ fileDesc("Ch9tZXRhbHN0YWNrL2FwaS92Mi9wcm9qZWN0LnByb3RvEhFtZXRhbHN0YWNrLmFwaS52MiLAAQoHUHJvamVjdBIMCgR1dWlkGAEgASgJEiUKBG1ldGEYAiABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEhkKBG5hbWUYAyABKAlCC7pICHIGwLOusQIBEiAKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECARIOCgZ0ZW5hbnQYBSABKAkSJAoKYXZhdGFyX3VybBgGIAEoCUILukgIcgbgs66xAgFIAIgBAUINCgtfYXZhdGFyX3VybCLIAQoNUHJvamVjdE1lbWJlchIKCgJpZBgBIAEoCRI2CgRyb2xlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVCCLpIBYIBAhABEhwKFGluaGVyaXRlZF9tZW1iZXJzaGlwGAMgASgIEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKBG1ldGEYBSABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhIpICCg1Qcm9qZWN0SW52aXRlEg4KBnNlY3JldBgBIAEoCRIPCgdwcm9qZWN0GAIgASgJEjYKBHJvbGUYAyABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAESDgoGam9pbmVkGAQgASgIEhQKDHByb2plY3RfbmFtZRgFIAEoCRIOCgZ0ZW5hbnQYBiABKAkSEwoLdGVuYW50X25hbWUYByABKAkSLgoKZXhwaXJlc19hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJam9pbmVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJLChlQcm9qZWN0U2VydmljZUxpc3RSZXF1ZXN0Ei4KBXF1ZXJ5GAEgASgLMh8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFF1ZXJ5IsUBCgxQcm9qZWN0UXVlcnkSGwoEdXVpZBgBIAEoCUIIukgFcgOwAQFIAIgBARIeCgRuYW1lGAIgASgJQgu6SAhyBsCzrrECAUgBiAEBEiAKBnRlbmFudBgDIAEoCUILukgIcgaQtK6xAgFIAogBARIuCgZsYWJlbHMYBCABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHNIA4gBAUIHCgVfdXVpZEIHCgVfbmFtZUIJCgdfdGVuYW50QgkKB19sYWJlbHMiSgoaUHJvamVjdFNlcnZpY2VMaXN0UmVzcG9uc2USLAoIcHJvamVjdHMYASADKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IjUKGFByb2plY3RTZXJ2aWNlR2V0UmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASKDAQoZUHJvamVjdFNlcnZpY2VHZXRSZXNwb25zZRIrCgdwcm9qZWN0GAEgASgLMhoubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdBI5Cg9wcm9qZWN0X21lbWJlcnMYAiADKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyItYBChtQcm9qZWN0U2VydmljZUNyZWF0ZVJlcXVlc3QSGgoFbG9naW4YASABKAlCC7pICHIGwLOusQIBEhkKBG5hbWUYAiABKAlCC7pICHIGwLOusQIBEiAKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECARIkCgphdmF0YXJfdXJsGAQgASgJQgu6SAhyBuCzrrECAUgAiAEBEikKBmxhYmVscxgFIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVsc0INCgtfYXZhdGFyX3VybCJLChxQcm9qZWN0U2VydmljZUNyZWF0ZVJlc3BvbnNlEisKB3Byb2plY3QYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IjgKG1Byb2plY3RTZXJ2aWNlRGVsZXRlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASJLChxQcm9qZWN0U2VydmljZURlbGV0ZVJlc3BvbnNlEisKB3Byb2plY3QYASABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0IsoCChtQcm9qZWN0U2VydmljZVVwZGF0ZVJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQESOgoLdXBkYXRlX21ldGEYAiABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5VcGRhdGVNZXRhQga6SAPIAQESHgoEbmFtZRgDIAEoCUILukgIcgbAs66xAgFIAIgBARIlCgtkZXNjcmlwdGlvbhgEIAEoCUILukgIcgbIs66xAgFIAYgBARIkCgphdmF0YXJfdXJsGAUgASgJQgu6SAhyBuCzrrECAUgCiAEBEjQKBmxhYmVscxgGIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVsc0gDiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkINCgtfYXZhdGFyX3VybEIJCgdfbGFiZWxzIksKHFByb2plY3RTZXJ2aWNlVXBkYXRlUmVzcG9uc2USKwoHcHJvamVjdBgBIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3QicAobUHJvamVjdFNlcnZpY2VJbnZpdGVSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEjYKBHJvbGUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAEiUAocUHJvamVjdFNlcnZpY2VJbnZpdGVSZXNwb25zZRIwCgZpbnZpdGUYASABKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0SW52aXRlIj0KIFByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBIlYKIVByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXNwb25zZRIxCgdpbnZpdGVzGAEgAygLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdEludml0ZSIwCh5Qcm9qZWN0U2VydmljZUludml0ZUdldFJlcXVlc3QSDgoGc2VjcmV0GAEgASgJIlMKH1Byb2plY3RTZXJ2aWNlSW52aXRlR2V0UmVzcG9uc2USMAoGaW52aXRlGAEgASgLMiAubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdEludml0ZSI3ChpQcm9qZWN0U2VydmljZUxlYXZlUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABASIdChtQcm9qZWN0U2VydmljZUxlYXZlUmVzcG9uc2UikAEKHlByb2plY3RTZXJ2aWNlQWRkTWVtYmVyUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIbCgZtZW1iZXIYAiABKAlCC7pICHIGkLSusQIBEjYKBHJvbGUYAyABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZUIIukgFggECEAEiWQofUHJvamVjdFNlcnZpY2VBZGRNZW1iZXJSZXNwb25zZRI2Cg5wcm9qZWN0X21lbWJlchgBIAEoDjIeLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RSb2xlIk4KIVByb2plY3RTZXJ2aWNlUmVtb3ZlTWVtYmVyUmVxdWVzdBIZCgdwcm9qZWN0GAEgASgJQgi6SAVyA7ABARIOCgZtZW1iZXIYAiABKAkiJAoiUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZSKGAQohUHJvamVjdFNlcnZpY2VVcGRhdGVNZW1iZXJSZXF1ZXN0EhkKB3Byb2plY3QYASABKAlCCLpIBXIDsAEBEg4KBm1lbWJlchgCIAEoCRI2CgRyb2xlGAMgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGVCCLpIBYIBAhABIl4KIlByb2plY3RTZXJ2aWNlVXBkYXRlTWVtYmVyUmVzcG9uc2USOAoOcHJvamVjdF9tZW1iZXIYASABKAsyIC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0TWVtYmVyIjMKIVByb2plY3RTZXJ2aWNlSW52aXRlQWNjZXB0UmVxdWVzdBIOCgZzZWNyZXQYASABKAkiSwoiUHJvamVjdFNlcnZpY2VJbnZpdGVBY2NlcHRSZXNwb25zZRIPCgdwcm9qZWN0GAEgASgJEhQKDHByb2plY3RfbmFtZRgCIAEoCSJOCiFQcm9qZWN0U2VydmljZUludml0ZURlbGV0ZVJlcXVlc3QSGQoHcHJvamVjdBgBIAEoCUIIukgFcgOwAQESDgoGc2VjcmV0GAIgASgJIiQKIlByb2plY3RTZXJ2aWNlSW52aXRlRGVsZXRlUmVzcG9uc2Uy4Q0KDlByb2plY3RTZXJ2aWNlEm0KBExpc3QSLC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUxpc3RSZXF1ZXN0Gi0ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VMaXN0UmVzcG9uc2UiCNjzGALg8xgCEm0KA0dldBIrLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlR2V0UmVxdWVzdBosLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlR2V0UmVzcG9uc2UiC8rzGAMBAgPg8xgCEnUKBkNyZWF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlQ3JlYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlQ3JlYXRlUmVzcG9uc2UiCsLzGAIBAuDzGAESdAoGRGVsZXRlEi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VEZWxldGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VEZWxldGVSZXNwb25zZSIJyvMYAQHg8xgBEnUKBlVwZGF0ZRIuLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlVXBkYXRlUmVxdWVzdBovLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlVXBkYXRlUmVzcG9uc2UiCsrzGAIBAuDzGAEScQoFTGVhdmUSLS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUxlYXZlUmVxdWVzdBouLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlTGVhdmVSZXNwb25zZSIJyvMYAQPg8xgBEn0KCUFkZE1lbWJlchIxLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlQWRkTWVtYmVyUmVxdWVzdBoyLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlQWRkTWVtYmVyUmVzcG9uc2UiCcrzGAEB4PMYARKGAQoMUmVtb3ZlTWVtYmVyEjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXF1ZXN0GjUubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VSZW1vdmVNZW1iZXJSZXNwb25zZSIJyvMYAQHg8xgBEoYBCgxVcGRhdGVNZW1iZXISNC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZVVwZGF0ZU1lbWJlclJlcXVlc3QaNS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZVVwZGF0ZU1lbWJlclJlc3BvbnNlIgnK8xgBAeDzGAESdAoGSW52aXRlEi4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVSZXF1ZXN0Gi8ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVSZXNwb25zZSIJyvMYAQHg8xgBEoUBCgxJbnZpdGVBY2NlcHQSNC5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZUFjY2VwdFJlcXVlc3QaNS5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0U2VydmljZUludml0ZUFjY2VwdFJlc3BvbnNlIgjY8xgC4PMYARKGAQoMSW52aXRlRGVsZXRlEjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVEZWxldGVSZXF1ZXN0GjUubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVEZWxldGVSZXNwb25zZSIJyvMYAQHg8xgBEoMBCgtJbnZpdGVzTGlzdBIzLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RTZXJ2aWNlSW52aXRlc0xpc3RSZXF1ZXN0GjQubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVzTGlzdFJlc3BvbnNlIgnK8xgBAeDzGAISfAoJSW52aXRlR2V0EjEubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVHZXRSZXF1ZXN0GjIubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFNlcnZpY2VJbnZpdGVHZXRSZXNwb25zZSII2PMYAuDzGAJCwgEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkIMUHJvamVjdFByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
20
20
 
21
21
  /**
22
22
  * Project defines a group of resources belonging to a tenant
@@ -697,6 +697,62 @@ export type ProjectServiceLeaveResponse = Message<"metalstack.api.v2.ProjectServ
697
697
  export const ProjectServiceLeaveResponseSchema: GenMessage<ProjectServiceLeaveResponse> = /*@__PURE__*/
698
698
  messageDesc(file_metalstack_api_v2_project, 21);
699
699
 
700
+ /**
701
+ * ProjectServiceAddMemberRequest is the request payload for adding a member to a project
702
+ *
703
+ * @generated from message metalstack.api.v2.ProjectServiceAddMemberRequest
704
+ */
705
+ export type ProjectServiceAddMemberRequest = Message<"metalstack.api.v2.ProjectServiceAddMemberRequest"> & {
706
+ /**
707
+ * Project is the uuid of the project
708
+ *
709
+ * @generated from field: string project = 1;
710
+ */
711
+ project: string;
712
+
713
+ /**
714
+ * Login of the member to add
715
+ *
716
+ * @generated from field: string member = 2;
717
+ */
718
+ member: string;
719
+
720
+ /**
721
+ * Role to assign to the new member
722
+ *
723
+ * @generated from field: metalstack.api.v2.ProjectRole role = 3;
724
+ */
725
+ role: ProjectRole;
726
+ };
727
+
728
+ /**
729
+ * Describes the message metalstack.api.v2.ProjectServiceAddMemberRequest.
730
+ * Use `create(ProjectServiceAddMemberRequestSchema)` to create a new message.
731
+ */
732
+ export const ProjectServiceAddMemberRequestSchema: GenMessage<ProjectServiceAddMemberRequest> = /*@__PURE__*/
733
+ messageDesc(file_metalstack_api_v2_project, 22);
734
+
735
+ /**
736
+ * ProjectServiceAddMemberResponse is the response payload for the add member request
737
+ *
738
+ * @generated from message metalstack.api.v2.ProjectServiceAddMemberResponse
739
+ */
740
+ export type ProjectServiceAddMemberResponse = Message<"metalstack.api.v2.ProjectServiceAddMemberResponse"> & {
741
+ /**
742
+ * ProjectRole is the added project member
743
+ *
744
+ * @generated from field: metalstack.api.v2.ProjectRole project_member = 1;
745
+ */
746
+ projectMember: ProjectRole;
747
+ };
748
+
749
+ /**
750
+ * Describes the message metalstack.api.v2.ProjectServiceAddMemberResponse.
751
+ * Use `create(ProjectServiceAddMemberResponseSchema)` to create a new message.
752
+ */
753
+ export const ProjectServiceAddMemberResponseSchema: GenMessage<ProjectServiceAddMemberResponse> = /*@__PURE__*/
754
+ messageDesc(file_metalstack_api_v2_project, 23);
755
+
700
756
  /**
701
757
  * ProjectServiceRemoveMemberRequest is used to remove a member from a project
702
758
  *
@@ -723,7 +779,7 @@ export type ProjectServiceRemoveMemberRequest = Message<"metalstack.api.v2.Proje
723
779
  * Use `create(ProjectServiceRemoveMemberRequestSchema)` to create a new message.
724
780
  */
725
781
  export const ProjectServiceRemoveMemberRequestSchema: GenMessage<ProjectServiceRemoveMemberRequest> = /*@__PURE__*/
726
- messageDesc(file_metalstack_api_v2_project, 22);
782
+ messageDesc(file_metalstack_api_v2_project, 24);
727
783
 
728
784
  /**
729
785
  * ProjectServiceRemoveMemberResponse is the response payload to a remove member request
@@ -738,7 +794,7 @@ export type ProjectServiceRemoveMemberResponse = Message<"metalstack.api.v2.Proj
738
794
  * Use `create(ProjectServiceRemoveMemberResponseSchema)` to create a new message.
739
795
  */
740
796
  export const ProjectServiceRemoveMemberResponseSchema: GenMessage<ProjectServiceRemoveMemberResponse> = /*@__PURE__*/
741
- messageDesc(file_metalstack_api_v2_project, 23);
797
+ messageDesc(file_metalstack_api_v2_project, 25);
742
798
 
743
799
  /**
744
800
  * ProjectServiceUpdateMemberRequest is used to update a member of a project
@@ -773,7 +829,7 @@ export type ProjectServiceUpdateMemberRequest = Message<"metalstack.api.v2.Proje
773
829
  * Use `create(ProjectServiceUpdateMemberRequestSchema)` to create a new message.
774
830
  */
775
831
  export const ProjectServiceUpdateMemberRequestSchema: GenMessage<ProjectServiceUpdateMemberRequest> = /*@__PURE__*/
776
- messageDesc(file_metalstack_api_v2_project, 24);
832
+ messageDesc(file_metalstack_api_v2_project, 26);
777
833
 
778
834
  /**
779
835
  * ProjectServiceUpdateMemberResponse is the response payload to a update member request
@@ -794,7 +850,7 @@ export type ProjectServiceUpdateMemberResponse = Message<"metalstack.api.v2.Proj
794
850
  * Use `create(ProjectServiceUpdateMemberResponseSchema)` to create a new message.
795
851
  */
796
852
  export const ProjectServiceUpdateMemberResponseSchema: GenMessage<ProjectServiceUpdateMemberResponse> = /*@__PURE__*/
797
- messageDesc(file_metalstack_api_v2_project, 25);
853
+ messageDesc(file_metalstack_api_v2_project, 27);
798
854
 
799
855
  /**
800
856
  * ProjectServiceInviteAcceptRequest is the request payload to a accept invite request
@@ -815,7 +871,7 @@ export type ProjectServiceInviteAcceptRequest = Message<"metalstack.api.v2.Proje
815
871
  * Use `create(ProjectServiceInviteAcceptRequestSchema)` to create a new message.
816
872
  */
817
873
  export const ProjectServiceInviteAcceptRequestSchema: GenMessage<ProjectServiceInviteAcceptRequest> = /*@__PURE__*/
818
- messageDesc(file_metalstack_api_v2_project, 26);
874
+ messageDesc(file_metalstack_api_v2_project, 28);
819
875
 
820
876
  /**
821
877
  * ProjectServiceInviteAcceptResponse is the response payload to a accept invite request
@@ -843,7 +899,7 @@ export type ProjectServiceInviteAcceptResponse = Message<"metalstack.api.v2.Proj
843
899
  * Use `create(ProjectServiceInviteAcceptResponseSchema)` to create a new message.
844
900
  */
845
901
  export const ProjectServiceInviteAcceptResponseSchema: GenMessage<ProjectServiceInviteAcceptResponse> = /*@__PURE__*/
846
- messageDesc(file_metalstack_api_v2_project, 27);
902
+ messageDesc(file_metalstack_api_v2_project, 29);
847
903
 
848
904
  /**
849
905
  * ProjectServiceInviteDeleteRequest is the request payload to a delete invite
@@ -871,7 +927,7 @@ export type ProjectServiceInviteDeleteRequest = Message<"metalstack.api.v2.Proje
871
927
  * Use `create(ProjectServiceInviteDeleteRequestSchema)` to create a new message.
872
928
  */
873
929
  export const ProjectServiceInviteDeleteRequestSchema: GenMessage<ProjectServiceInviteDeleteRequest> = /*@__PURE__*/
874
- messageDesc(file_metalstack_api_v2_project, 28);
930
+ messageDesc(file_metalstack_api_v2_project, 30);
875
931
 
876
932
  /**
877
933
  * ProjectServiceInviteDeleteResponse is the response payload of a delete invite request
@@ -886,7 +942,7 @@ export type ProjectServiceInviteDeleteResponse = Message<"metalstack.api.v2.Proj
886
942
  * Use `create(ProjectServiceInviteDeleteResponseSchema)` to create a new message.
887
943
  */
888
944
  export const ProjectServiceInviteDeleteResponseSchema: GenMessage<ProjectServiceInviteDeleteResponse> = /*@__PURE__*/
889
- messageDesc(file_metalstack_api_v2_project, 29);
945
+ messageDesc(file_metalstack_api_v2_project, 31);
890
946
 
891
947
  /**
892
948
  * ProjectService provides project management operations.
@@ -954,6 +1010,16 @@ export const ProjectService: GenService<{
954
1010
  input: typeof ProjectServiceLeaveRequestSchema;
955
1011
  output: typeof ProjectServiceLeaveResponseSchema;
956
1012
  },
1013
+ /**
1014
+ * AddMember adds a user to a project
1015
+ *
1016
+ * @generated from rpc metalstack.api.v2.ProjectService.AddMember
1017
+ */
1018
+ addMember: {
1019
+ methodKind: "unary";
1020
+ input: typeof ProjectServiceAddMemberRequestSchema;
1021
+ output: typeof ProjectServiceAddMemberResponseSchema;
1022
+ },
957
1023
  /**
958
1024
  * RemoveMember removes a user from a project
959
1025
  *
@@ -37,64 +37,70 @@ export type Switch = Message<"metalstack.api.v2.Switch"> & {
37
37
  * @generated from field: optional string rack = 4;
38
38
  */
39
39
  rack?: string | undefined;
40
+ /**
41
+ * Room ID if the switch resides in a room.
42
+ *
43
+ * @generated from field: optional string room = 5;
44
+ */
45
+ room?: string | undefined;
40
46
  /**
41
47
  * Partition the switch belongs to.
42
48
  *
43
- * @generated from field: string partition = 5;
49
+ * @generated from field: string partition = 6;
44
50
  */
45
51
  partition: string;
46
52
  /**
47
53
  * ReplaceMode is used to mark a switch ready for replacement.
48
54
  *
49
- * @generated from field: metalstack.api.v2.SwitchReplaceMode replace_mode = 6;
55
+ * @generated from field: metalstack.api.v2.SwitchReplaceMode replace_mode = 7;
50
56
  */
51
57
  replaceMode: SwitchReplaceMode;
52
58
  /**
53
59
  * ManagementIp is the switch's IP for management access.
54
60
  *
55
- * @generated from field: string management_ip = 7;
61
+ * @generated from field: string management_ip = 8;
56
62
  */
57
63
  managementIp: string;
58
64
  /**
59
65
  * ManagementUser is the user name to use for management access.
60
66
  *
61
- * @generated from field: optional string management_user = 8;
67
+ * @generated from field: optional string management_user = 9;
62
68
  */
63
69
  managementUser?: string | undefined;
64
70
  /**
65
71
  * ConsoleCommand is the command for accessing the switch's console.
66
72
  *
67
- * @generated from field: optional string console_command = 9;
73
+ * @generated from field: optional string console_command = 10;
68
74
  */
69
75
  consoleCommand?: string | undefined;
70
76
  /**
71
77
  * Nics are the front panel ports of the switch.
72
78
  *
73
- * @generated from field: repeated metalstack.api.v2.SwitchNic nics = 10;
79
+ * @generated from field: repeated metalstack.api.v2.SwitchNic nics = 11;
74
80
  */
75
81
  nics: SwitchNic[];
76
82
  /**
77
83
  * SwitchOs is the OS running on the switch.
78
84
  *
79
- * @generated from field: metalstack.api.v2.SwitchOS os = 11;
85
+ * @generated from field: metalstack.api.v2.SwitchOS os = 12;
80
86
  */
81
87
  os?: SwitchOS | undefined;
82
88
  /**
83
89
  * MachineConnections map machines to the nics they are connected to.
84
90
  *
85
- * @generated from field: repeated metalstack.api.v2.MachineConnection machine_connections = 12;
91
+ * @generated from field: repeated metalstack.api.v2.MachineConnection machine_connections = 13;
86
92
  */
87
93
  machineConnections: MachineConnection[];
88
94
  /**
89
95
  * LastSync contains information about the last heartbeat of the switch.
90
96
  *
91
- * @generated from field: metalstack.api.v2.SwitchSync last_sync = 13;
97
+ * @generated from field: metalstack.api.v2.SwitchSync last_sync = 14;
92
98
  */
93
99
  lastSync?: SwitchSync | undefined;
94
100
  /**
95
101
  * LastSyncError contains information about the last unsuccessful heartbeat of the switch.
96
102
  *
97
- * @generated from field: metalstack.api.v2.SwitchSync last_sync_error = 14;
103
+ * @generated from field: metalstack.api.v2.SwitchSync last_sync_error = 15;
98
104
  */
99
105
  lastSyncError?: SwitchSync | undefined;
100
106
  };
@@ -337,16 +343,22 @@ export type SwitchQuery = Message<"metalstack.api.v2.SwitchQuery"> & {
337
343
  * @generated from field: optional string rack = 3;
338
344
  */
339
345
  rack?: string | undefined;
346
+ /**
347
+ * Room ID if the switch resides in a room.
348
+ *
349
+ * @generated from field: optional string room = 4;
350
+ */
351
+ room?: string | undefined;
340
352
  /**
341
353
  * Switch OS specific queries.
342
354
  *
343
- * @generated from field: optional metalstack.api.v2.SwitchOSQuery os = 4;
355
+ * @generated from field: optional metalstack.api.v2.SwitchOSQuery os = 5;
344
356
  */
345
357
  os?: SwitchOSQuery | undefined;
346
358
  /**
347
359
  * ConnectedMachineID lists the switches which have the given machine id in the connected machines map.
348
360
  *
349
- * @generated from field: optional string connected_machine_id = 5;
361
+ * @generated from field: optional string connected_machine_id = 6;
350
362
  */
351
363
  connectedMachineId?: string | undefined;
352
364
  };
@@ -10,7 +10,7 @@ import { file_metalstack_api_v2_predefined_rules } from "./predefined_rules_pb";
10
10
  /**
11
11
  * Describes the file metalstack/api/v2/switch.proto.
12
12
  */
13
- export const file_metalstack_api_v2_switch = /*@__PURE__*/ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIpkFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoJcGFydGl0aW9uGAUgASgJQgu6SAhyBtCzrrECARJECgxyZXBsYWNlX21vZGUYBiABKA4yJC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hSZXBsYWNlTW9kZUIIukgFggECEAESHgoNbWFuYWdlbWVudF9pcBgHIAEoCUIHukgEcgJwARIoCg9tYW5hZ2VtZW50X3VzZXIYCCABKAlCCrpIB3IFEAIYgAFIAYgBARIoCg9jb25zb2xlX2NvbW1hbmQYCSABKAlCCrpIB3IFEAIYgAFIAogBARIqCgRuaWNzGAogAygLMhwubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoTmljEicKAm9zGAsgASgLMhsubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1MSQQoTbWFjaGluZV9jb25uZWN0aW9ucxgMIAMoCzIkLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmVDb25uZWN0aW9uEjAKCWxhc3Rfc3luYxgNIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFN5bmMSNgoPbGFzdF9zeW5jX2Vycm9yGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luY0IHCgVfcmFja0ISChBfbWFuYWdlbWVudF91c2VyQhIKEF9jb25zb2xlX2NvbW1hbmQijgEKCFN3aXRjaE9TEjsKBnZlbmRvchgBIAEoDjIhLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE9TVmVuZG9yQgi6SAWCAQIQARIcCgd2ZXJzaW9uGAIgASgJQgu6SAhyBsCzrrECARInChJtZXRhbF9jb3JlX3ZlcnNpb24YAyABKAlCC7pICHIGwLOusQIBIuACCglTd2l0Y2hOaWMSGQoEbmFtZRgBIAEoCUILukgIcgbAs66xAgESHwoKaWRlbnRpZmllchgCIAEoCUILukgIcgbAs66xAgESGAoDbWFjGAMgASgJQgu6SAhyBrizrrECARIdCgN2cmYYBCABKAlCC7pICHIGwLOusQIBSACIAQESLwoFc3RhdGUYBSABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5OaWNTdGF0ZUgBiAEBEjUKCmJncF9maWx0ZXIYBiABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5CR1BGaWx0ZXJIAogBARJCCg5iZ3BfcG9ydF9zdGF0ZRgHIAEoCzIlLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaEJHUFBvcnRTdGF0ZUgDiAEBQgYKBF92cmZCCAoGX3N0YXRlQg0KC19iZ3BfZmlsdGVyQhEKD19iZ3BfcG9ydF9zdGF0ZSJHCglCR1BGaWx0ZXISGwoFY2lkcnMYASADKAlCDLpICZIBBriks7ECARIdCgR2bmlzGAIgAygJQg+6SAySAQkiB3IFEAIYgAEiqQIKElN3aXRjaEJHUFBvcnRTdGF0ZRIdCghuZWlnaGJvchgBIAEoCUILukgIcgbAs66xAgESHwoKcGVlcl9ncm91cBgCIAEoCUILukgIcgbAs66xAgESHQoIdnJmX25hbWUYAyABKAlCC7pICHIGwLOusQIBEjgKCWJncF9zdGF0ZRgEIAEoDjIbLm1ldGFsc3RhY2suYXBpLnYyLkJHUFN0YXRlQgi6SAWCAQIQARI8ChhiZ3BfdGltZXJfdXBfZXN0YWJsaXNoZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE3NlbnRfcHJlZml4X2NvdW50ZXIYBiABKAQSHwoXYWNjZXB0ZWRfcHJlZml4X2NvdW50ZXIYByABKAQimgEKCE5pY1N0YXRlEkMKB2Rlc2lyZWQYASABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUgAiAEBEj0KBmFjdHVhbBgCIAEoDjIjLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFBvcnRTdGF0dXNCCLpIBYIBAhABQgoKCF9kZXNpcmVkIlIKEU1hY2hpbmVDb25uZWN0aW9uEhIKCm1hY2hpbmVfaWQYASABKAkSKQoDbmljGAIgASgLMhwubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoTmljIpACCgtTd2l0Y2hRdWVyeRIeCgJpZBgBIAEoCUINukgKcgjAs66xAgFoAUgAiAEBEiMKCXBhcnRpdGlvbhgCIAEoCUILukgIcgbQs66xAgFIAYgBARIeCgRyYWNrGAMgASgJQgu6SAhyBsCzrrECAUgCiAEBEjEKAm9zGAQgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgDiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAUgASgJQgi6SAVyA7ABAUgEiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSqJAgoIQkdQU3RhdGUSGQoVQkdQX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoOQkdQX1NUQVRFX0lETEUQARoIgrIZBElkbGUSIgoRQkdQX1NUQVRFX0NPTk5FQ1QQAhoLgrIZB0Nvbm5lY3QSIAoQQkdQX1NUQVRFX0FDVElWRRADGgqCshkGQWN0aXZlEiUKE0JHUF9TVEFURV9PUEVOX1NFTlQQBBoMgrIZCE9wZW5TZW50EisKFkJHUF9TVEFURV9PUEVOX0NPTkZJUk0QBRoPgrIZC09wZW5Db25maXJtEioKFUJHUF9TVEFURV9FU1RBQkxJU0hFRBAGGg+CshkLRXN0YWJsaXNoZWQqogEKEVN3aXRjaFJlcGxhY2VNb2RlEikKH1NXSVRDSF9SRVBMQUNFX01PREVfVU5TUEVDSUZJRUQQABoEgrIZABIsChtTV0lUQ0hfUkVQTEFDRV9NT0RFX1JFUExBQ0UQARoLgrIZB3JlcGxhY2USNAofU1dJVENIX1JFUExBQ0VfTU9ERV9PUEVSQVRJT05BTBACGg+CshkLb3BlcmF0aW9uYWwqhAEKDlN3aXRjaE9TVmVuZG9yEiAKHFNXSVRDSF9PU19WRU5ET1JfVU5TUEVDSUZJRUQQABIpChhTV0lUQ0hfT1NfVkVORE9SX0NVTVVMVVMQARoLgrIZB0N1bXVsdXMSJQoWU1dJVENIX09TX1ZFTkRPUl9TT05JQxACGgmCshkFU09OaUMqrQEKEFN3aXRjaFBvcnRTdGF0dXMSIgoeU1dJVENIX1BPUlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIQoVU1dJVENIX1BPUlRfU1RBVFVTX1VQEAEaBoKyGQJ1cBIlChdTV0lUQ0hfUE9SVF9TVEFUVVNfRE9XThACGgiCshkEZG93bhIrChpTV0lUQ0hfUE9SVF9TVEFUVVNfVU5LTk9XThADGguCshkHdW5rbm93bkLBAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgtTd2l0Y2hQcm90b1ABWjVnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FwaS92MjthcGl2MqICA01BWKoCEU1ldGFsc3RhY2suQXBpLlYyygIRTWV0YWxzdGFja1xBcGlcVjLiAh1NZXRhbHN0YWNrXEFwaVxWMlxHUEJNZXRhZGF0YeoCE01ldGFsc3RhY2s6OkFwaTo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]);
13
+ export const file_metalstack_api_v2_switch = /*@__PURE__*/ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEi4AIKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIYCgNtYWMYAyABKAlCC7pICHIGuLOusQIBEh0KA3ZyZhgEIAEoCUILukgIcgbAs66xAgFIAIgBARIvCgVzdGF0ZRgFIAEoCzIbLm1ldGFsc3RhY2suYXBpLnYyLk5pY1N0YXRlSAGIAQESNQoKYmdwX2ZpbHRlchgGIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLkJHUEZpbHRlckgCiAEBEkIKDmJncF9wb3J0X3N0YXRlGAcgASgLMiUubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoQkdQUG9ydFN0YXRlSAOIAQFCBgoEX3ZyZkIICgZfc3RhdGVCDQoLX2JncF9maWx0ZXJCEQoPX2JncF9wb3J0X3N0YXRlIkcKCUJHUEZpbHRlchIbCgVjaWRycxgBIAMoCUIMukgJkgEGuKSzsQIBEh0KBHZuaXMYAiADKAlCD7pIDJIBCSIHcgUQAhiAASKpAgoSU3dpdGNoQkdQUG9ydFN0YXRlEh0KCG5laWdoYm9yGAEgASgJQgu6SAhyBsCzrrECARIfCgpwZWVyX2dyb3VwGAIgASgJQgu6SAhyBsCzrrECARIdCgh2cmZfbmFtZRgDIAEoCUILukgIcgbAs66xAgESOAoJYmdwX3N0YXRlGAQgASgOMhsubWV0YWxzdGFjay5hcGkudjIuQkdQU3RhdGVCCLpIBYIBAhABEjwKGGJncF90aW1lcl91cF9lc3RhYmxpc2hlZBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoTc2VudF9wcmVmaXhfY291bnRlchgGIAEoBBIfChdhY2NlcHRlZF9wcmVmaXhfY291bnRlchgHIAEoBCKaAQoITmljU3RhdGUSQwoHZGVzaXJlZBgBIAEoDjIjLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFBvcnRTdGF0dXNCCLpIBYIBAhABSACIAQESPQoGYWN0dWFsGAIgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFCCgoIX2Rlc2lyZWQiUgoRTWFjaGluZUNvbm5lY3Rpb24SEgoKbWFjaGluZV9pZBgBIAEoCRIpCgNuaWMYAiABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMiuQIKC1N3aXRjaFF1ZXJ5Eh4KAmlkGAEgASgJQg26SApyCMCzrrECAWgBSACIAQESIwoJcGFydGl0aW9uGAIgASgJQgu6SAhyBtCzrrECAUgBiAEBEh4KBHJhY2sYAyABKAlCC7pICHIGwLOusQIBSAKIAQESHgoEcm9vbRgEIAEoCUILukgIcgbAs66xAgFIA4gBARIxCgJvcxgFIAEoCzIgLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE9TUXVlcnlIBIgBARIrChRjb25uZWN0ZWRfbWFjaGluZV9pZBgGIAEoCUIIukgFcgOwAQFIBYgBAUIFCgNfaWRCDAoKX3BhcnRpdGlvbkIHCgVfcmFja0IHCgVfcm9vbUIFCgNfb3NCFwoVX2Nvbm5lY3RlZF9tYWNoaW5lX2lkIosBCg1Td2l0Y2hPU1F1ZXJ5EkAKBnZlbmRvchgBIAEoDjIhLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE9TVmVuZG9yQgi6SAWCAQIQAUgAiAEBEiEKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBSAGIAQFCCQoHX3ZlbmRvckIKCghfdmVyc2lvbiKBAQoKU3dpdGNoU3luYxIoCgR0aW1lGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCghkdXJhdGlvbhgCIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhISCgVlcnJvchgDIAEoCUgAiAEBQggKBl9lcnJvciJ/ChJTd2l0Y2hXaXRoTWFjaGluZXMSCgoCaWQYASABKAkSEQoJcGFydGl0aW9uGAIgASgJEgwKBHJhY2sYAyABKAkSPAoLY29ubmVjdGlvbnMYBCADKAsyJy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWNXaXRoTWFjaGluZSKaAQoUU3dpdGNoTmljV2l0aE1hY2hpbmUSKQoDbmljGAEgASgLMhwubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoTmljEisKB21hY2hpbmUYAiABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5NYWNoaW5lEioKA2ZydRgDIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmVGUlUqiQIKCEJHUFN0YXRlEhkKFUJHUF9TVEFURV9VTlNQRUNJRklFRBAAEhwKDkJHUF9TVEFURV9JRExFEAEaCIKyGQRJZGxlEiIKEUJHUF9TVEFURV9DT05ORUNUEAIaC4KyGQdDb25uZWN0EiAKEEJHUF9TVEFURV9BQ1RJVkUQAxoKgrIZBkFjdGl2ZRIlChNCR1BfU1RBVEVfT1BFTl9TRU5UEAQaDIKyGQhPcGVuU2VudBIrChZCR1BfU1RBVEVfT1BFTl9DT05GSVJNEAUaD4KyGQtPcGVuQ29uZmlybRIqChVCR1BfU1RBVEVfRVNUQUJMSVNIRUQQBhoPgrIZC0VzdGFibGlzaGVkKqIBChFTd2l0Y2hSZXBsYWNlTW9kZRIpCh9TV0lUQ0hfUkVQTEFDRV9NT0RFX1VOU1BFQ0lGSUVEEAAaBIKyGQASLAobU1dJVENIX1JFUExBQ0VfTU9ERV9SRVBMQUNFEAEaC4KyGQdyZXBsYWNlEjQKH1NXSVRDSF9SRVBMQUNFX01PREVfT1BFUkFUSU9OQUwQAhoPgrIZC29wZXJhdGlvbmFsKoQBCg5Td2l0Y2hPU1ZlbmRvchIgChxTV0lUQ0hfT1NfVkVORE9SX1VOU1BFQ0lGSUVEEAASKQoYU1dJVENIX09TX1ZFTkRPUl9DVU1VTFVTEAEaC4KyGQdDdW11bHVzEiUKFlNXSVRDSF9PU19WRU5ET1JfU09OSUMQAhoJgrIZBVNPTmlDKq0BChBTd2l0Y2hQb3J0U3RhdHVzEiIKHlNXSVRDSF9QT1JUX1NUQVRVU19VTlNQRUNJRklFRBAAEiEKFVNXSVRDSF9QT1JUX1NUQVRVU19VUBABGgaCshkCdXASJQoXU1dJVENIX1BPUlRfU1RBVFVTX0RPV04QAhoIgrIZBGRvd24SKwoaU1dJVENIX1BPUlRfU1RBVFVTX1VOS05PV04QAxoLgrIZB3Vua25vd25CwQEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkILU3dpdGNoUHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]);
14
14
  /**
15
15
  * Describes the message metalstack.api.v2.Switch.
16
16
  * Use `create(SwitchSchema)` to create a new message.
@@ -18,7 +18,7 @@ import type { Message } from "@bufbuild/protobuf";
18
18
  * Describes the file metalstack/api/v2/switch.proto.
19
19
  */
20
20
  export const file_metalstack_api_v2_switch: GenFile = /*@__PURE__*/
21
- fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIpkFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoJcGFydGl0aW9uGAUgASgJQgu6SAhyBtCzrrECARJECgxyZXBsYWNlX21vZGUYBiABKA4yJC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hSZXBsYWNlTW9kZUIIukgFggECEAESHgoNbWFuYWdlbWVudF9pcBgHIAEoCUIHukgEcgJwARIoCg9tYW5hZ2VtZW50X3VzZXIYCCABKAlCCrpIB3IFEAIYgAFIAYgBARIoCg9jb25zb2xlX2NvbW1hbmQYCSABKAlCCrpIB3IFEAIYgAFIAogBARIqCgRuaWNzGAogAygLMhwubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoTmljEicKAm9zGAsgASgLMhsubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1MSQQoTbWFjaGluZV9jb25uZWN0aW9ucxgMIAMoCzIkLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmVDb25uZWN0aW9uEjAKCWxhc3Rfc3luYxgNIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFN5bmMSNgoPbGFzdF9zeW5jX2Vycm9yGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luY0IHCgVfcmFja0ISChBfbWFuYWdlbWVudF91c2VyQhIKEF9jb25zb2xlX2NvbW1hbmQijgEKCFN3aXRjaE9TEjsKBnZlbmRvchgBIAEoDjIhLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE9TVmVuZG9yQgi6SAWCAQIQARIcCgd2ZXJzaW9uGAIgASgJQgu6SAhyBsCzrrECARInChJtZXRhbF9jb3JlX3ZlcnNpb24YAyABKAlCC7pICHIGwLOusQIBIuACCglTd2l0Y2hOaWMSGQoEbmFtZRgBIAEoCUILukgIcgbAs66xAgESHwoKaWRlbnRpZmllchgCIAEoCUILukgIcgbAs66xAgESGAoDbWFjGAMgASgJQgu6SAhyBrizrrECARIdCgN2cmYYBCABKAlCC7pICHIGwLOusQIBSACIAQESLwoFc3RhdGUYBSABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5OaWNTdGF0ZUgBiAEBEjUKCmJncF9maWx0ZXIYBiABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5CR1BGaWx0ZXJIAogBARJCCg5iZ3BfcG9ydF9zdGF0ZRgHIAEoCzIlLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaEJHUFBvcnRTdGF0ZUgDiAEBQgYKBF92cmZCCAoGX3N0YXRlQg0KC19iZ3BfZmlsdGVyQhEKD19iZ3BfcG9ydF9zdGF0ZSJHCglCR1BGaWx0ZXISGwoFY2lkcnMYASADKAlCDLpICZIBBriks7ECARIdCgR2bmlzGAIgAygJQg+6SAySAQkiB3IFEAIYgAEiqQIKElN3aXRjaEJHUFBvcnRTdGF0ZRIdCghuZWlnaGJvchgBIAEoCUILukgIcgbAs66xAgESHwoKcGVlcl9ncm91cBgCIAEoCUILukgIcgbAs66xAgESHQoIdnJmX25hbWUYAyABKAlCC7pICHIGwLOusQIBEjgKCWJncF9zdGF0ZRgEIAEoDjIbLm1ldGFsc3RhY2suYXBpLnYyLkJHUFN0YXRlQgi6SAWCAQIQARI8ChhiZ3BfdGltZXJfdXBfZXN0YWJsaXNoZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE3NlbnRfcHJlZml4X2NvdW50ZXIYBiABKAQSHwoXYWNjZXB0ZWRfcHJlZml4X2NvdW50ZXIYByABKAQimgEKCE5pY1N0YXRlEkMKB2Rlc2lyZWQYASABKA4yIy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hQb3J0U3RhdHVzQgi6SAWCAQIQAUgAiAEBEj0KBmFjdHVhbBgCIAEoDjIjLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFBvcnRTdGF0dXNCCLpIBYIBAhABQgoKCF9kZXNpcmVkIlIKEU1hY2hpbmVDb25uZWN0aW9uEhIKCm1hY2hpbmVfaWQYASABKAkSKQoDbmljGAIgASgLMhwubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoTmljIpACCgtTd2l0Y2hRdWVyeRIeCgJpZBgBIAEoCUINukgKcgjAs66xAgFoAUgAiAEBEiMKCXBhcnRpdGlvbhgCIAEoCUILukgIcgbQs66xAgFIAYgBARIeCgRyYWNrGAMgASgJQgu6SAhyBsCzrrECAUgCiAEBEjEKAm9zGAQgASgLMiAubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NRdWVyeUgDiAEBEisKFGNvbm5lY3RlZF9tYWNoaW5lX2lkGAUgASgJQgi6SAVyA7ABAUgEiAEBQgUKA19pZEIMCgpfcGFydGl0aW9uQgcKBV9yYWNrQgUKA19vc0IXChVfY29ubmVjdGVkX21hY2hpbmVfaWQiiwEKDVN3aXRjaE9TUXVlcnkSQAoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABSACIAQESIQoHdmVyc2lvbhgCIAEoCUILukgIcgbAs66xAgFIAYgBAUIJCgdfdmVuZG9yQgoKCF92ZXJzaW9uIoEBCgpTd2l0Y2hTeW5jEigKBHRpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKCGR1cmF0aW9uGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKBWVycm9yGAMgASgJSACIAQFCCAoGX2Vycm9yIn8KElN3aXRjaFdpdGhNYWNoaW5lcxIKCgJpZBgBIAEoCRIRCglwYXJ0aXRpb24YAiABKAkSDAoEcmFjaxgDIAEoCRI8Cgtjb25uZWN0aW9ucxgEIAMoCzInLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE5pY1dpdGhNYWNoaW5lIpoBChRTd2l0Y2hOaWNXaXRoTWFjaGluZRIpCgNuaWMYASABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSKwoHbWFjaGluZRgCIAEoCzIaLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmUSKgoDZnJ1GAMgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUZSVSqJAgoIQkdQU3RhdGUSGQoVQkdQX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoOQkdQX1NUQVRFX0lETEUQARoIgrIZBElkbGUSIgoRQkdQX1NUQVRFX0NPTk5FQ1QQAhoLgrIZB0Nvbm5lY3QSIAoQQkdQX1NUQVRFX0FDVElWRRADGgqCshkGQWN0aXZlEiUKE0JHUF9TVEFURV9PUEVOX1NFTlQQBBoMgrIZCE9wZW5TZW50EisKFkJHUF9TVEFURV9PUEVOX0NPTkZJUk0QBRoPgrIZC09wZW5Db25maXJtEioKFUJHUF9TVEFURV9FU1RBQkxJU0hFRBAGGg+CshkLRXN0YWJsaXNoZWQqogEKEVN3aXRjaFJlcGxhY2VNb2RlEikKH1NXSVRDSF9SRVBMQUNFX01PREVfVU5TUEVDSUZJRUQQABoEgrIZABIsChtTV0lUQ0hfUkVQTEFDRV9NT0RFX1JFUExBQ0UQARoLgrIZB3JlcGxhY2USNAofU1dJVENIX1JFUExBQ0VfTU9ERV9PUEVSQVRJT05BTBACGg+CshkLb3BlcmF0aW9uYWwqhAEKDlN3aXRjaE9TVmVuZG9yEiAKHFNXSVRDSF9PU19WRU5ET1JfVU5TUEVDSUZJRUQQABIpChhTV0lUQ0hfT1NfVkVORE9SX0NVTVVMVVMQARoLgrIZB0N1bXVsdXMSJQoWU1dJVENIX09TX1ZFTkRPUl9TT05JQxACGgmCshkFU09OaUMqrQEKEFN3aXRjaFBvcnRTdGF0dXMSIgoeU1dJVENIX1BPUlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIQoVU1dJVENIX1BPUlRfU1RBVFVTX1VQEAEaBoKyGQJ1cBIlChdTV0lUQ0hfUE9SVF9TVEFUVVNfRE9XThACGgiCshkEZG93bhIrChpTV0lUQ0hfUE9SVF9TVEFUVVNfVU5LTk9XThADGguCshkHdW5rbm93bkLBAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgtTd2l0Y2hQcm90b1ABWjVnaXRodWIuY29tL21ldGFsLXN0YWNrL2FwaS9nby9tZXRhbHN0YWNrL2FwaS92MjthcGl2MqICA01BWKoCEU1ldGFsc3RhY2suQXBpLlYyygIRTWV0YWxzdGFja1xBcGlcVjLiAh1NZXRhbHN0YWNrXEFwaVxWMlxHUEJNZXRhZGF0YeoCE01ldGFsc3RhY2s6OkFwaTo6VjJiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]);
21
+ fileDesc("Ch5tZXRhbHN0YWNrL2FwaS92Mi9zd2l0Y2gucHJvdG8SEW1ldGFsc3RhY2suYXBpLnYyIsIFCgZTd2l0Y2gSGQoCaWQYASABKAlCDbpICnIIwLOusQIBaAESJQoEbWV0YRgCIAEoCzIXLm1ldGFsc3RhY2suYXBpLnYyLk1ldGESIAoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBEh4KBHJhY2sYBCABKAlCC7pICHIGwLOusQIBSACIAQESHgoEcm9vbRgFIAEoCUILukgIcgbAs66xAgFIAYgBARIeCglwYXJ0aXRpb24YBiABKAlCC7pICHIG0LOusQIBEkQKDHJlcGxhY2VfbW9kZRgHIAEoDjIkLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFJlcGxhY2VNb2RlQgi6SAWCAQIQARIeCg1tYW5hZ2VtZW50X2lwGAggASgJQge6SARyAnABEigKD21hbmFnZW1lbnRfdXNlchgJIAEoCUIKukgHcgUQAhiAAUgCiAEBEigKD2NvbnNvbGVfY29tbWFuZBgKIAEoCUIKukgHcgUQAhiAAUgDiAEBEioKBG5pY3MYCyADKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMSJwoCb3MYDCABKAsyGy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hPUxJBChNtYWNoaW5lX2Nvbm5lY3Rpb25zGA0gAygLMiQubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZUNvbm5lY3Rpb24SMAoJbGFzdF9zeW5jGA4gASgLMh0ubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoU3luYxI2Cg9sYXN0X3N5bmNfZXJyb3IYDyABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hTeW5jQgcKBV9yYWNrQgcKBV9yb29tQhIKEF9tYW5hZ2VtZW50X3VzZXJCEgoQX2NvbnNvbGVfY29tbWFuZCKOAQoIU3dpdGNoT1MSOwoGdmVuZG9yGAEgASgOMiEubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoT1NWZW5kb3JCCLpIBYIBAhABEhwKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBEicKEm1ldGFsX2NvcmVfdmVyc2lvbhgDIAEoCUILukgIcgbAs66xAgEi4AIKCVN3aXRjaE5pYxIZCgRuYW1lGAEgASgJQgu6SAhyBsCzrrECARIfCgppZGVudGlmaWVyGAIgASgJQgu6SAhyBsCzrrECARIYCgNtYWMYAyABKAlCC7pICHIGuLOusQIBEh0KA3ZyZhgEIAEoCUILukgIcgbAs66xAgFIAIgBARIvCgVzdGF0ZRgFIAEoCzIbLm1ldGFsc3RhY2suYXBpLnYyLk5pY1N0YXRlSAGIAQESNQoKYmdwX2ZpbHRlchgGIAEoCzIcLm1ldGFsc3RhY2suYXBpLnYyLkJHUEZpbHRlckgCiAEBEkIKDmJncF9wb3J0X3N0YXRlGAcgASgLMiUubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoQkdQUG9ydFN0YXRlSAOIAQFCBgoEX3ZyZkIICgZfc3RhdGVCDQoLX2JncF9maWx0ZXJCEQoPX2JncF9wb3J0X3N0YXRlIkcKCUJHUEZpbHRlchIbCgVjaWRycxgBIAMoCUIMukgJkgEGuKSzsQIBEh0KBHZuaXMYAiADKAlCD7pIDJIBCSIHcgUQAhiAASKpAgoSU3dpdGNoQkdQUG9ydFN0YXRlEh0KCG5laWdoYm9yGAEgASgJQgu6SAhyBsCzrrECARIfCgpwZWVyX2dyb3VwGAIgASgJQgu6SAhyBsCzrrECARIdCgh2cmZfbmFtZRgDIAEoCUILukgIcgbAs66xAgESOAoJYmdwX3N0YXRlGAQgASgOMhsubWV0YWxzdGFjay5hcGkudjIuQkdQU3RhdGVCCLpIBYIBAhABEjwKGGJncF90aW1lcl91cF9lc3RhYmxpc2hlZBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoTc2VudF9wcmVmaXhfY291bnRlchgGIAEoBBIfChdhY2NlcHRlZF9wcmVmaXhfY291bnRlchgHIAEoBCKaAQoITmljU3RhdGUSQwoHZGVzaXJlZBgBIAEoDjIjLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaFBvcnRTdGF0dXNCCLpIBYIBAhABSACIAQESPQoGYWN0dWFsGAIgASgOMiMubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoUG9ydFN0YXR1c0IIukgFggECEAFCCgoIX2Rlc2lyZWQiUgoRTWFjaGluZUNvbm5lY3Rpb24SEgoKbWFjaGluZV9pZBgBIAEoCRIpCgNuaWMYAiABKAsyHC5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWMiuQIKC1N3aXRjaFF1ZXJ5Eh4KAmlkGAEgASgJQg26SApyCMCzrrECAWgBSACIAQESIwoJcGFydGl0aW9uGAIgASgJQgu6SAhyBtCzrrECAUgBiAEBEh4KBHJhY2sYAyABKAlCC7pICHIGwLOusQIBSAKIAQESHgoEcm9vbRgEIAEoCUILukgIcgbAs66xAgFIA4gBARIxCgJvcxgFIAEoCzIgLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE9TUXVlcnlIBIgBARIrChRjb25uZWN0ZWRfbWFjaGluZV9pZBgGIAEoCUIIukgFcgOwAQFIBYgBAUIFCgNfaWRCDAoKX3BhcnRpdGlvbkIHCgVfcmFja0IHCgVfcm9vbUIFCgNfb3NCFwoVX2Nvbm5lY3RlZF9tYWNoaW5lX2lkIosBCg1Td2l0Y2hPU1F1ZXJ5EkAKBnZlbmRvchgBIAEoDjIhLm1ldGFsc3RhY2suYXBpLnYyLlN3aXRjaE9TVmVuZG9yQgi6SAWCAQIQAUgAiAEBEiEKB3ZlcnNpb24YAiABKAlCC7pICHIGwLOusQIBSAGIAQFCCQoHX3ZlbmRvckIKCghfdmVyc2lvbiKBAQoKU3dpdGNoU3luYxIoCgR0aW1lGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCghkdXJhdGlvbhgCIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhISCgVlcnJvchgDIAEoCUgAiAEBQggKBl9lcnJvciJ/ChJTd2l0Y2hXaXRoTWFjaGluZXMSCgoCaWQYASABKAkSEQoJcGFydGl0aW9uGAIgASgJEgwKBHJhY2sYAyABKAkSPAoLY29ubmVjdGlvbnMYBCADKAsyJy5tZXRhbHN0YWNrLmFwaS52Mi5Td2l0Y2hOaWNXaXRoTWFjaGluZSKaAQoUU3dpdGNoTmljV2l0aE1hY2hpbmUSKQoDbmljGAEgASgLMhwubWV0YWxzdGFjay5hcGkudjIuU3dpdGNoTmljEisKB21hY2hpbmUYAiABKAsyGi5tZXRhbHN0YWNrLmFwaS52Mi5NYWNoaW5lEioKA2ZydRgDIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmVGUlUqiQIKCEJHUFN0YXRlEhkKFUJHUF9TVEFURV9VTlNQRUNJRklFRBAAEhwKDkJHUF9TVEFURV9JRExFEAEaCIKyGQRJZGxlEiIKEUJHUF9TVEFURV9DT05ORUNUEAIaC4KyGQdDb25uZWN0EiAKEEJHUF9TVEFURV9BQ1RJVkUQAxoKgrIZBkFjdGl2ZRIlChNCR1BfU1RBVEVfT1BFTl9TRU5UEAQaDIKyGQhPcGVuU2VudBIrChZCR1BfU1RBVEVfT1BFTl9DT05GSVJNEAUaD4KyGQtPcGVuQ29uZmlybRIqChVCR1BfU1RBVEVfRVNUQUJMSVNIRUQQBhoPgrIZC0VzdGFibGlzaGVkKqIBChFTd2l0Y2hSZXBsYWNlTW9kZRIpCh9TV0lUQ0hfUkVQTEFDRV9NT0RFX1VOU1BFQ0lGSUVEEAAaBIKyGQASLAobU1dJVENIX1JFUExBQ0VfTU9ERV9SRVBMQUNFEAEaC4KyGQdyZXBsYWNlEjQKH1NXSVRDSF9SRVBMQUNFX01PREVfT1BFUkFUSU9OQUwQAhoPgrIZC29wZXJhdGlvbmFsKoQBCg5Td2l0Y2hPU1ZlbmRvchIgChxTV0lUQ0hfT1NfVkVORE9SX1VOU1BFQ0lGSUVEEAASKQoYU1dJVENIX09TX1ZFTkRPUl9DVU1VTFVTEAEaC4KyGQdDdW11bHVzEiUKFlNXSVRDSF9PU19WRU5ET1JfU09OSUMQAhoJgrIZBVNPTmlDKq0BChBTd2l0Y2hQb3J0U3RhdHVzEiIKHlNXSVRDSF9QT1JUX1NUQVRVU19VTlNQRUNJRklFRBAAEiEKFVNXSVRDSF9QT1JUX1NUQVRVU19VUBABGgaCshkCdXASJQoXU1dJVENIX1BPUlRfU1RBVFVTX0RPV04QAhoIgrIZBGRvd24SKwoaU1dJVENIX1BPUlRfU1RBVFVTX1VOS05PV04QAxoLgrIZB3Vua25vd25CwQEKFWNvbS5tZXRhbHN0YWNrLmFwaS52MkILU3dpdGNoUHJvdG9QAVo1Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9hcGkvdjI7YXBpdjKiAgNNQViqAhFNZXRhbHN0YWNrLkFwaS5WMsoCEU1ldGFsc3RhY2tcQXBpXFYy4gIdTWV0YWxzdGFja1xBcGlcVjJcR1BCTWV0YWRhdGHqAhNNZXRhbHN0YWNrOjpBcGk6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine, file_metalstack_api_v2_predefined_rules]);
22
22
 
23
23
  /**
24
24
  * Switch represents a network switch.
@@ -54,73 +54,80 @@ export type Switch = Message<"metalstack.api.v2.Switch"> & {
54
54
  */
55
55
  rack?: string | undefined;
56
56
 
57
+ /**
58
+ * Room ID if the switch resides in a room.
59
+ *
60
+ * @generated from field: optional string room = 5;
61
+ */
62
+ room?: string | undefined;
63
+
57
64
  /**
58
65
  * Partition the switch belongs to.
59
66
  *
60
- * @generated from field: string partition = 5;
67
+ * @generated from field: string partition = 6;
61
68
  */
62
69
  partition: string;
63
70
 
64
71
  /**
65
72
  * ReplaceMode is used to mark a switch ready for replacement.
66
73
  *
67
- * @generated from field: metalstack.api.v2.SwitchReplaceMode replace_mode = 6;
74
+ * @generated from field: metalstack.api.v2.SwitchReplaceMode replace_mode = 7;
68
75
  */
69
76
  replaceMode: SwitchReplaceMode;
70
77
 
71
78
  /**
72
79
  * ManagementIp is the switch's IP for management access.
73
80
  *
74
- * @generated from field: string management_ip = 7;
81
+ * @generated from field: string management_ip = 8;
75
82
  */
76
83
  managementIp: string;
77
84
 
78
85
  /**
79
86
  * ManagementUser is the user name to use for management access.
80
87
  *
81
- * @generated from field: optional string management_user = 8;
88
+ * @generated from field: optional string management_user = 9;
82
89
  */
83
90
  managementUser?: string | undefined;
84
91
 
85
92
  /**
86
93
  * ConsoleCommand is the command for accessing the switch's console.
87
94
  *
88
- * @generated from field: optional string console_command = 9;
95
+ * @generated from field: optional string console_command = 10;
89
96
  */
90
97
  consoleCommand?: string | undefined;
91
98
 
92
99
  /**
93
100
  * Nics are the front panel ports of the switch.
94
101
  *
95
- * @generated from field: repeated metalstack.api.v2.SwitchNic nics = 10;
102
+ * @generated from field: repeated metalstack.api.v2.SwitchNic nics = 11;
96
103
  */
97
104
  nics: SwitchNic[];
98
105
 
99
106
  /**
100
107
  * SwitchOs is the OS running on the switch.
101
108
  *
102
- * @generated from field: metalstack.api.v2.SwitchOS os = 11;
109
+ * @generated from field: metalstack.api.v2.SwitchOS os = 12;
103
110
  */
104
111
  os?: SwitchOS | undefined;
105
112
 
106
113
  /**
107
114
  * MachineConnections map machines to the nics they are connected to.
108
115
  *
109
- * @generated from field: repeated metalstack.api.v2.MachineConnection machine_connections = 12;
116
+ * @generated from field: repeated metalstack.api.v2.MachineConnection machine_connections = 13;
110
117
  */
111
118
  machineConnections: MachineConnection[];
112
119
 
113
120
  /**
114
121
  * LastSync contains information about the last heartbeat of the switch.
115
122
  *
116
- * @generated from field: metalstack.api.v2.SwitchSync last_sync = 13;
123
+ * @generated from field: metalstack.api.v2.SwitchSync last_sync = 14;
117
124
  */
118
125
  lastSync?: SwitchSync | undefined;
119
126
 
120
127
  /**
121
128
  * LastSyncError contains information about the last unsuccessful heartbeat of the switch.
122
129
  *
123
- * @generated from field: metalstack.api.v2.SwitchSync last_sync_error = 14;
130
+ * @generated from field: metalstack.api.v2.SwitchSync last_sync_error = 15;
124
131
  */
125
132
  lastSyncError?: SwitchSync | undefined;
126
133
  };
@@ -404,17 +411,24 @@ export type SwitchQuery = Message<"metalstack.api.v2.SwitchQuery"> & {
404
411
  */
405
412
  rack?: string | undefined;
406
413
 
414
+ /**
415
+ * Room ID if the switch resides in a room.
416
+ *
417
+ * @generated from field: optional string room = 4;
418
+ */
419
+ room?: string | undefined;
420
+
407
421
  /**
408
422
  * Switch OS specific queries.
409
423
  *
410
- * @generated from field: optional metalstack.api.v2.SwitchOSQuery os = 4;
424
+ * @generated from field: optional metalstack.api.v2.SwitchOSQuery os = 5;
411
425
  */
412
426
  os?: SwitchOSQuery | undefined;
413
427
 
414
428
  /**
415
429
  * ConnectedMachineID lists the switches which have the given machine id in the connected machines map.
416
430
  *
417
- * @generated from field: optional string connected_machine_id = 5;
431
+ * @generated from field: optional string connected_machine_id = 6;
418
432
  */
419
433
  connectedMachineId?: string | undefined;
420
434
  };