@metal-stack/api 0.3.1 → 0.4.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.
package/README.md CHANGED
@@ -86,13 +86,19 @@ These options specify the RBAC of the api-endpoint.
86
86
  | ADMIN_ROLE\_ | Specifies the required admin role | UNSPECIFIED | |
87
87
  | | | EDITOR | admin editor |
88
88
  | | | VIEWER | admin viewer |
89
+ | MACHINE_ROLE\_ | Specifies the required machine role | UNSPECIFIED | |
90
+ | | | EDITOR | machine editor |
91
+ | | | VIEWER | machine viewer |
92
+ | INFRA_ROLE\_ | Specifies the required infra role | UNSPECIFIED | |
93
+ | | | EDITOR | infra editor |
94
+ | | | VIEWER | infra viewer |
89
95
  | VISIBILITY\_ | Specifies the visibility of the api-endpoint | UNSPECIFIED | |
90
96
  | | | PUBLIC | api-method is visible to public, a token is not needed |
91
97
  | | | SELF | api-method is scoped to owner resources |
92
98
 
93
99
  > [!IMPORTANT]
94
100
  >
95
- > Every operation needs at least an option, which references the scope of the request: **ROLE** or **VISIBILITY**
101
+ > Every operation needs to specify exactly one of the presented options. The option defines the request scope, which is later used for implementing request authorization in the server.
96
102
 
97
103
  > [!CAUTION]
98
104
  >
@@ -2,14 +2,12 @@
2
2
  // @generated from file metalstack/admin/v2/project.proto (package metalstack.admin.v2, syntax proto3)
3
3
  /* eslint-disable */
4
4
  import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
5
- import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
6
5
  import { file_metalstack_api_v2_common } from "../../api/v2/common_pb";
7
- import { file_metalstack_api_v2_predefined_rules } from "../../api/v2/predefined_rules_pb";
8
6
  import { file_metalstack_api_v2_project } from "../../api/v2/project_pb";
9
7
  /**
10
8
  * Describes the file metalstack/admin/v2/project.proto.
11
9
  */
12
- export const file_metalstack_admin_v2_project = /*@__PURE__*/ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL3Byb2plY3QucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiWgoZUHJvamVjdFNlcnZpY2VMaXN0UmVxdWVzdBIzCgVxdWVyeRgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RRdWVyeUgAiAEBQggKBl9xdWVyeSJKChpQcm9qZWN0U2VydmljZUxpc3RSZXNwb25zZRIsCghwcm9qZWN0cxgBIAMoCzIaLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3QyhQEKDlByb2plY3RTZXJ2aWNlEnMKBExpc3QSLi5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlcXVlc3QaLy5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCQtABChdjb20ubWV0YWxzdGFjay5hZG1pbi52MkIMUHJvamVjdFByb3RvUAFaOWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYWRtaW4vdjI7YWRtaW52MqICA01BWKoCE01ldGFsc3RhY2suQWRtaW4uVjLKAhNNZXRhbHN0YWNrXEFkbWluXFYy4gIfTWV0YWxzdGFja1xBZG1pblxWMlxHUEJNZXRhZGF0YeoCFU1ldGFsc3RhY2s6OkFkbWluOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_project]);
10
+ export const file_metalstack_admin_v2_project = /*@__PURE__*/ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL3Byb2plY3QucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiWgoZUHJvamVjdFNlcnZpY2VMaXN0UmVxdWVzdBIzCgVxdWVyeRgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RRdWVyeUgAiAEBQggKBl9xdWVyeSJKChpQcm9qZWN0U2VydmljZUxpc3RSZXNwb25zZRIsCghwcm9qZWN0cxgBIAMoCzIaLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3QyhQEKDlByb2plY3RTZXJ2aWNlEnMKBExpc3QSLi5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlcXVlc3QaLy5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCQtABChdjb20ubWV0YWxzdGFjay5hZG1pbi52MkIMUHJvamVjdFByb3RvUAFaOWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYWRtaW4vdjI7YWRtaW52MqICA01BWKoCE01ldGFsc3RhY2suQWRtaW4uVjLKAhNNZXRhbHN0YWNrXEFkbWluXFYy4gIfTWV0YWxzdGFja1xBZG1pblxWMlxHUEJNZXRhZGF0YeoCFU1ldGFsc3RhY2s6OkFkbWluOjpWMmIGcHJvdG8z", [file_metalstack_api_v2_common, file_metalstack_api_v2_project]);
13
11
  /**
14
12
  * Describes the message metalstack.admin.v2.ProjectServiceListRequest.
15
13
  * Use `create(ProjectServiceListRequestSchema)` to create a new message.
@@ -4,9 +4,7 @@
4
4
 
5
5
  import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
6
6
  import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
7
- import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
8
7
  import { file_metalstack_api_v2_common } from "../../api/v2/common_pb";
9
- import { file_metalstack_api_v2_predefined_rules } from "../../api/v2/predefined_rules_pb";
10
8
  import type { Project, ProjectQuery } from "../../api/v2/project_pb";
11
9
  import { file_metalstack_api_v2_project } from "../../api/v2/project_pb";
12
10
  import type { Message } from "@bufbuild/protobuf";
@@ -15,7 +13,7 @@ import type { Message } from "@bufbuild/protobuf";
15
13
  * Describes the file metalstack/admin/v2/project.proto.
16
14
  */
17
15
  export const file_metalstack_admin_v2_project: GenFile = /*@__PURE__*/
18
- fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL3Byb2plY3QucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiWgoZUHJvamVjdFNlcnZpY2VMaXN0UmVxdWVzdBIzCgVxdWVyeRgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RRdWVyeUgAiAEBQggKBl9xdWVyeSJKChpQcm9qZWN0U2VydmljZUxpc3RSZXNwb25zZRIsCghwcm9qZWN0cxgBIAMoCzIaLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3QyhQEKDlByb2plY3RTZXJ2aWNlEnMKBExpc3QSLi5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlcXVlc3QaLy5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCQtABChdjb20ubWV0YWxzdGFjay5hZG1pbi52MkIMUHJvamVjdFByb3RvUAFaOWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYWRtaW4vdjI7YWRtaW52MqICA01BWKoCE01ldGFsc3RhY2suQWRtaW4uVjLKAhNNZXRhbHN0YWNrXEFkbWluXFYy4gIfTWV0YWxzdGFja1xBZG1pblxWMlxHUEJNZXRhZGF0YeoCFU1ldGFsc3RhY2s6OkFkbWluOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules, file_metalstack_api_v2_project]);
16
+ fileDesc("CiFtZXRhbHN0YWNrL2FkbWluL3YyL3Byb2plY3QucHJvdG8SE21ldGFsc3RhY2suYWRtaW4udjIiWgoZUHJvamVjdFNlcnZpY2VMaXN0UmVxdWVzdBIzCgVxdWVyeRgBIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3RRdWVyeUgAiAEBQggKBl9xdWVyeSJKChpQcm9qZWN0U2VydmljZUxpc3RSZXNwb25zZRIsCghwcm9qZWN0cxgBIAMoCzIaLm1ldGFsc3RhY2suYXBpLnYyLlByb2plY3QyhQEKDlByb2plY3RTZXJ2aWNlEnMKBExpc3QSLi5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlcXVlc3QaLy5tZXRhbHN0YWNrLmFkbWluLnYyLlByb2plY3RTZXJ2aWNlTGlzdFJlc3BvbnNlIgrS8xgCAQLg8xgCQtABChdjb20ubWV0YWxzdGFjay5hZG1pbi52MkIMUHJvamVjdFByb3RvUAFaOWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYWRtaW4vdjI7YWRtaW52MqICA01BWKoCE01ldGFsc3RhY2suQWRtaW4uVjLKAhNNZXRhbHN0YWNrXEFkbWluXFYy4gIfTWV0YWxzdGFja1xBZG1pblxWMlxHUEJNZXRhZGF0YeoCFU1ldGFsc3RhY2s6OkFkbWluOjpWMmIGcHJvdG8z", [file_metalstack_api_v2_common, file_metalstack_api_v2_project]);
19
17
 
20
18
  /**
21
19
  * ProjectServiceListRequest is the request payload for listing projects.
@@ -76,6 +76,24 @@ export declare const is_key: GenExtension<StringRules, boolean>;
76
76
  * @generated from extension: optional bool is_tenant_login = 80048962;
77
77
  */
78
78
  export declare const is_tenant_login: GenExtension<StringRules, boolean>;
79
+ /**
80
+ * IsTenantSubjectPermission returns true if name field satisfies our requirements
81
+ *
82
+ * @generated from extension: optional bool is_tenant_subject_permission = 80048963;
83
+ */
84
+ export declare const is_tenant_subject_permission: GenExtension<StringRules, boolean>;
85
+ /**
86
+ * IsProjectSubjectPermission returns true if name field satisfies our requirements
87
+ *
88
+ * @generated from extension: optional bool is_project_subject_permission = 80048964;
89
+ */
90
+ export declare const is_project_subject_permission: GenExtension<StringRules, boolean>;
91
+ /**
92
+ * IsMachineSubjectPermission returns true if name field satisfies our requirements
93
+ *
94
+ * @generated from extension: optional bool is_machine_subject_permission = 80048965;
95
+ */
96
+ export declare const is_machine_subject_permission: GenExtension<StringRules, boolean>;
79
97
  /**
80
98
  * Prefixes validates if a slice of prefixes in string form are valid
81
99
  *
@@ -6,7 +6,7 @@ import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
6
6
  /**
7
7
  * Describes the file metalstack/api/v2/predefined_rules.proto.
8
8
  */
9
- export const file_metalstack_api_v2_predefined_rules = /*@__PURE__*/ fileDesc("CihtZXRhbHN0YWNrL2FwaS92Mi9wcmVkZWZpbmVkX3J1bGVzLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52Mjq4AQoKbWFjYWRkcmVzcxIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi35pUmIAEoCEJ6wkh3CnUKEXN0cmluZy5tYWNhZGRyZXNzEiZ0aGlzIHN0cmluZyBtdXN0IGJlIGEgdmFsaWQgbWFjYWRkcmVzcxo4dGhpcy5tYXRjaGVzKCdeKFswLTlBLUZhLWZdezJ9WzpdKXs1fShbMC05QS1GYS1mXXsyfSkkJylSCm1hY2FkZHJlc3M6mQEKB2lzX25hbWUSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYuOaVJiABKAhCYsJIXwpdCg5zdHJpbmcuaXNfbmFtZRIjbXVzdCBiZSB3aXRoaW4gMiBhbmQgMTI4IGNoYXJhY3RlcnMaJnRoaXMuc2l6ZSgpID49IDIgJiYgdGhpcy5zaXplKCkgPD0gMTI4UgZpc05hbWU6mgEKDmlzX2Rlc2NyaXB0aW9uEhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGLnmlSYgASgIQlXCSFIKUAoVc3RyaW5nLmlzX2Rlc2NyaXB0aW9uEiNtdXN0IGJlIHNob3J0ZXIgdGhhbiAyNTYgY2hhcmFjdGVycxoSdGhpcy5zaXplKCkgPD0gMjU2Ug1pc0Rlc2NyaXB0aW9uOqgBCgxpc19wYXJ0aXRpb24SGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYuuaVJiABKAhCZ8JIZApiChNzdHJpbmcuaXNfcGFydGl0aW9uEiNtdXN0IGJlIHdpdGhpbiAyIGFuZCAxMjggY2hhcmFjdGVycxomdGhpcy5zaXplKCkgPj0gMiAmJiB0aGlzLnNpemUoKSA8PSAxMjhSC2lzUGFydGl0aW9uOoIBCglpc19wcmVmaXgSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYu+aVJiABKAhCR8JIRApCCg9zdHJpbmcucHJlZml4ZXMSHGdpdmVuIHByZWZpeGVzIG11c3QgYmUgdmFsaWQaEXRoaXMuaXNJcFByZWZpeCgpUghpc1ByZWZpeDptCgZpc191cmkSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYvOaVJiABKAhCOMJINQozCgpzdHJpbmcudXJpEhdnaXZlbiB1cmkgbXVzdCBiZSB2YWxpZBoMdGhpcy5pc1VyaSgpUgVpc1VyaTqnAQoRaXNfaXBfb3JfaG9zdG5hbWUSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYveaVJiABKAhCXsJIWwpZCg12YWxpZF9hZGRyZXNzEiZtdXN0IGJlIGEgdmFsaWQgSVAgYWRkcmVzcyBvciBob3N0bmFtZRogdGhpcy5pc0lwKCkgfHwgdGhpcy5pc0hvc3RuYW1lKClSDmlzSXBPckhvc3RuYW1lOp0BCgd0cmltbWVkEhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGL7mlSYgASgIQmXCSGIKYAoOc3RyaW5nLnRyaW1tZWQSK3ZhbHVlIG11c3Qgbm90IHN0YXJ0IG9yIGVuZCB3aXRoIHdoaXRlc3BhY2UaIXRoaXMudHJpbSgpLnNpemUoKSA9PSB0aGlzLnNpemUoKVIHdHJpbW1lZDqZAQoHaXNfdXNlchIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi/5pUmIAEoCEJiwkhfCl0KDnN0cmluZy5pc191c2VyEiNtdXN0IGJlIHdpdGhpbiAyIGFuZCA1MTIgY2hhcmFjdGVycxomdGhpcy5zaXplKCkgPj0gMiAmJiB0aGlzLnNpemUoKSA8PSA1MTJSBmlzVXNlcjqfAQoJaXNfb3B0aW9uEhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGMDmlSYgASgIQmTCSGEKXwoQc3RyaW5nLmlzX29wdGlvbhIjbXVzdCBiZSB3aXRoaW4gMSBhbmQgMTI4IGNoYXJhY3RlcnMaJnRoaXMuc2l6ZSgpID49IDEgJiYgdGhpcy5zaXplKCkgPD0gMTI4Ughpc09wdGlvbjqYAQoGaXNfa2V5EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGMHmlSYgASgIQmPCSGAKXgoNc3RyaW5nLmlzX2tleRIkbXVzdCBiZSB3aXRoaW4gMSBhbmQgODE5MiBjaGFyYWN0ZXJzGid0aGlzLnNpemUoKSA+PSAxICYmIHRoaXMuc2l6ZSgpIDw9IDgxOTJSBWlzS2V5OrABCg9pc190ZW5hbnRfbG9naW4SGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYwuaVJiABKAhCasJIZwplChZzdHJpbmcuaXNfdGVuYW50X2xvZ2luEiNtdXN0IGJlIHdpdGhpbiAyIGFuZCAyNTYgY2hhcmFjdGVycxomdGhpcy5zaXplKCkgPj0gMiAmJiB0aGlzLnNpemUoKSA8PSAyNTZSDWlzVGVuYW50TG9naW46jwEKCHByZWZpeGVzEhsuYnVmLnZhbGlkYXRlLlJlcGVhdGVkUnVsZXMYx7SWJiABKAhCU8JIUApOChFyZXBlYXRlZC5wcmVmaXhlcxIcZ2l2ZW4gcHJlZml4ZXMgbXVzdCBiZSB2YWxpZBobdGhpcy5hbGwobSwgbS5pc0lwUHJlZml4KCkpUghwcmVmaXhlczp1CgNpcHMSGy5idWYudmFsaWRhdGUuUmVwZWF0ZWRSdWxlcxjItJYmIAEoCEJDwkhACj4KDHJlcGVhdGVkLmlwcxIXZ2l2ZW4gaXBzIG11c3QgYmUgdmFsaWQaFXRoaXMuYWxsKG0sIG0uaXNJcCgpKVIDaXBzOuYBChFhcmVfaG9zdF9hbmRfcG9ydBIbLmJ1Zi52YWxpZGF0ZS5SZXBlYXRlZFJ1bGVzGMm0liYgASgIQpoBwkiWAQqTAQoacmVwZWF0ZWQuYXJlX2hvc3RfYW5kX3BvcnQSUGdpdmVuIGVudHJpZXMgbXVzdCBhbGwgYmUgaW4gdGhlIGZvcm0gb2YgPGlwIHwgaG9zdD46PHBvcnQ+IGJ1dCBwb3J0IGlzIG9wdGlvbmFsGiN0aGlzLmFsbChtLCBtLmlzSG9zdEFuZFBvcnQoZmFsc2UpKVIOYXJlSG9zdEFuZFBvcnQ6ugEKC2FsbF90cmltbWVkEhsuYnVmLnZhbGlkYXRlLlJlcGVhdGVkUnVsZXMYyrSWJiABKAhCecJIdgp0ChRyZXBlYXRlZC5hbGxfdHJpbW1lZBIyZ2l2ZW4gdmFsdWVzIG11c3Qgbm90IHN0YXJ0IG9yIGVuZCB3aXRoIHdoaXRlc3BhY2UaKHRoaXMuYWxsKG0sIG0udHJpbSgpLnNpemUoKSA9PSBtLnNpemUoKSlSCmFsbFRyaW1tZWQ6hAIKF2tleXNfYW5kX3ZhbHVlc190cmltbWVkEhYuYnVmLnZhbGlkYXRlLk1hcFJ1bGVzGNeClyYgASgIQrEBwkitAQqqAQobbWFwLmtleXNfYW5kX3ZhbHVlc190cmltbWVkEjVrZXlzIGFuZCB2YWx1ZXMgbXVzdCBub3Qgc3RhcnQgb3IgZW5kIHdpdGggd2hpdGVzcGFjZRpUdGhpcy5hbGwoaywgay50cmltKCkuc2l6ZSgpID09IGsuc2l6ZSgpKSAmJiB0aGlzLmFsbCh2LCB2LnRyaW0oKS5zaXplKCkgPT0gdi5zaXplKCkpUhRrZXlzQW5kVmFsdWVzVHJpbW1lZDqrAQoMa2V5c190cmltbWVkEhYuYnVmLnZhbGlkYXRlLk1hcFJ1bGVzGNiClyYgASgIQm3CSGoKaAoQbWFwLmtleXNfdHJpbW1lZBIqa2V5cyBtdXN0IG5vdCBzdGFydCBvciBlbmQgd2l0aCB3aGl0ZXNwYWNlGih0aGlzLmFsbChrLCBrLnRyaW0oKS5zaXplKCkgPT0gay5zaXplKCkpUgtrZXlzVHJpbW1lZDqSAgoYcHJvamVjdF9yb2xlc19rZXlzX3ZhbGlkEhYuYnVmLnZhbGlkYXRlLk1hcFJ1bGVzGNmClyYgASgIQr0Bwki5AQq2AQoXcHJvamVjdF9yb2xlcy5rZXkudmFsaWQSJnN1YmplY3QgbXVzdCBiZSBhICcqJywgb3IgYSB2YWxpZCBVVUlEGnN0aGlzLmFsbChrLCBrID09ICcqJyB8fCBrLm1hdGNoZXMoJ15bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kJykpUhVwcm9qZWN0Um9sZXNLZXlzVmFsaWQ66AEKF3RlbmFudF9yb2xlc19rZXlzX3ZhbGlkEhYuYnVmLnZhbGlkYXRlLk1hcFJ1bGVzGNqClyYgASgIQpUBwkiRAQqOAQoWdGVuYW50X3JvbGVzLmtleS52YWxpZBIzc3ViamVjdCBtdXN0IGJlICcqJyBvciBiZXR3ZWVuIDIgYW5kIDEyOCBjaGFyYWN0ZXJzGj90aGlzLmFsbChrLCBrID09ICcqJyB8fCB0aGlzLnNpemUoKSA+PSAyIHx8IHRoaXMuc2l6ZSgpIDw9MTI4IClSFHRlbmFudFJvbGVzS2V5c1ZhbGlkOqkCChhtYWNoaW5lX3JvbGVzX2tleXNfdmFsaWQSFi5idWYudmFsaWRhdGUuTWFwUnVsZXMY24KXJiABKAhC1AHCSNABCs0BChdtYWNoaW5lX3JvbGVzLmtleS52YWxpZBIyc3ViamVjdCBtdXN0IGJlIGVtcHR5IHN0cmluZywgJyonLCBvciBhIHZhbGlkIFVVSUQafnRoaXMuYWxsKGssIGsgPT0gJycgfHwgayA9PSAnKicgfHwgay5tYXRjaGVzKCdeWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCcpKVIVbWFjaGluZVJvbGVzS2V5c1ZhbGlkQsoBChVjb20ubWV0YWxzdGFjay5hcGkudjJCFFByZWRlZmluZWRSdWxlc1Byb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMg", [file_buf_validate_validate]);
9
+ export const file_metalstack_api_v2_predefined_rules = /*@__PURE__*/ fileDesc("CihtZXRhbHN0YWNrL2FwaS92Mi9wcmVkZWZpbmVkX3J1bGVzLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52Mjq4AQoKbWFjYWRkcmVzcxIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi35pUmIAEoCEJ6wkh3CnUKEXN0cmluZy5tYWNhZGRyZXNzEiZ0aGlzIHN0cmluZyBtdXN0IGJlIGEgdmFsaWQgbWFjYWRkcmVzcxo4dGhpcy5tYXRjaGVzKCdeKFswLTlBLUZhLWZdezJ9WzpdKXs1fShbMC05QS1GYS1mXXsyfSkkJylSCm1hY2FkZHJlc3M6mQEKB2lzX25hbWUSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYuOaVJiABKAhCYsJIXwpdCg5zdHJpbmcuaXNfbmFtZRIjbXVzdCBiZSB3aXRoaW4gMiBhbmQgMTI4IGNoYXJhY3RlcnMaJnRoaXMuc2l6ZSgpID49IDIgJiYgdGhpcy5zaXplKCkgPD0gMTI4UgZpc05hbWU6mgEKDmlzX2Rlc2NyaXB0aW9uEhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGLnmlSYgASgIQlXCSFIKUAoVc3RyaW5nLmlzX2Rlc2NyaXB0aW9uEiNtdXN0IGJlIHNob3J0ZXIgdGhhbiAyNTYgY2hhcmFjdGVycxoSdGhpcy5zaXplKCkgPD0gMjU2Ug1pc0Rlc2NyaXB0aW9uOqgBCgxpc19wYXJ0aXRpb24SGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYuuaVJiABKAhCZ8JIZApiChNzdHJpbmcuaXNfcGFydGl0aW9uEiNtdXN0IGJlIHdpdGhpbiAyIGFuZCAxMjggY2hhcmFjdGVycxomdGhpcy5zaXplKCkgPj0gMiAmJiB0aGlzLnNpemUoKSA8PSAxMjhSC2lzUGFydGl0aW9uOoIBCglpc19wcmVmaXgSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYu+aVJiABKAhCR8JIRApCCg9zdHJpbmcucHJlZml4ZXMSHGdpdmVuIHByZWZpeGVzIG11c3QgYmUgdmFsaWQaEXRoaXMuaXNJcFByZWZpeCgpUghpc1ByZWZpeDptCgZpc191cmkSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYvOaVJiABKAhCOMJINQozCgpzdHJpbmcudXJpEhdnaXZlbiB1cmkgbXVzdCBiZSB2YWxpZBoMdGhpcy5pc1VyaSgpUgVpc1VyaTqnAQoRaXNfaXBfb3JfaG9zdG5hbWUSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYveaVJiABKAhCXsJIWwpZCg12YWxpZF9hZGRyZXNzEiZtdXN0IGJlIGEgdmFsaWQgSVAgYWRkcmVzcyBvciBob3N0bmFtZRogdGhpcy5pc0lwKCkgfHwgdGhpcy5pc0hvc3RuYW1lKClSDmlzSXBPckhvc3RuYW1lOp0BCgd0cmltbWVkEhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGL7mlSYgASgIQmXCSGIKYAoOc3RyaW5nLnRyaW1tZWQSK3ZhbHVlIG11c3Qgbm90IHN0YXJ0IG9yIGVuZCB3aXRoIHdoaXRlc3BhY2UaIXRoaXMudHJpbSgpLnNpemUoKSA9PSB0aGlzLnNpemUoKVIHdHJpbW1lZDqZAQoHaXNfdXNlchIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi/5pUmIAEoCEJiwkhfCl0KDnN0cmluZy5pc191c2VyEiNtdXN0IGJlIHdpdGhpbiAyIGFuZCA1MTIgY2hhcmFjdGVycxomdGhpcy5zaXplKCkgPj0gMiAmJiB0aGlzLnNpemUoKSA8PSA1MTJSBmlzVXNlcjqfAQoJaXNfb3B0aW9uEhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGMDmlSYgASgIQmTCSGEKXwoQc3RyaW5nLmlzX29wdGlvbhIjbXVzdCBiZSB3aXRoaW4gMSBhbmQgMTI4IGNoYXJhY3RlcnMaJnRoaXMuc2l6ZSgpID49IDEgJiYgdGhpcy5zaXplKCkgPD0gMTI4Ughpc09wdGlvbjqYAQoGaXNfa2V5EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGMHmlSYgASgIQmPCSGAKXgoNc3RyaW5nLmlzX2tleRIkbXVzdCBiZSB3aXRoaW4gMSBhbmQgODE5MiBjaGFyYWN0ZXJzGid0aGlzLnNpemUoKSA+PSAxICYmIHRoaXMuc2l6ZSgpIDw9IDgxOTJSBWlzS2V5OrABCg9pc190ZW5hbnRfbG9naW4SGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYwuaVJiABKAhCasJIZwplChZzdHJpbmcuaXNfdGVuYW50X2xvZ2luEiNtdXN0IGJlIHdpdGhpbiAyIGFuZCAxMjggY2hhcmFjdGVycxomdGhpcy5zaXplKCkgPj0gMiAmJiB0aGlzLnNpemUoKSA8PSAxMjhSDWlzVGVuYW50TG9naW467wEKHGlzX3RlbmFudF9zdWJqZWN0X3Blcm1pc3Npb24SGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYw+aVJiABKAhCjwHCSIsBCogBCiNzdHJpbmcuaXNfdGVuYW50X3N1YmplY3RfcGVybWlzc2lvbhIqbXVzdCBiZSAnKicgb3Igd2l0aGluIDIgYW5kIDEyOCBjaGFyYWN0ZXJzGjV0aGlzID09ICcqJyB8fCB0aGlzLnNpemUoKSA+PSAyICYmIHRoaXMuc2l6ZSgpIDw9IDEyOFIZaXNUZW5hbnRTdWJqZWN0UGVybWlzc2lvbjqUAgodaXNfcHJvamVjdF9zdWJqZWN0X3Blcm1pc3Npb24SGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYxOaVJiABKAhCsgHCSK4BCqsBCiRzdHJpbmcuaXNfcHJvamVjdF9zdWJqZWN0X3Blcm1pc3Npb24SFW11c3QgYmUgJyonIG9yIGEgdXVpZBpsdGhpcyA9PSAnKicgfHwgdGhpcy5tYXRjaGVzKCdeWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCcpUhppc1Byb2plY3RTdWJqZWN0UGVybWlzc2lvbjqUAgodaXNfbWFjaGluZV9zdWJqZWN0X3Blcm1pc3Npb24SGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYxeaVJiABKAhCsgHCSK4BCqsBCiRzdHJpbmcuaXNfbWFjaGluZV9zdWJqZWN0X3Blcm1pc3Npb24SFW11c3QgYmUgJyonIG9yIGEgdXVpZBpsdGhpcyA9PSAnKicgfHwgdGhpcy5tYXRjaGVzKCdeWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCcpUhppc01hY2hpbmVTdWJqZWN0UGVybWlzc2lvbjqPAQoIcHJlZml4ZXMSGy5idWYudmFsaWRhdGUuUmVwZWF0ZWRSdWxlcxjHtJYmIAEoCEJTwkhQCk4KEXJlcGVhdGVkLnByZWZpeGVzEhxnaXZlbiBwcmVmaXhlcyBtdXN0IGJlIHZhbGlkGht0aGlzLmFsbChtLCBtLmlzSXBQcmVmaXgoKSlSCHByZWZpeGVzOnUKA2lwcxIbLmJ1Zi52YWxpZGF0ZS5SZXBlYXRlZFJ1bGVzGMi0liYgASgIQkPCSEAKPgoMcmVwZWF0ZWQuaXBzEhdnaXZlbiBpcHMgbXVzdCBiZSB2YWxpZBoVdGhpcy5hbGwobSwgbS5pc0lwKCkpUgNpcHM65gEKEWFyZV9ob3N0X2FuZF9wb3J0EhsuYnVmLnZhbGlkYXRlLlJlcGVhdGVkUnVsZXMYybSWJiABKAhCmgHCSJYBCpMBChpyZXBlYXRlZC5hcmVfaG9zdF9hbmRfcG9ydBJQZ2l2ZW4gZW50cmllcyBtdXN0IGFsbCBiZSBpbiB0aGUgZm9ybSBvZiA8aXAgfCBob3N0Pjo8cG9ydD4gYnV0IHBvcnQgaXMgb3B0aW9uYWwaI3RoaXMuYWxsKG0sIG0uaXNIb3N0QW5kUG9ydChmYWxzZSkpUg5hcmVIb3N0QW5kUG9ydDq6AQoLYWxsX3RyaW1tZWQSGy5idWYudmFsaWRhdGUuUmVwZWF0ZWRSdWxlcxjKtJYmIAEoCEJ5wkh2CnQKFHJlcGVhdGVkLmFsbF90cmltbWVkEjJnaXZlbiB2YWx1ZXMgbXVzdCBub3Qgc3RhcnQgb3IgZW5kIHdpdGggd2hpdGVzcGFjZRoodGhpcy5hbGwobSwgbS50cmltKCkuc2l6ZSgpID09IG0uc2l6ZSgpKVIKYWxsVHJpbW1lZDqEAgoXa2V5c19hbmRfdmFsdWVzX3RyaW1tZWQSFi5idWYudmFsaWRhdGUuTWFwUnVsZXMY14KXJiABKAhCsQHCSK0BCqoBChttYXAua2V5c19hbmRfdmFsdWVzX3RyaW1tZWQSNWtleXMgYW5kIHZhbHVlcyBtdXN0IG5vdCBzdGFydCBvciBlbmQgd2l0aCB3aGl0ZXNwYWNlGlR0aGlzLmFsbChrLCBrLnRyaW0oKS5zaXplKCkgPT0gay5zaXplKCkpICYmIHRoaXMuYWxsKHYsIHYudHJpbSgpLnNpemUoKSA9PSB2LnNpemUoKSlSFGtleXNBbmRWYWx1ZXNUcmltbWVkOqsBCgxrZXlzX3RyaW1tZWQSFi5idWYudmFsaWRhdGUuTWFwUnVsZXMY2IKXJiABKAhCbcJIagpoChBtYXAua2V5c190cmltbWVkEiprZXlzIG11c3Qgbm90IHN0YXJ0IG9yIGVuZCB3aXRoIHdoaXRlc3BhY2UaKHRoaXMuYWxsKGssIGsudHJpbSgpLnNpemUoKSA9PSBrLnNpemUoKSlSC2tleXNUcmltbWVkOpICChhwcm9qZWN0X3JvbGVzX2tleXNfdmFsaWQSFi5idWYudmFsaWRhdGUuTWFwUnVsZXMY2YKXJiABKAhCvQHCSLkBCrYBChdwcm9qZWN0X3JvbGVzLmtleS52YWxpZBImc3ViamVjdCBtdXN0IGJlIGEgJyonLCBvciBhIHZhbGlkIFVVSUQac3RoaXMuYWxsKGssIGsgPT0gJyonIHx8IGsubWF0Y2hlcygnXlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQnKSlSFXByb2plY3RSb2xlc0tleXNWYWxpZDroAQoXdGVuYW50X3JvbGVzX2tleXNfdmFsaWQSFi5idWYudmFsaWRhdGUuTWFwUnVsZXMY2oKXJiABKAhClQHCSJEBCo4BChZ0ZW5hbnRfcm9sZXMua2V5LnZhbGlkEjNzdWJqZWN0IG11c3QgYmUgJyonIG9yIGJldHdlZW4gMiBhbmQgMTI4IGNoYXJhY3RlcnMaP3RoaXMuYWxsKGssIGsgPT0gJyonIHx8IHRoaXMuc2l6ZSgpID49IDIgfHwgdGhpcy5zaXplKCkgPD0xMjggKVIUdGVuYW50Um9sZXNLZXlzVmFsaWQ6ngIKGG1hY2hpbmVfcm9sZXNfa2V5c192YWxpZBIWLmJ1Zi52YWxpZGF0ZS5NYXBSdWxlcxjbgpcmIAEoCELJAcJIxQEKwgEKF21hY2hpbmVfcm9sZXMua2V5LnZhbGlkEjJzdWJqZWN0IG11c3QgYmUgZW1wdHkgc3RyaW5nLCAnKicsIG9yIGEgdmFsaWQgVVVJRBpzdGhpcy5hbGwoaywgayA9PSAnKicgfHwgay5tYXRjaGVzKCdeWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCcpKVIVbWFjaGluZVJvbGVzS2V5c1ZhbGlkQsoBChVjb20ubWV0YWxzdGFjay5hcGkudjJCFFByZWRlZmluZWRSdWxlc1Byb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMg", [file_buf_validate_validate]);
10
10
  /**
11
11
  * Macaddress returns true if the given string is a valid macaddress
12
12
  *
@@ -79,57 +79,75 @@ export const is_key = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_ru
79
79
  * @generated from extension: optional bool is_tenant_login = 80048962;
80
80
  */
81
81
  export const is_tenant_login = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 11);
82
+ /**
83
+ * IsTenantSubjectPermission returns true if name field satisfies our requirements
84
+ *
85
+ * @generated from extension: optional bool is_tenant_subject_permission = 80048963;
86
+ */
87
+ export const is_tenant_subject_permission = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 12);
88
+ /**
89
+ * IsProjectSubjectPermission returns true if name field satisfies our requirements
90
+ *
91
+ * @generated from extension: optional bool is_project_subject_permission = 80048964;
92
+ */
93
+ export const is_project_subject_permission = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 13);
94
+ /**
95
+ * IsMachineSubjectPermission returns true if name field satisfies our requirements
96
+ *
97
+ * @generated from extension: optional bool is_machine_subject_permission = 80048965;
98
+ */
99
+ export const is_machine_subject_permission = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 14);
82
100
  /**
83
101
  * Prefixes validates if a slice of prefixes in string form are valid
84
102
  *
85
103
  * @generated from extension: optional bool prefixes = 80058951;
86
104
  */
87
- export const prefixes = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 12);
105
+ export const prefixes = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 15);
88
106
  /**
89
107
  * Ips validates if a slice of ips in string form are valid
90
108
  *
91
109
  * @generated from extension: optional bool ips = 80058952;
92
110
  */
93
- export const ips = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 13);
111
+ export const ips = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 16);
94
112
  /**
95
113
  * AreHostAndPort validates if a slice of strings are all in the form of <ip | host>:<port>
96
114
  *
97
115
  * @generated from extension: optional bool are_host_and_port = 80058953;
98
116
  */
99
- export const are_host_and_port = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 14);
117
+ export const are_host_and_port = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 17);
100
118
  /**
101
119
  * All Trimmed enforces all strings to be trimmed, e.g. no whitespaces at the begin and end
102
120
  *
103
121
  * @generated from extension: optional bool all_trimmed = 80058954;
104
122
  */
105
- export const all_trimmed = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 15);
123
+ export const all_trimmed = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 18);
106
124
  /**
107
125
  * Keys and Values trimmed enforces all map keys and values to be trimmed, e.g. no whitespaces at the begin and end
108
126
  *
109
127
  * @generated from extension: optional bool keys_and_values_trimmed = 80068951;
110
128
  */
111
- export const keys_and_values_trimmed = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 16);
129
+ export const keys_and_values_trimmed = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 19);
112
130
  /**
113
131
  * Keys trimmed enforces all map keys and values to be trimmed, e.g. no whitespaces at the begin and end
114
132
  *
115
133
  * @generated from extension: optional bool keys_trimmed = 80068952;
116
134
  */
117
- export const keys_trimmed = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 17);
135
+ export const keys_trimmed = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 20);
118
136
  /**
119
137
  * ProjectRolesKeysValid ensures that project roles keys met our requirements
120
138
  *
121
139
  * @generated from extension: optional bool project_roles_keys_valid = 80068953;
122
140
  */
123
- export const project_roles_keys_valid = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 18);
141
+ export const project_roles_keys_valid = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 21);
124
142
  /**
125
143
  * TenantRolesKeysValid ensures that tenant roles keys met our requirements
126
144
  *
127
145
  * @generated from extension: optional bool tenant_roles_keys_valid = 80068954;
128
146
  */
129
- export const tenant_roles_keys_valid = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 19);
147
+ export const tenant_roles_keys_valid = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 22);
130
148
  /**
131
149
  * MachineRolesKeysValid ensures that machine roles keys met our requirements
132
150
  *
133
151
  * @generated from extension: optional bool machine_roles_keys_valid = 80068955;
134
152
  */
135
- export const machine_roles_keys_valid = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 20);
153
+ export const machine_roles_keys_valid = /*@__PURE__*/ extDesc(file_metalstack_api_v2_predefined_rules, 23);
@@ -11,7 +11,7 @@ import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
11
11
  * Describes the file metalstack/api/v2/predefined_rules.proto.
12
12
  */
13
13
  export const file_metalstack_api_v2_predefined_rules: GenFile = /*@__PURE__*/
14
- fileDesc("CihtZXRhbHN0YWNrL2FwaS92Mi9wcmVkZWZpbmVkX3J1bGVzLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52Mjq4AQoKbWFjYWRkcmVzcxIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi35pUmIAEoCEJ6wkh3CnUKEXN0cmluZy5tYWNhZGRyZXNzEiZ0aGlzIHN0cmluZyBtdXN0IGJlIGEgdmFsaWQgbWFjYWRkcmVzcxo4dGhpcy5tYXRjaGVzKCdeKFswLTlBLUZhLWZdezJ9WzpdKXs1fShbMC05QS1GYS1mXXsyfSkkJylSCm1hY2FkZHJlc3M6mQEKB2lzX25hbWUSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYuOaVJiABKAhCYsJIXwpdCg5zdHJpbmcuaXNfbmFtZRIjbXVzdCBiZSB3aXRoaW4gMiBhbmQgMTI4IGNoYXJhY3RlcnMaJnRoaXMuc2l6ZSgpID49IDIgJiYgdGhpcy5zaXplKCkgPD0gMTI4UgZpc05hbWU6mgEKDmlzX2Rlc2NyaXB0aW9uEhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGLnmlSYgASgIQlXCSFIKUAoVc3RyaW5nLmlzX2Rlc2NyaXB0aW9uEiNtdXN0IGJlIHNob3J0ZXIgdGhhbiAyNTYgY2hhcmFjdGVycxoSdGhpcy5zaXplKCkgPD0gMjU2Ug1pc0Rlc2NyaXB0aW9uOqgBCgxpc19wYXJ0aXRpb24SGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYuuaVJiABKAhCZ8JIZApiChNzdHJpbmcuaXNfcGFydGl0aW9uEiNtdXN0IGJlIHdpdGhpbiAyIGFuZCAxMjggY2hhcmFjdGVycxomdGhpcy5zaXplKCkgPj0gMiAmJiB0aGlzLnNpemUoKSA8PSAxMjhSC2lzUGFydGl0aW9uOoIBCglpc19wcmVmaXgSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYu+aVJiABKAhCR8JIRApCCg9zdHJpbmcucHJlZml4ZXMSHGdpdmVuIHByZWZpeGVzIG11c3QgYmUgdmFsaWQaEXRoaXMuaXNJcFByZWZpeCgpUghpc1ByZWZpeDptCgZpc191cmkSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYvOaVJiABKAhCOMJINQozCgpzdHJpbmcudXJpEhdnaXZlbiB1cmkgbXVzdCBiZSB2YWxpZBoMdGhpcy5pc1VyaSgpUgVpc1VyaTqnAQoRaXNfaXBfb3JfaG9zdG5hbWUSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYveaVJiABKAhCXsJIWwpZCg12YWxpZF9hZGRyZXNzEiZtdXN0IGJlIGEgdmFsaWQgSVAgYWRkcmVzcyBvciBob3N0bmFtZRogdGhpcy5pc0lwKCkgfHwgdGhpcy5pc0hvc3RuYW1lKClSDmlzSXBPckhvc3RuYW1lOp0BCgd0cmltbWVkEhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGL7mlSYgASgIQmXCSGIKYAoOc3RyaW5nLnRyaW1tZWQSK3ZhbHVlIG11c3Qgbm90IHN0YXJ0IG9yIGVuZCB3aXRoIHdoaXRlc3BhY2UaIXRoaXMudHJpbSgpLnNpemUoKSA9PSB0aGlzLnNpemUoKVIHdHJpbW1lZDqZAQoHaXNfdXNlchIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi/5pUmIAEoCEJiwkhfCl0KDnN0cmluZy5pc191c2VyEiNtdXN0IGJlIHdpdGhpbiAyIGFuZCA1MTIgY2hhcmFjdGVycxomdGhpcy5zaXplKCkgPj0gMiAmJiB0aGlzLnNpemUoKSA8PSA1MTJSBmlzVXNlcjqfAQoJaXNfb3B0aW9uEhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGMDmlSYgASgIQmTCSGEKXwoQc3RyaW5nLmlzX29wdGlvbhIjbXVzdCBiZSB3aXRoaW4gMSBhbmQgMTI4IGNoYXJhY3RlcnMaJnRoaXMuc2l6ZSgpID49IDEgJiYgdGhpcy5zaXplKCkgPD0gMTI4Ughpc09wdGlvbjqYAQoGaXNfa2V5EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGMHmlSYgASgIQmPCSGAKXgoNc3RyaW5nLmlzX2tleRIkbXVzdCBiZSB3aXRoaW4gMSBhbmQgODE5MiBjaGFyYWN0ZXJzGid0aGlzLnNpemUoKSA+PSAxICYmIHRoaXMuc2l6ZSgpIDw9IDgxOTJSBWlzS2V5OrABCg9pc190ZW5hbnRfbG9naW4SGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYwuaVJiABKAhCasJIZwplChZzdHJpbmcuaXNfdGVuYW50X2xvZ2luEiNtdXN0IGJlIHdpdGhpbiAyIGFuZCAyNTYgY2hhcmFjdGVycxomdGhpcy5zaXplKCkgPj0gMiAmJiB0aGlzLnNpemUoKSA8PSAyNTZSDWlzVGVuYW50TG9naW46jwEKCHByZWZpeGVzEhsuYnVmLnZhbGlkYXRlLlJlcGVhdGVkUnVsZXMYx7SWJiABKAhCU8JIUApOChFyZXBlYXRlZC5wcmVmaXhlcxIcZ2l2ZW4gcHJlZml4ZXMgbXVzdCBiZSB2YWxpZBobdGhpcy5hbGwobSwgbS5pc0lwUHJlZml4KCkpUghwcmVmaXhlczp1CgNpcHMSGy5idWYudmFsaWRhdGUuUmVwZWF0ZWRSdWxlcxjItJYmIAEoCEJDwkhACj4KDHJlcGVhdGVkLmlwcxIXZ2l2ZW4gaXBzIG11c3QgYmUgdmFsaWQaFXRoaXMuYWxsKG0sIG0uaXNJcCgpKVIDaXBzOuYBChFhcmVfaG9zdF9hbmRfcG9ydBIbLmJ1Zi52YWxpZGF0ZS5SZXBlYXRlZFJ1bGVzGMm0liYgASgIQpoBwkiWAQqTAQoacmVwZWF0ZWQuYXJlX2hvc3RfYW5kX3BvcnQSUGdpdmVuIGVudHJpZXMgbXVzdCBhbGwgYmUgaW4gdGhlIGZvcm0gb2YgPGlwIHwgaG9zdD46PHBvcnQ+IGJ1dCBwb3J0IGlzIG9wdGlvbmFsGiN0aGlzLmFsbChtLCBtLmlzSG9zdEFuZFBvcnQoZmFsc2UpKVIOYXJlSG9zdEFuZFBvcnQ6ugEKC2FsbF90cmltbWVkEhsuYnVmLnZhbGlkYXRlLlJlcGVhdGVkUnVsZXMYyrSWJiABKAhCecJIdgp0ChRyZXBlYXRlZC5hbGxfdHJpbW1lZBIyZ2l2ZW4gdmFsdWVzIG11c3Qgbm90IHN0YXJ0IG9yIGVuZCB3aXRoIHdoaXRlc3BhY2UaKHRoaXMuYWxsKG0sIG0udHJpbSgpLnNpemUoKSA9PSBtLnNpemUoKSlSCmFsbFRyaW1tZWQ6hAIKF2tleXNfYW5kX3ZhbHVlc190cmltbWVkEhYuYnVmLnZhbGlkYXRlLk1hcFJ1bGVzGNeClyYgASgIQrEBwkitAQqqAQobbWFwLmtleXNfYW5kX3ZhbHVlc190cmltbWVkEjVrZXlzIGFuZCB2YWx1ZXMgbXVzdCBub3Qgc3RhcnQgb3IgZW5kIHdpdGggd2hpdGVzcGFjZRpUdGhpcy5hbGwoaywgay50cmltKCkuc2l6ZSgpID09IGsuc2l6ZSgpKSAmJiB0aGlzLmFsbCh2LCB2LnRyaW0oKS5zaXplKCkgPT0gdi5zaXplKCkpUhRrZXlzQW5kVmFsdWVzVHJpbW1lZDqrAQoMa2V5c190cmltbWVkEhYuYnVmLnZhbGlkYXRlLk1hcFJ1bGVzGNiClyYgASgIQm3CSGoKaAoQbWFwLmtleXNfdHJpbW1lZBIqa2V5cyBtdXN0IG5vdCBzdGFydCBvciBlbmQgd2l0aCB3aGl0ZXNwYWNlGih0aGlzLmFsbChrLCBrLnRyaW0oKS5zaXplKCkgPT0gay5zaXplKCkpUgtrZXlzVHJpbW1lZDqSAgoYcHJvamVjdF9yb2xlc19rZXlzX3ZhbGlkEhYuYnVmLnZhbGlkYXRlLk1hcFJ1bGVzGNmClyYgASgIQr0Bwki5AQq2AQoXcHJvamVjdF9yb2xlcy5rZXkudmFsaWQSJnN1YmplY3QgbXVzdCBiZSBhICcqJywgb3IgYSB2YWxpZCBVVUlEGnN0aGlzLmFsbChrLCBrID09ICcqJyB8fCBrLm1hdGNoZXMoJ15bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kJykpUhVwcm9qZWN0Um9sZXNLZXlzVmFsaWQ66AEKF3RlbmFudF9yb2xlc19rZXlzX3ZhbGlkEhYuYnVmLnZhbGlkYXRlLk1hcFJ1bGVzGNqClyYgASgIQpUBwkiRAQqOAQoWdGVuYW50X3JvbGVzLmtleS52YWxpZBIzc3ViamVjdCBtdXN0IGJlICcqJyBvciBiZXR3ZWVuIDIgYW5kIDEyOCBjaGFyYWN0ZXJzGj90aGlzLmFsbChrLCBrID09ICcqJyB8fCB0aGlzLnNpemUoKSA+PSAyIHx8IHRoaXMuc2l6ZSgpIDw9MTI4IClSFHRlbmFudFJvbGVzS2V5c1ZhbGlkOqkCChhtYWNoaW5lX3JvbGVzX2tleXNfdmFsaWQSFi5idWYudmFsaWRhdGUuTWFwUnVsZXMY24KXJiABKAhC1AHCSNABCs0BChdtYWNoaW5lX3JvbGVzLmtleS52YWxpZBIyc3ViamVjdCBtdXN0IGJlIGVtcHR5IHN0cmluZywgJyonLCBvciBhIHZhbGlkIFVVSUQafnRoaXMuYWxsKGssIGsgPT0gJycgfHwgayA9PSAnKicgfHwgay5tYXRjaGVzKCdeWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCcpKVIVbWFjaGluZVJvbGVzS2V5c1ZhbGlkQsoBChVjb20ubWV0YWxzdGFjay5hcGkudjJCFFByZWRlZmluZWRSdWxlc1Byb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMg", [file_buf_validate_validate]);
14
+ fileDesc("CihtZXRhbHN0YWNrL2FwaS92Mi9wcmVkZWZpbmVkX3J1bGVzLnByb3RvEhFtZXRhbHN0YWNrLmFwaS52Mjq4AQoKbWFjYWRkcmVzcxIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi35pUmIAEoCEJ6wkh3CnUKEXN0cmluZy5tYWNhZGRyZXNzEiZ0aGlzIHN0cmluZyBtdXN0IGJlIGEgdmFsaWQgbWFjYWRkcmVzcxo4dGhpcy5tYXRjaGVzKCdeKFswLTlBLUZhLWZdezJ9WzpdKXs1fShbMC05QS1GYS1mXXsyfSkkJylSCm1hY2FkZHJlc3M6mQEKB2lzX25hbWUSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYuOaVJiABKAhCYsJIXwpdCg5zdHJpbmcuaXNfbmFtZRIjbXVzdCBiZSB3aXRoaW4gMiBhbmQgMTI4IGNoYXJhY3RlcnMaJnRoaXMuc2l6ZSgpID49IDIgJiYgdGhpcy5zaXplKCkgPD0gMTI4UgZpc05hbWU6mgEKDmlzX2Rlc2NyaXB0aW9uEhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGLnmlSYgASgIQlXCSFIKUAoVc3RyaW5nLmlzX2Rlc2NyaXB0aW9uEiNtdXN0IGJlIHNob3J0ZXIgdGhhbiAyNTYgY2hhcmFjdGVycxoSdGhpcy5zaXplKCkgPD0gMjU2Ug1pc0Rlc2NyaXB0aW9uOqgBCgxpc19wYXJ0aXRpb24SGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYuuaVJiABKAhCZ8JIZApiChNzdHJpbmcuaXNfcGFydGl0aW9uEiNtdXN0IGJlIHdpdGhpbiAyIGFuZCAxMjggY2hhcmFjdGVycxomdGhpcy5zaXplKCkgPj0gMiAmJiB0aGlzLnNpemUoKSA8PSAxMjhSC2lzUGFydGl0aW9uOoIBCglpc19wcmVmaXgSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYu+aVJiABKAhCR8JIRApCCg9zdHJpbmcucHJlZml4ZXMSHGdpdmVuIHByZWZpeGVzIG11c3QgYmUgdmFsaWQaEXRoaXMuaXNJcFByZWZpeCgpUghpc1ByZWZpeDptCgZpc191cmkSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYvOaVJiABKAhCOMJINQozCgpzdHJpbmcudXJpEhdnaXZlbiB1cmkgbXVzdCBiZSB2YWxpZBoMdGhpcy5pc1VyaSgpUgVpc1VyaTqnAQoRaXNfaXBfb3JfaG9zdG5hbWUSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYveaVJiABKAhCXsJIWwpZCg12YWxpZF9hZGRyZXNzEiZtdXN0IGJlIGEgdmFsaWQgSVAgYWRkcmVzcyBvciBob3N0bmFtZRogdGhpcy5pc0lwKCkgfHwgdGhpcy5pc0hvc3RuYW1lKClSDmlzSXBPckhvc3RuYW1lOp0BCgd0cmltbWVkEhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGL7mlSYgASgIQmXCSGIKYAoOc3RyaW5nLnRyaW1tZWQSK3ZhbHVlIG11c3Qgbm90IHN0YXJ0IG9yIGVuZCB3aXRoIHdoaXRlc3BhY2UaIXRoaXMudHJpbSgpLnNpemUoKSA9PSB0aGlzLnNpemUoKVIHdHJpbW1lZDqZAQoHaXNfdXNlchIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi/5pUmIAEoCEJiwkhfCl0KDnN0cmluZy5pc191c2VyEiNtdXN0IGJlIHdpdGhpbiAyIGFuZCA1MTIgY2hhcmFjdGVycxomdGhpcy5zaXplKCkgPj0gMiAmJiB0aGlzLnNpemUoKSA8PSA1MTJSBmlzVXNlcjqfAQoJaXNfb3B0aW9uEhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGMDmlSYgASgIQmTCSGEKXwoQc3RyaW5nLmlzX29wdGlvbhIjbXVzdCBiZSB3aXRoaW4gMSBhbmQgMTI4IGNoYXJhY3RlcnMaJnRoaXMuc2l6ZSgpID49IDEgJiYgdGhpcy5zaXplKCkgPD0gMTI4Ughpc09wdGlvbjqYAQoGaXNfa2V5EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGMHmlSYgASgIQmPCSGAKXgoNc3RyaW5nLmlzX2tleRIkbXVzdCBiZSB3aXRoaW4gMSBhbmQgODE5MiBjaGFyYWN0ZXJzGid0aGlzLnNpemUoKSA+PSAxICYmIHRoaXMuc2l6ZSgpIDw9IDgxOTJSBWlzS2V5OrABCg9pc190ZW5hbnRfbG9naW4SGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYwuaVJiABKAhCasJIZwplChZzdHJpbmcuaXNfdGVuYW50X2xvZ2luEiNtdXN0IGJlIHdpdGhpbiAyIGFuZCAxMjggY2hhcmFjdGVycxomdGhpcy5zaXplKCkgPj0gMiAmJiB0aGlzLnNpemUoKSA8PSAxMjhSDWlzVGVuYW50TG9naW467wEKHGlzX3RlbmFudF9zdWJqZWN0X3Blcm1pc3Npb24SGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYw+aVJiABKAhCjwHCSIsBCogBCiNzdHJpbmcuaXNfdGVuYW50X3N1YmplY3RfcGVybWlzc2lvbhIqbXVzdCBiZSAnKicgb3Igd2l0aGluIDIgYW5kIDEyOCBjaGFyYWN0ZXJzGjV0aGlzID09ICcqJyB8fCB0aGlzLnNpemUoKSA+PSAyICYmIHRoaXMuc2l6ZSgpIDw9IDEyOFIZaXNUZW5hbnRTdWJqZWN0UGVybWlzc2lvbjqUAgodaXNfcHJvamVjdF9zdWJqZWN0X3Blcm1pc3Npb24SGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYxOaVJiABKAhCsgHCSK4BCqsBCiRzdHJpbmcuaXNfcHJvamVjdF9zdWJqZWN0X3Blcm1pc3Npb24SFW11c3QgYmUgJyonIG9yIGEgdXVpZBpsdGhpcyA9PSAnKicgfHwgdGhpcy5tYXRjaGVzKCdeWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCcpUhppc1Byb2plY3RTdWJqZWN0UGVybWlzc2lvbjqUAgodaXNfbWFjaGluZV9zdWJqZWN0X3Blcm1pc3Npb24SGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYxeaVJiABKAhCsgHCSK4BCqsBCiRzdHJpbmcuaXNfbWFjaGluZV9zdWJqZWN0X3Blcm1pc3Npb24SFW11c3QgYmUgJyonIG9yIGEgdXVpZBpsdGhpcyA9PSAnKicgfHwgdGhpcy5tYXRjaGVzKCdeWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCcpUhppc01hY2hpbmVTdWJqZWN0UGVybWlzc2lvbjqPAQoIcHJlZml4ZXMSGy5idWYudmFsaWRhdGUuUmVwZWF0ZWRSdWxlcxjHtJYmIAEoCEJTwkhQCk4KEXJlcGVhdGVkLnByZWZpeGVzEhxnaXZlbiBwcmVmaXhlcyBtdXN0IGJlIHZhbGlkGht0aGlzLmFsbChtLCBtLmlzSXBQcmVmaXgoKSlSCHByZWZpeGVzOnUKA2lwcxIbLmJ1Zi52YWxpZGF0ZS5SZXBlYXRlZFJ1bGVzGMi0liYgASgIQkPCSEAKPgoMcmVwZWF0ZWQuaXBzEhdnaXZlbiBpcHMgbXVzdCBiZSB2YWxpZBoVdGhpcy5hbGwobSwgbS5pc0lwKCkpUgNpcHM65gEKEWFyZV9ob3N0X2FuZF9wb3J0EhsuYnVmLnZhbGlkYXRlLlJlcGVhdGVkUnVsZXMYybSWJiABKAhCmgHCSJYBCpMBChpyZXBlYXRlZC5hcmVfaG9zdF9hbmRfcG9ydBJQZ2l2ZW4gZW50cmllcyBtdXN0IGFsbCBiZSBpbiB0aGUgZm9ybSBvZiA8aXAgfCBob3N0Pjo8cG9ydD4gYnV0IHBvcnQgaXMgb3B0aW9uYWwaI3RoaXMuYWxsKG0sIG0uaXNIb3N0QW5kUG9ydChmYWxzZSkpUg5hcmVIb3N0QW5kUG9ydDq6AQoLYWxsX3RyaW1tZWQSGy5idWYudmFsaWRhdGUuUmVwZWF0ZWRSdWxlcxjKtJYmIAEoCEJ5wkh2CnQKFHJlcGVhdGVkLmFsbF90cmltbWVkEjJnaXZlbiB2YWx1ZXMgbXVzdCBub3Qgc3RhcnQgb3IgZW5kIHdpdGggd2hpdGVzcGFjZRoodGhpcy5hbGwobSwgbS50cmltKCkuc2l6ZSgpID09IG0uc2l6ZSgpKVIKYWxsVHJpbW1lZDqEAgoXa2V5c19hbmRfdmFsdWVzX3RyaW1tZWQSFi5idWYudmFsaWRhdGUuTWFwUnVsZXMY14KXJiABKAhCsQHCSK0BCqoBChttYXAua2V5c19hbmRfdmFsdWVzX3RyaW1tZWQSNWtleXMgYW5kIHZhbHVlcyBtdXN0IG5vdCBzdGFydCBvciBlbmQgd2l0aCB3aGl0ZXNwYWNlGlR0aGlzLmFsbChrLCBrLnRyaW0oKS5zaXplKCkgPT0gay5zaXplKCkpICYmIHRoaXMuYWxsKHYsIHYudHJpbSgpLnNpemUoKSA9PSB2LnNpemUoKSlSFGtleXNBbmRWYWx1ZXNUcmltbWVkOqsBCgxrZXlzX3RyaW1tZWQSFi5idWYudmFsaWRhdGUuTWFwUnVsZXMY2IKXJiABKAhCbcJIagpoChBtYXAua2V5c190cmltbWVkEiprZXlzIG11c3Qgbm90IHN0YXJ0IG9yIGVuZCB3aXRoIHdoaXRlc3BhY2UaKHRoaXMuYWxsKGssIGsudHJpbSgpLnNpemUoKSA9PSBrLnNpemUoKSlSC2tleXNUcmltbWVkOpICChhwcm9qZWN0X3JvbGVzX2tleXNfdmFsaWQSFi5idWYudmFsaWRhdGUuTWFwUnVsZXMY2YKXJiABKAhCvQHCSLkBCrYBChdwcm9qZWN0X3JvbGVzLmtleS52YWxpZBImc3ViamVjdCBtdXN0IGJlIGEgJyonLCBvciBhIHZhbGlkIFVVSUQac3RoaXMuYWxsKGssIGsgPT0gJyonIHx8IGsubWF0Y2hlcygnXlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQnKSlSFXByb2plY3RSb2xlc0tleXNWYWxpZDroAQoXdGVuYW50X3JvbGVzX2tleXNfdmFsaWQSFi5idWYudmFsaWRhdGUuTWFwUnVsZXMY2oKXJiABKAhClQHCSJEBCo4BChZ0ZW5hbnRfcm9sZXMua2V5LnZhbGlkEjNzdWJqZWN0IG11c3QgYmUgJyonIG9yIGJldHdlZW4gMiBhbmQgMTI4IGNoYXJhY3RlcnMaP3RoaXMuYWxsKGssIGsgPT0gJyonIHx8IHRoaXMuc2l6ZSgpID49IDIgfHwgdGhpcy5zaXplKCkgPD0xMjggKVIUdGVuYW50Um9sZXNLZXlzVmFsaWQ6ngIKGG1hY2hpbmVfcm9sZXNfa2V5c192YWxpZBIWLmJ1Zi52YWxpZGF0ZS5NYXBSdWxlcxjbgpcmIAEoCELJAcJIxQEKwgEKF21hY2hpbmVfcm9sZXMua2V5LnZhbGlkEjJzdWJqZWN0IG11c3QgYmUgZW1wdHkgc3RyaW5nLCAnKicsIG9yIGEgdmFsaWQgVVVJRBpzdGhpcy5hbGwoaywgayA9PSAnKicgfHwgay5tYXRjaGVzKCdeWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCcpKVIVbWFjaGluZVJvbGVzS2V5c1ZhbGlkQsoBChVjb20ubWV0YWxzdGFjay5hcGkudjJCFFByZWRlZmluZWRSdWxlc1Byb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMg", [file_buf_validate_validate]);
15
15
 
16
16
  /**
17
17
  * Macaddress returns true if the given string is a valid macaddress
@@ -109,13 +109,37 @@ export const is_key: GenExtension<StringRules, boolean> = /*@__PURE__*/
109
109
  export const is_tenant_login: GenExtension<StringRules, boolean> = /*@__PURE__*/
110
110
  extDesc(file_metalstack_api_v2_predefined_rules, 11);
111
111
 
112
+ /**
113
+ * IsTenantSubjectPermission returns true if name field satisfies our requirements
114
+ *
115
+ * @generated from extension: optional bool is_tenant_subject_permission = 80048963;
116
+ */
117
+ export const is_tenant_subject_permission: GenExtension<StringRules, boolean> = /*@__PURE__*/
118
+ extDesc(file_metalstack_api_v2_predefined_rules, 12);
119
+
120
+ /**
121
+ * IsProjectSubjectPermission returns true if name field satisfies our requirements
122
+ *
123
+ * @generated from extension: optional bool is_project_subject_permission = 80048964;
124
+ */
125
+ export const is_project_subject_permission: GenExtension<StringRules, boolean> = /*@__PURE__*/
126
+ extDesc(file_metalstack_api_v2_predefined_rules, 13);
127
+
128
+ /**
129
+ * IsMachineSubjectPermission returns true if name field satisfies our requirements
130
+ *
131
+ * @generated from extension: optional bool is_machine_subject_permission = 80048965;
132
+ */
133
+ export const is_machine_subject_permission: GenExtension<StringRules, boolean> = /*@__PURE__*/
134
+ extDesc(file_metalstack_api_v2_predefined_rules, 14);
135
+
112
136
  /**
113
137
  * Prefixes validates if a slice of prefixes in string form are valid
114
138
  *
115
139
  * @generated from extension: optional bool prefixes = 80058951;
116
140
  */
117
141
  export const prefixes: GenExtension<RepeatedRules, boolean> = /*@__PURE__*/
118
- extDesc(file_metalstack_api_v2_predefined_rules, 12);
142
+ extDesc(file_metalstack_api_v2_predefined_rules, 15);
119
143
 
120
144
  /**
121
145
  * Ips validates if a slice of ips in string form are valid
@@ -123,7 +147,7 @@ export const prefixes: GenExtension<RepeatedRules, boolean> = /*@__PURE__*/
123
147
  * @generated from extension: optional bool ips = 80058952;
124
148
  */
125
149
  export const ips: GenExtension<RepeatedRules, boolean> = /*@__PURE__*/
126
- extDesc(file_metalstack_api_v2_predefined_rules, 13);
150
+ extDesc(file_metalstack_api_v2_predefined_rules, 16);
127
151
 
128
152
  /**
129
153
  * AreHostAndPort validates if a slice of strings are all in the form of <ip | host>:<port>
@@ -131,7 +155,7 @@ export const ips: GenExtension<RepeatedRules, boolean> = /*@__PURE__*/
131
155
  * @generated from extension: optional bool are_host_and_port = 80058953;
132
156
  */
133
157
  export const are_host_and_port: GenExtension<RepeatedRules, boolean> = /*@__PURE__*/
134
- extDesc(file_metalstack_api_v2_predefined_rules, 14);
158
+ extDesc(file_metalstack_api_v2_predefined_rules, 17);
135
159
 
136
160
  /**
137
161
  * All Trimmed enforces all strings to be trimmed, e.g. no whitespaces at the begin and end
@@ -139,7 +163,7 @@ export const are_host_and_port: GenExtension<RepeatedRules, boolean> = /*@__PURE
139
163
  * @generated from extension: optional bool all_trimmed = 80058954;
140
164
  */
141
165
  export const all_trimmed: GenExtension<RepeatedRules, boolean> = /*@__PURE__*/
142
- extDesc(file_metalstack_api_v2_predefined_rules, 15);
166
+ extDesc(file_metalstack_api_v2_predefined_rules, 18);
143
167
 
144
168
  /**
145
169
  * Keys and Values trimmed enforces all map keys and values to be trimmed, e.g. no whitespaces at the begin and end
@@ -147,7 +171,7 @@ export const all_trimmed: GenExtension<RepeatedRules, boolean> = /*@__PURE__*/
147
171
  * @generated from extension: optional bool keys_and_values_trimmed = 80068951;
148
172
  */
149
173
  export const keys_and_values_trimmed: GenExtension<MapRules, boolean> = /*@__PURE__*/
150
- extDesc(file_metalstack_api_v2_predefined_rules, 16);
174
+ extDesc(file_metalstack_api_v2_predefined_rules, 19);
151
175
 
152
176
  /**
153
177
  * Keys trimmed enforces all map keys and values to be trimmed, e.g. no whitespaces at the begin and end
@@ -155,7 +179,7 @@ export const keys_and_values_trimmed: GenExtension<MapRules, boolean> = /*@__PUR
155
179
  * @generated from extension: optional bool keys_trimmed = 80068952;
156
180
  */
157
181
  export const keys_trimmed: GenExtension<MapRules, boolean> = /*@__PURE__*/
158
- extDesc(file_metalstack_api_v2_predefined_rules, 17);
182
+ extDesc(file_metalstack_api_v2_predefined_rules, 20);
159
183
 
160
184
  /**
161
185
  * ProjectRolesKeysValid ensures that project roles keys met our requirements
@@ -163,7 +187,7 @@ export const keys_trimmed: GenExtension<MapRules, boolean> = /*@__PURE__*/
163
187
  * @generated from extension: optional bool project_roles_keys_valid = 80068953;
164
188
  */
165
189
  export const project_roles_keys_valid: GenExtension<MapRules, boolean> = /*@__PURE__*/
166
- extDesc(file_metalstack_api_v2_predefined_rules, 18);
190
+ extDesc(file_metalstack_api_v2_predefined_rules, 21);
167
191
 
168
192
  /**
169
193
  * TenantRolesKeysValid ensures that tenant roles keys met our requirements
@@ -171,7 +195,7 @@ export const project_roles_keys_valid: GenExtension<MapRules, boolean> = /*@__PU
171
195
  * @generated from extension: optional bool tenant_roles_keys_valid = 80068954;
172
196
  */
173
197
  export const tenant_roles_keys_valid: GenExtension<MapRules, boolean> = /*@__PURE__*/
174
- extDesc(file_metalstack_api_v2_predefined_rules, 19);
198
+ extDesc(file_metalstack_api_v2_predefined_rules, 22);
175
199
 
176
200
  /**
177
201
  * MachineRolesKeysValid ensures that machine roles keys met our requirements
@@ -179,5 +203,5 @@ export const tenant_roles_keys_valid: GenExtension<MapRules, boolean> = /*@__PUR
179
203
  * @generated from extension: optional bool machine_roles_keys_valid = 80068955;
180
204
  */
181
205
  export const machine_roles_keys_valid: GenExtension<MapRules, boolean> = /*@__PURE__*/
182
- extDesc(file_metalstack_api_v2_predefined_rules, 20);
206
+ extDesc(file_metalstack_api_v2_predefined_rules, 23);
183
207
 
@@ -131,9 +131,9 @@ export type TokenServiceCreateRequest = Message<"metalstack.api.v2.TokenServiceC
131
131
  /**
132
132
  * Permissions is a list of service methods this token can be used for
133
133
  *
134
- * @generated from field: repeated metalstack.api.v2.MethodPermission permissions = 2;
134
+ * @generated from field: repeated metalstack.api.v2.PermissionsByVisibility permissions = 2;
135
135
  */
136
- permissions: MethodPermission[];
136
+ permissions: PermissionsByVisibility[];
137
137
  /**
138
138
  * Expires gives the duration since now, after which this token can not be used anymore
139
139
  *
@@ -217,6 +217,229 @@ export type MethodPermission = Message<"metalstack.api.v2.MethodPermission"> & {
217
217
  * Use `create(MethodPermissionSchema)` to create a new message.
218
218
  */
219
219
  export declare const MethodPermissionSchema: GenMessage<MethodPermission>;
220
+ /**
221
+ * PermissionsByVisibility contains method permissions by visibility
222
+ *
223
+ * @generated from message metalstack.api.v2.PermissionsByVisibility
224
+ */
225
+ export type PermissionsByVisibility = Message<"metalstack.api.v2.PermissionsByVisibility"> & {
226
+ /**
227
+ * Visibility defines the visibility of the requested method permissions
228
+ *
229
+ * @generated from oneof metalstack.api.v2.PermissionsByVisibility.visibility
230
+ */
231
+ visibility: {
232
+ /**
233
+ * PublicPermissions carries public method permissions
234
+ *
235
+ * @generated from field: metalstack.api.v2.PublicPermissions public = 1;
236
+ */
237
+ value: PublicPermissions;
238
+ case: "public";
239
+ } | {
240
+ /**
241
+ * SelfPermissions carries self method permissions
242
+ *
243
+ * @generated from field: metalstack.api.v2.SelfPermissions self = 2;
244
+ */
245
+ value: SelfPermissions;
246
+ case: "self";
247
+ } | {
248
+ /**
249
+ * ProjectPermissions carries project method permissions
250
+ *
251
+ * @generated from field: metalstack.api.v2.ProjectPermissions project = 3;
252
+ */
253
+ value: ProjectPermissions;
254
+ case: "project";
255
+ } | {
256
+ /**
257
+ * TenantPermissions carries tenant method permissions
258
+ *
259
+ * @generated from field: metalstack.api.v2.TenantPermissions tenant = 4;
260
+ */
261
+ value: TenantPermissions;
262
+ case: "tenant";
263
+ } | {
264
+ /**
265
+ * AdminPermissions carries admin method permissions
266
+ *
267
+ * @generated from field: metalstack.api.v2.AdminPermissions admin = 5;
268
+ */
269
+ value: AdminPermissions;
270
+ case: "admin";
271
+ } | {
272
+ /**
273
+ * MachinePermissions carries machine method permissions
274
+ *
275
+ * @generated from field: metalstack.api.v2.MachinePermissions machine = 6;
276
+ */
277
+ value: MachinePermissions;
278
+ case: "machine";
279
+ } | {
280
+ /**
281
+ * InfraPermissions carries infra method permissions
282
+ *
283
+ * @generated from field: metalstack.api.v2.InfraPermissions infra = 7;
284
+ */
285
+ value: InfraPermissions;
286
+ case: "infra";
287
+ } | {
288
+ case: undefined;
289
+ value?: undefined;
290
+ };
291
+ };
292
+ /**
293
+ * Describes the message metalstack.api.v2.PermissionsByVisibility.
294
+ * Use `create(PermissionsByVisibilitySchema)` to create a new message.
295
+ */
296
+ export declare const PermissionsByVisibilitySchema: GenMessage<PermissionsByVisibility>;
297
+ /**
298
+ * PublicPermissions carries public method permissions
299
+ *
300
+ * @generated from message metalstack.api.v2.PublicPermissions
301
+ */
302
+ export type PublicPermissions = Message<"metalstack.api.v2.PublicPermissions"> & {
303
+ /**
304
+ * Methods which should be accessible
305
+ *
306
+ * @generated from field: repeated string methods = 2;
307
+ */
308
+ methods: string[];
309
+ };
310
+ /**
311
+ * Describes the message metalstack.api.v2.PublicPermissions.
312
+ * Use `create(PublicPermissionsSchema)` to create a new message.
313
+ */
314
+ export declare const PublicPermissionsSchema: GenMessage<PublicPermissions>;
315
+ /**
316
+ * SelfPermissions carries self method permissions
317
+ *
318
+ * @generated from message metalstack.api.v2.SelfPermissions
319
+ */
320
+ export type SelfPermissions = Message<"metalstack.api.v2.SelfPermissions"> & {
321
+ /**
322
+ * Methods which should be accessible
323
+ *
324
+ * @generated from field: repeated string methods = 2;
325
+ */
326
+ methods: string[];
327
+ };
328
+ /**
329
+ * Describes the message metalstack.api.v2.SelfPermissions.
330
+ * Use `create(SelfPermissionsSchema)` to create a new message.
331
+ */
332
+ export declare const SelfPermissionsSchema: GenMessage<SelfPermissions>;
333
+ /**
334
+ * ProjectPermissions carries project method permissions
335
+ *
336
+ * @generated from message metalstack.api.v2.ProjectPermissions
337
+ */
338
+ export type ProjectPermissions = Message<"metalstack.api.v2.ProjectPermissions"> & {
339
+ /**
340
+ * asterisk (*) can be specified to match any subject
341
+ *
342
+ * @generated from field: string project = 1;
343
+ */
344
+ project: string;
345
+ /**
346
+ * Methods which should be accessible
347
+ *
348
+ * @generated from field: repeated string methods = 2;
349
+ */
350
+ methods: string[];
351
+ };
352
+ /**
353
+ * Describes the message metalstack.api.v2.ProjectPermissions.
354
+ * Use `create(ProjectPermissionsSchema)` to create a new message.
355
+ */
356
+ export declare const ProjectPermissionsSchema: GenMessage<ProjectPermissions>;
357
+ /**
358
+ * TenantPermissions carries tenant method permissions
359
+ *
360
+ * @generated from message metalstack.api.v2.TenantPermissions
361
+ */
362
+ export type TenantPermissions = Message<"metalstack.api.v2.TenantPermissions"> & {
363
+ /**
364
+ * Login of the tenant
365
+ * asterisk (*) can be specified to match any subject
366
+ *
367
+ * @generated from field: string login = 1;
368
+ */
369
+ login: string;
370
+ /**
371
+ * Methods which should be accessible
372
+ *
373
+ * @generated from field: repeated string methods = 2;
374
+ */
375
+ methods: string[];
376
+ };
377
+ /**
378
+ * Describes the message metalstack.api.v2.TenantPermissions.
379
+ * Use `create(TenantPermissionsSchema)` to create a new message.
380
+ */
381
+ export declare const TenantPermissionsSchema: GenMessage<TenantPermissions>;
382
+ /**
383
+ * AdminPermissions carries admin method permissions
384
+ *
385
+ * @generated from message metalstack.api.v2.AdminPermissions
386
+ */
387
+ export type AdminPermissions = Message<"metalstack.api.v2.AdminPermissions"> & {
388
+ /**
389
+ * Methods which should be accessible
390
+ *
391
+ * @generated from field: repeated string methods = 2;
392
+ */
393
+ methods: string[];
394
+ };
395
+ /**
396
+ * Describes the message metalstack.api.v2.AdminPermissions.
397
+ * Use `create(AdminPermissionsSchema)` to create a new message.
398
+ */
399
+ export declare const AdminPermissionsSchema: GenMessage<AdminPermissions>;
400
+ /**
401
+ * MachinePermissions carries machine method permissions
402
+ *
403
+ * @generated from message metalstack.api.v2.MachinePermissions
404
+ */
405
+ export type MachinePermissions = Message<"metalstack.api.v2.MachinePermissions"> & {
406
+ /**
407
+ * UUID of this machine
408
+ * asterisk (*) can be specified to match any subject
409
+ *
410
+ * @generated from field: string uuid = 1;
411
+ */
412
+ uuid: string;
413
+ /**
414
+ * Methods which should be accessible
415
+ *
416
+ * @generated from field: repeated string methods = 2;
417
+ */
418
+ methods: string[];
419
+ };
420
+ /**
421
+ * Describes the message metalstack.api.v2.MachinePermissions.
422
+ * Use `create(MachinePermissionsSchema)` to create a new message.
423
+ */
424
+ export declare const MachinePermissionsSchema: GenMessage<MachinePermissions>;
425
+ /**
426
+ * InfraPermissions carries infra method permissions
427
+ *
428
+ * @generated from message metalstack.api.v2.InfraPermissions
429
+ */
430
+ export type InfraPermissions = Message<"metalstack.api.v2.InfraPermissions"> & {
431
+ /**
432
+ * Methods which should be accessible
433
+ *
434
+ * @generated from field: repeated string methods = 2;
435
+ */
436
+ methods: string[];
437
+ };
438
+ /**
439
+ * Describes the message metalstack.api.v2.InfraPermissions.
440
+ * Use `create(InfraPermissionsSchema)` to create a new message.
441
+ */
442
+ export declare const InfraPermissionsSchema: GenMessage<InfraPermissions>;
220
443
  /**
221
444
  * TokenServiceCreateResponse is the response payload of a token create request
222
445
  *
@@ -334,9 +557,9 @@ export type TokenServiceUpdateRequest = Message<"metalstack.api.v2.TokenServiceU
334
557
  /**
335
558
  * Permissions is a list of service methods this token can be used for
336
559
  *
337
- * @generated from field: repeated metalstack.api.v2.MethodPermission permissions = 4;
560
+ * @generated from field: repeated metalstack.api.v2.PermissionsByVisibility permissions = 4;
338
561
  */
339
- permissions: MethodPermission[];
562
+ permissions: PermissionsByVisibility[];
340
563
  /**
341
564
  * ProjectRoles associates a project id with the corresponding role of the token owner
342
565
  *
@@ -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/token.proto.
11
11
  */
12
- export const file_metalstack_api_v2_token = /*@__PURE__*/ fileDesc("Ch1tZXRhbHN0YWNrL2FwaS92Mi90b2tlbi5wcm90bxIRbWV0YWxzdGFjay5hcGkudjIilQgKBVRva2VuEhYKBHV1aWQYASABKAlCCLpIBXIDsAEBEhkKBHVzZXIYAiABKAlCC7pICHIG+LOusQIBEiUKBG1ldGEYAyABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEiAKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECARJDCgtwZXJtaXNzaW9ucxgFIAMoCzIjLm1ldGFsc3RhY2suYXBpLnYyLk1ldGhvZFBlcm1pc3Npb25CCbpIBpIBAxD0AxIrCgdleHBpcmVzGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBItCglpc3N1ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKCnRva2VuX3R5cGUYCCABKA4yHC5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblR5cGVCCLpIBYIBAhABElwKDXByb2plY3Rfcm9sZXMYCSADKAsyKi5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlbi5Qcm9qZWN0Um9sZXNFbnRyeUIZukgWmgETwJW4sQIByJW4sQIBKgWCAQIQARJaCgx0ZW5hbnRfcm9sZXMYCiADKAsyKS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlbi5UZW5hbnRSb2xlc0VudHJ5Qhm6SBaaARPAlbixAgHQlbixAgEqBYIBAhABEj8KCmFkbWluX3JvbGUYCyABKA4yHC5tZXRhbHN0YWNrLmFwaS52Mi5BZG1pblJvbGVCCLpIBYIBAhABSACIAQESPwoKaW5mcmFfcm9sZRgMIAEoDjIcLm1ldGFsc3RhY2suYXBpLnYyLkluZnJhUm9sZUIIukgFggECEAFIAYgBARJcCg1tYWNoaW5lX3JvbGVzGA0gAygLMioubWV0YWxzdGFjay5hcGkudjIuVG9rZW4uTWFjaGluZVJvbGVzRW50cnlCGbpIFpoBE8CVuLECAdiVuLECASoFggECEAEaUwoRUHJvamVjdFJvbGVzRW50cnkSCwoDa2V5GAEgASgJEi0KBXZhbHVlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGU6AjgBGlEKEFRlbmFudFJvbGVzRW50cnkSCwoDa2V5GAEgASgJEiwKBXZhbHVlGAIgASgOMh0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50Um9sZToCOAEaUwoRTWFjaGluZVJvbGVzRW50cnkSCwoDa2V5GAEgASgJEi0KBXZhbHVlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZVJvbGU6AjgBQg0KC19hZG1pbl9yb2xlQg0KC19pbmZyYV9yb2xlIt0HChlUb2tlblNlcnZpY2VDcmVhdGVSZXF1ZXN0EiAKC2Rlc2NyaXB0aW9uGAEgASgJQgu6SAhyBsizrrECARJCCgtwZXJtaXNzaW9ucxgCIAMoCzIjLm1ldGFsc3RhY2suYXBpLnYyLk1ldGhvZFBlcm1pc3Npb25CCLpIBZIBAhBkEj4KB2V4cGlyZXMYAyABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CErpID6oBDBoFCIHnhA8yAwjYBBJwCg1wcm9qZWN0X3JvbGVzGAQgAygLMj4ubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlQ3JlYXRlUmVxdWVzdC5Qcm9qZWN0Um9sZXNFbnRyeUIZukgWmgETwJW4sQIByJW4sQIBKgWCAQIQARJuCgx0ZW5hbnRfcm9sZXMYBSADKAsyPS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VDcmVhdGVSZXF1ZXN0LlRlbmFudFJvbGVzRW50cnlCGbpIFpoBE8CVuLECAdCVuLECASoFggECEAESPwoKYWRtaW5fcm9sZRgGIAEoDjIcLm1ldGFsc3RhY2suYXBpLnYyLkFkbWluUm9sZUIIukgFggECEAFIAIgBARI/CgppbmZyYV9yb2xlGAcgASgOMhwubWV0YWxzdGFjay5hcGkudjIuSW5mcmFSb2xlQgi6SAWCAQIQAUgBiAEBEnAKDW1hY2hpbmVfcm9sZXMYCCADKAsyPi5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VDcmVhdGVSZXF1ZXN0Lk1hY2hpbmVSb2xlc0VudHJ5Qhm6SBaaARPAlbixAgHYlbixAgEqBYIBAhABEikKBmxhYmVscxgJIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVscxpTChFQcm9qZWN0Um9sZXNFbnRyeRILCgNrZXkYASABKAkSLQoFdmFsdWUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZToCOAEaUQoQVGVuYW50Um9sZXNFbnRyeRILCgNrZXkYASABKAkSLAoFdmFsdWUYAiABKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRSb2xlOgI4ARpTChFNYWNoaW5lUm9sZXNFbnRyeRILCgNrZXkYASABKAkSLQoFdmFsdWUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5NYWNoaW5lUm9sZToCOAFCDQoLX2FkbWluX3JvbGVCDQoLX2luZnJhX3JvbGUiSQoQTWV0aG9kUGVybWlzc2lvbhIZCgdzdWJqZWN0GAEgASgJQgi6SAVyAxiAAhIaCgdtZXRob2RzGAIgAygJQgm6SAaSAQMQ9AMiVQoaVG9rZW5TZXJ2aWNlQ3JlYXRlUmVzcG9uc2USJwoFdG9rZW4YASABKAsyGC5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlbhIOCgZzZWNyZXQYAiABKAkiRwoXVG9rZW5TZXJ2aWNlTGlzdFJlcXVlc3QSLAoFcXVlcnkYASABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblF1ZXJ5IkQKGFRva2VuU2VydmljZUxpc3RSZXNwb25zZRIoCgZ0b2tlbnMYASADKAsyGC5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlbiIzChlUb2tlblNlcnZpY2VSZXZva2VSZXF1ZXN0EhYKBHV1aWQYASABKAlCCLpIBXIDsAEBIhwKGlRva2VuU2VydmljZVJldm9rZVJlc3BvbnNlIoIIChlUb2tlblNlcnZpY2VVcGRhdGVSZXF1ZXN0EhYKBHV1aWQYASABKAlCCLpIBXIDsAEBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEAEiUKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECAUgAiAEBEjgKC3Blcm1pc3Npb25zGAQgAygLMiMubWV0YWxzdGFjay5hcGkudjIuTWV0aG9kUGVybWlzc2lvbhJwCg1wcm9qZWN0X3JvbGVzGAUgAygLMj4ubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlVXBkYXRlUmVxdWVzdC5Qcm9qZWN0Um9sZXNFbnRyeUIZukgWmgETwJW4sQIByJW4sQIBKgWCAQIQARJuCgx0ZW5hbnRfcm9sZXMYBiADKAsyPS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VVcGRhdGVSZXF1ZXN0LlRlbmFudFJvbGVzRW50cnlCGbpIFpoBE8CVuLECAdCVuLECASoFggECEAESPwoKYWRtaW5fcm9sZRgHIAEoDjIcLm1ldGFsc3RhY2suYXBpLnYyLkFkbWluUm9sZUIIukgFggECEAFIAYgBARI/CgppbmZyYV9yb2xlGAggASgOMhwubWV0YWxzdGFjay5hcGkudjIuSW5mcmFSb2xlQgi6SAWCAQIQAUgCiAEBEnAKDW1hY2hpbmVfcm9sZXMYCSADKAsyPi5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VVcGRhdGVSZXF1ZXN0Lk1hY2hpbmVSb2xlc0VudHJ5Qhm6SBaaARPAlbixAgHYlbixAgEqBYIBAhABEi8KBmxhYmVscxgKIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVscxpTChFQcm9qZWN0Um9sZXNFbnRyeRILCgNrZXkYASABKAkSLQoFdmFsdWUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZToCOAEaUQoQVGVuYW50Um9sZXNFbnRyeRILCgNrZXkYASABKAkSLAoFdmFsdWUYAiABKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRSb2xlOgI4ARpTChFNYWNoaW5lUm9sZXNFbnRyeRILCgNrZXkYASABKAkSLQoFdmFsdWUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5NYWNoaW5lUm9sZToCOAFCDgoMX2Rlc2NyaXB0aW9uQg0KC19hZG1pbl9yb2xlQg0KC19pbmZyYV9yb2xlIkUKGlRva2VuU2VydmljZVVwZGF0ZVJlc3BvbnNlEicKBXRva2VuGAEgASgLMhgubWV0YWxzdGFjay5hcGkudjIuVG9rZW4iMAoWVG9rZW5TZXJ2aWNlR2V0UmVxdWVzdBIWCgR1dWlkGAEgASgJQgi6SAVyA7ABASJCChdUb2tlblNlcnZpY2VHZXRSZXNwb25zZRInCgV0b2tlbhgBIAEoCzIYLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuIhwKGlRva2VuU2VydmljZVJlZnJlc2hSZXF1ZXN0IlYKG1Rva2VuU2VydmljZVJlZnJlc2hSZXNwb25zZRInCgV0b2tlbhgBIAEoCzIYLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuEg4KBnNlY3JldBgCIAEoCSKdAgoKVG9rZW5RdWVyeRIbCgR1dWlkGAEgASgJQgi6SAVyA7ABAUgAiAEBEh4KBHVzZXIYAiABKAlCC7pICHIG+LOusQIBSAGIAQESJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSAKIAQESLgoGbGFiZWxzGAQgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAOIAQESPwoKdG9rZW5fdHlwZRgFIAEoDjIcLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuVHlwZUIIukgFggECEAFIBIgBAUIHCgVfdXVpZEIHCgVfdXNlckIOCgxfZGVzY3JpcHRpb25CCQoHX2xhYmVsc0INCgtfdG9rZW5fdHlwZSpQCglUb2tlblR5cGUSGgoWVE9LRU5fVFlQRV9VTlNQRUNJRklFRBAAEhIKDlRPS0VOX1RZUEVfQVBJEAESEwoPVE9LRU5fVFlQRV9VU0VSEAIyqAUKDFRva2VuU2VydmljZRJmCgNHZXQSKS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VHZXRSZXF1ZXN0GioubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlR2V0UmVzcG9uc2UiCNjzGALg8xgBEm8KBkNyZWF0ZRIsLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZUNyZWF0ZVJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VDcmVhdGVSZXNwb25zZSII2PMYAuDzGAESbwoGVXBkYXRlEiwubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlVXBkYXRlUmVxdWVzdBotLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZVVwZGF0ZVJlc3BvbnNlIgjY8xgC4PMYARJpCgRMaXN0EioubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlTGlzdFJlcXVlc3QaKy5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VMaXN0UmVzcG9uc2UiCNjzGALg8xgBEm8KBlJldm9rZRIsLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZVJldm9rZVJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VSZXZva2VSZXNwb25zZSII2PMYAuDzGAEScgoHUmVmcmVzaBItLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZVJlZnJlc2hSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlUmVmcmVzaFJlc3BvbnNlIgjY8xgC4PMYAULAAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgpUb2tlblByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
12
+ export const file_metalstack_api_v2_token = /*@__PURE__*/ fileDesc("Ch1tZXRhbHN0YWNrL2FwaS92Mi90b2tlbi5wcm90bxIRbWV0YWxzdGFjay5hcGkudjIilQgKBVRva2VuEhYKBHV1aWQYASABKAlCCLpIBXIDsAEBEhkKBHVzZXIYAiABKAlCC7pICHIG+LOusQIBEiUKBG1ldGEYAyABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEiAKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECARJDCgtwZXJtaXNzaW9ucxgFIAMoCzIjLm1ldGFsc3RhY2suYXBpLnYyLk1ldGhvZFBlcm1pc3Npb25CCbpIBpIBAxD0AxIrCgdleHBpcmVzGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBItCglpc3N1ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKCnRva2VuX3R5cGUYCCABKA4yHC5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblR5cGVCCLpIBYIBAhABElwKDXByb2plY3Rfcm9sZXMYCSADKAsyKi5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlbi5Qcm9qZWN0Um9sZXNFbnRyeUIZukgWmgETwJW4sQIByJW4sQIBKgWCAQIQARJaCgx0ZW5hbnRfcm9sZXMYCiADKAsyKS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlbi5UZW5hbnRSb2xlc0VudHJ5Qhm6SBaaARPAlbixAgHQlbixAgEqBYIBAhABEj8KCmFkbWluX3JvbGUYCyABKA4yHC5tZXRhbHN0YWNrLmFwaS52Mi5BZG1pblJvbGVCCLpIBYIBAhABSACIAQESPwoKaW5mcmFfcm9sZRgMIAEoDjIcLm1ldGFsc3RhY2suYXBpLnYyLkluZnJhUm9sZUIIukgFggECEAFIAYgBARJcCg1tYWNoaW5lX3JvbGVzGA0gAygLMioubWV0YWxzdGFjay5hcGkudjIuVG9rZW4uTWFjaGluZVJvbGVzRW50cnlCGbpIFpoBE8CVuLECAdiVuLECASoFggECEAEaUwoRUHJvamVjdFJvbGVzRW50cnkSCwoDa2V5GAEgASgJEi0KBXZhbHVlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGU6AjgBGlEKEFRlbmFudFJvbGVzRW50cnkSCwoDa2V5GAEgASgJEiwKBXZhbHVlGAIgASgOMh0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50Um9sZToCOAEaUwoRTWFjaGluZVJvbGVzRW50cnkSCwoDa2V5GAEgASgJEi0KBXZhbHVlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZVJvbGU6AjgBQg0KC19hZG1pbl9yb2xlQg0KC19pbmZyYV9yb2xlIuQHChlUb2tlblNlcnZpY2VDcmVhdGVSZXF1ZXN0EiAKC2Rlc2NyaXB0aW9uGAEgASgJQgu6SAhyBsizrrECARJJCgtwZXJtaXNzaW9ucxgCIAMoCzIqLm1ldGFsc3RhY2suYXBpLnYyLlBlcm1pc3Npb25zQnlWaXNpYmlsaXR5Qgi6SAWSAQIQZBI+CgdleHBpcmVzGAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQhK6SA+qAQwaBQiB54QPMgMI2AQScAoNcHJvamVjdF9yb2xlcxgEIAMoCzI+Lm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZUNyZWF0ZVJlcXVlc3QuUHJvamVjdFJvbGVzRW50cnlCGbpIFpoBE8CVuLECAciVuLECASoFggECEAESbgoMdGVuYW50X3JvbGVzGAUgAygLMj0ubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlQ3JlYXRlUmVxdWVzdC5UZW5hbnRSb2xlc0VudHJ5Qhm6SBaaARPAlbixAgHQlbixAgEqBYIBAhABEj8KCmFkbWluX3JvbGUYBiABKA4yHC5tZXRhbHN0YWNrLmFwaS52Mi5BZG1pblJvbGVCCLpIBYIBAhABSACIAQESPwoKaW5mcmFfcm9sZRgHIAEoDjIcLm1ldGFsc3RhY2suYXBpLnYyLkluZnJhUm9sZUIIukgFggECEAFIAYgBARJwCg1tYWNoaW5lX3JvbGVzGAggAygLMj4ubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlQ3JlYXRlUmVxdWVzdC5NYWNoaW5lUm9sZXNFbnRyeUIZukgWmgETwJW4sQIB2JW4sQIBKgWCAQIQARIpCgZsYWJlbHMYCSABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMaUwoRUHJvamVjdFJvbGVzRW50cnkSCwoDa2V5GAEgASgJEi0KBXZhbHVlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGU6AjgBGlEKEFRlbmFudFJvbGVzRW50cnkSCwoDa2V5GAEgASgJEiwKBXZhbHVlGAIgASgOMh0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50Um9sZToCOAEaUwoRTWFjaGluZVJvbGVzRW50cnkSCwoDa2V5GAEgASgJEi0KBXZhbHVlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZVJvbGU6AjgBQg0KC19hZG1pbl9yb2xlQg0KC19pbmZyYV9yb2xlIkkKEE1ldGhvZFBlcm1pc3Npb24SGQoHc3ViamVjdBgBIAEoCUIIukgFcgMYgAISGgoHbWV0aG9kcxgCIAMoCUIJukgGkgEDEPQDIqsDChdQZXJtaXNzaW9uc0J5VmlzaWJpbGl0eRI2CgZwdWJsaWMYASABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5QdWJsaWNQZXJtaXNzaW9uc0gAEjIKBHNlbGYYAiABKAsyIi5tZXRhbHN0YWNrLmFwaS52Mi5TZWxmUGVybWlzc2lvbnNIABI4Cgdwcm9qZWN0GAMgASgLMiUubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFBlcm1pc3Npb25zSAASNgoGdGVuYW50GAQgASgLMiQubWV0YWxzdGFjay5hcGkudjIuVGVuYW50UGVybWlzc2lvbnNIABI0CgVhZG1pbhgFIAEoCzIjLm1ldGFsc3RhY2suYXBpLnYyLkFkbWluUGVybWlzc2lvbnNIABI4CgdtYWNoaW5lGAYgASgLMiUubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZVBlcm1pc3Npb25zSAASNAoFaW5mcmEYByABKAsyIy5tZXRhbHN0YWNrLmFwaS52Mi5JbmZyYVBlcm1pc3Npb25zSABCDAoKdmlzaWJpbGl0eSIvChFQdWJsaWNQZXJtaXNzaW9ucxIaCgdtZXRob2RzGAIgAygJQgm6SAaSAQMQ9AMiLQoPU2VsZlBlcm1pc3Npb25zEhoKB21ldGhvZHMYAiADKAlCCbpIBpIBAxD0AyJOChJQcm9qZWN0UGVybWlzc2lvbnMSHAoHcHJvamVjdBgBIAEoCUILukgIcgagtK6xAgESGgoHbWV0aG9kcxgCIAMoCUIJukgGkgEDEPQDIksKEVRlbmFudFBlcm1pc3Npb25zEhoKBWxvZ2luGAEgASgJQgu6SAhyBpi0rrECARIaCgdtZXRob2RzGAIgAygJQgm6SAaSAQMQ9AMiLgoQQWRtaW5QZXJtaXNzaW9ucxIaCgdtZXRob2RzGAIgAygJQgm6SAaSAQMQ9AMiSwoSTWFjaGluZVBlcm1pc3Npb25zEhkKBHV1aWQYASABKAlCC7pICHIGqLSusQIBEhoKB21ldGhvZHMYAiADKAlCCbpIBpIBAxD0AyIuChBJbmZyYVBlcm1pc3Npb25zEhoKB21ldGhvZHMYAiADKAlCCbpIBpIBAxD0AyJVChpUb2tlblNlcnZpY2VDcmVhdGVSZXNwb25zZRInCgV0b2tlbhgBIAEoCzIYLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuEg4KBnNlY3JldBgCIAEoCSJHChdUb2tlblNlcnZpY2VMaXN0UmVxdWVzdBIsCgVxdWVyeRgBIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuUXVlcnkiRAoYVG9rZW5TZXJ2aWNlTGlzdFJlc3BvbnNlEigKBnRva2VucxgBIAMoCzIYLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuIjMKGVRva2VuU2VydmljZVJldm9rZVJlcXVlc3QSFgoEdXVpZBgBIAEoCUIIukgFcgOwAQEiHAoaVG9rZW5TZXJ2aWNlUmV2b2tlUmVzcG9uc2UiiQgKGVRva2VuU2VydmljZVVwZGF0ZVJlcXVlc3QSFgoEdXVpZBgBIAEoCUIIukgFcgOwAQESOgoLdXBkYXRlX21ldGEYAiABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5VcGRhdGVNZXRhQga6SAPIAQASJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSACIAQESPwoLcGVybWlzc2lvbnMYBCADKAsyKi5tZXRhbHN0YWNrLmFwaS52Mi5QZXJtaXNzaW9uc0J5VmlzaWJpbGl0eRJwCg1wcm9qZWN0X3JvbGVzGAUgAygLMj4ubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlVXBkYXRlUmVxdWVzdC5Qcm9qZWN0Um9sZXNFbnRyeUIZukgWmgETwJW4sQIByJW4sQIBKgWCAQIQARJuCgx0ZW5hbnRfcm9sZXMYBiADKAsyPS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VVcGRhdGVSZXF1ZXN0LlRlbmFudFJvbGVzRW50cnlCGbpIFpoBE8CVuLECAdCVuLECASoFggECEAESPwoKYWRtaW5fcm9sZRgHIAEoDjIcLm1ldGFsc3RhY2suYXBpLnYyLkFkbWluUm9sZUIIukgFggECEAFIAYgBARI/CgppbmZyYV9yb2xlGAggASgOMhwubWV0YWxzdGFjay5hcGkudjIuSW5mcmFSb2xlQgi6SAWCAQIQAUgCiAEBEnAKDW1hY2hpbmVfcm9sZXMYCSADKAsyPi5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VVcGRhdGVSZXF1ZXN0Lk1hY2hpbmVSb2xlc0VudHJ5Qhm6SBaaARPAlbixAgHYlbixAgEqBYIBAhABEi8KBmxhYmVscxgKIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVscxpTChFQcm9qZWN0Um9sZXNFbnRyeRILCgNrZXkYASABKAkSLQoFdmFsdWUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZToCOAEaUQoQVGVuYW50Um9sZXNFbnRyeRILCgNrZXkYASABKAkSLAoFdmFsdWUYAiABKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRSb2xlOgI4ARpTChFNYWNoaW5lUm9sZXNFbnRyeRILCgNrZXkYASABKAkSLQoFdmFsdWUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5NYWNoaW5lUm9sZToCOAFCDgoMX2Rlc2NyaXB0aW9uQg0KC19hZG1pbl9yb2xlQg0KC19pbmZyYV9yb2xlIkUKGlRva2VuU2VydmljZVVwZGF0ZVJlc3BvbnNlEicKBXRva2VuGAEgASgLMhgubWV0YWxzdGFjay5hcGkudjIuVG9rZW4iMAoWVG9rZW5TZXJ2aWNlR2V0UmVxdWVzdBIWCgR1dWlkGAEgASgJQgi6SAVyA7ABASJCChdUb2tlblNlcnZpY2VHZXRSZXNwb25zZRInCgV0b2tlbhgBIAEoCzIYLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuIhwKGlRva2VuU2VydmljZVJlZnJlc2hSZXF1ZXN0IlYKG1Rva2VuU2VydmljZVJlZnJlc2hSZXNwb25zZRInCgV0b2tlbhgBIAEoCzIYLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuEg4KBnNlY3JldBgCIAEoCSKdAgoKVG9rZW5RdWVyeRIbCgR1dWlkGAEgASgJQgi6SAVyA7ABAUgAiAEBEh4KBHVzZXIYAiABKAlCC7pICHIG+LOusQIBSAGIAQESJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSAKIAQESLgoGbGFiZWxzGAQgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAOIAQESPwoKdG9rZW5fdHlwZRgFIAEoDjIcLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuVHlwZUIIukgFggECEAFIBIgBAUIHCgVfdXVpZEIHCgVfdXNlckIOCgxfZGVzY3JpcHRpb25CCQoHX2xhYmVsc0INCgtfdG9rZW5fdHlwZSpQCglUb2tlblR5cGUSGgoWVE9LRU5fVFlQRV9VTlNQRUNJRklFRBAAEhIKDlRPS0VOX1RZUEVfQVBJEAESEwoPVE9LRU5fVFlQRV9VU0VSEAIyqAUKDFRva2VuU2VydmljZRJmCgNHZXQSKS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VHZXRSZXF1ZXN0GioubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlR2V0UmVzcG9uc2UiCNjzGALg8xgBEm8KBkNyZWF0ZRIsLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZUNyZWF0ZVJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VDcmVhdGVSZXNwb25zZSII2PMYAuDzGAESbwoGVXBkYXRlEiwubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlVXBkYXRlUmVxdWVzdBotLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZVVwZGF0ZVJlc3BvbnNlIgjY8xgC4PMYARJpCgRMaXN0EioubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlTGlzdFJlcXVlc3QaKy5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VMaXN0UmVzcG9uc2UiCNjzGALg8xgBEm8KBlJldm9rZRIsLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZVJldm9rZVJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VSZXZva2VSZXNwb25zZSII2PMYAuDzGAEScgoHUmVmcmVzaBItLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZVJlZnJlc2hSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlUmVmcmVzaFJlc3BvbnNlIgjY8xgC4PMYAULAAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgpUb2tlblByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_duration, 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.Token.
15
15
  * Use `create(TokenSchema)` to create a new message.
@@ -25,66 +25,106 @@ export const TokenServiceCreateRequestSchema = /*@__PURE__*/ messageDesc(file_me
25
25
  * Use `create(MethodPermissionSchema)` to create a new message.
26
26
  */
27
27
  export const MethodPermissionSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 2);
28
+ /**
29
+ * Describes the message metalstack.api.v2.PermissionsByVisibility.
30
+ * Use `create(PermissionsByVisibilitySchema)` to create a new message.
31
+ */
32
+ export const PermissionsByVisibilitySchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 3);
33
+ /**
34
+ * Describes the message metalstack.api.v2.PublicPermissions.
35
+ * Use `create(PublicPermissionsSchema)` to create a new message.
36
+ */
37
+ export const PublicPermissionsSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 4);
38
+ /**
39
+ * Describes the message metalstack.api.v2.SelfPermissions.
40
+ * Use `create(SelfPermissionsSchema)` to create a new message.
41
+ */
42
+ export const SelfPermissionsSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 5);
43
+ /**
44
+ * Describes the message metalstack.api.v2.ProjectPermissions.
45
+ * Use `create(ProjectPermissionsSchema)` to create a new message.
46
+ */
47
+ export const ProjectPermissionsSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 6);
48
+ /**
49
+ * Describes the message metalstack.api.v2.TenantPermissions.
50
+ * Use `create(TenantPermissionsSchema)` to create a new message.
51
+ */
52
+ export const TenantPermissionsSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 7);
53
+ /**
54
+ * Describes the message metalstack.api.v2.AdminPermissions.
55
+ * Use `create(AdminPermissionsSchema)` to create a new message.
56
+ */
57
+ export const AdminPermissionsSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 8);
58
+ /**
59
+ * Describes the message metalstack.api.v2.MachinePermissions.
60
+ * Use `create(MachinePermissionsSchema)` to create a new message.
61
+ */
62
+ export const MachinePermissionsSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 9);
63
+ /**
64
+ * Describes the message metalstack.api.v2.InfraPermissions.
65
+ * Use `create(InfraPermissionsSchema)` to create a new message.
66
+ */
67
+ export const InfraPermissionsSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 10);
28
68
  /**
29
69
  * Describes the message metalstack.api.v2.TokenServiceCreateResponse.
30
70
  * Use `create(TokenServiceCreateResponseSchema)` to create a new message.
31
71
  */
32
- export const TokenServiceCreateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 3);
72
+ export const TokenServiceCreateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 11);
33
73
  /**
34
74
  * Describes the message metalstack.api.v2.TokenServiceListRequest.
35
75
  * Use `create(TokenServiceListRequestSchema)` to create a new message.
36
76
  */
37
- export const TokenServiceListRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 4);
77
+ export const TokenServiceListRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 12);
38
78
  /**
39
79
  * Describes the message metalstack.api.v2.TokenServiceListResponse.
40
80
  * Use `create(TokenServiceListResponseSchema)` to create a new message.
41
81
  */
42
- export const TokenServiceListResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 5);
82
+ export const TokenServiceListResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 13);
43
83
  /**
44
84
  * Describes the message metalstack.api.v2.TokenServiceRevokeRequest.
45
85
  * Use `create(TokenServiceRevokeRequestSchema)` to create a new message.
46
86
  */
47
- export const TokenServiceRevokeRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 6);
87
+ export const TokenServiceRevokeRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 14);
48
88
  /**
49
89
  * Describes the message metalstack.api.v2.TokenServiceRevokeResponse.
50
90
  * Use `create(TokenServiceRevokeResponseSchema)` to create a new message.
51
91
  */
52
- export const TokenServiceRevokeResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 7);
92
+ export const TokenServiceRevokeResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 15);
53
93
  /**
54
94
  * Describes the message metalstack.api.v2.TokenServiceUpdateRequest.
55
95
  * Use `create(TokenServiceUpdateRequestSchema)` to create a new message.
56
96
  */
57
- export const TokenServiceUpdateRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 8);
97
+ export const TokenServiceUpdateRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 16);
58
98
  /**
59
99
  * Describes the message metalstack.api.v2.TokenServiceUpdateResponse.
60
100
  * Use `create(TokenServiceUpdateResponseSchema)` to create a new message.
61
101
  */
62
- export const TokenServiceUpdateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 9);
102
+ export const TokenServiceUpdateResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 17);
63
103
  /**
64
104
  * Describes the message metalstack.api.v2.TokenServiceGetRequest.
65
105
  * Use `create(TokenServiceGetRequestSchema)` to create a new message.
66
106
  */
67
- export const TokenServiceGetRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 10);
107
+ export const TokenServiceGetRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 18);
68
108
  /**
69
109
  * Describes the message metalstack.api.v2.TokenServiceGetResponse.
70
110
  * Use `create(TokenServiceGetResponseSchema)` to create a new message.
71
111
  */
72
- export const TokenServiceGetResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 11);
112
+ export const TokenServiceGetResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 19);
73
113
  /**
74
114
  * Describes the message metalstack.api.v2.TokenServiceRefreshRequest.
75
115
  * Use `create(TokenServiceRefreshRequestSchema)` to create a new message.
76
116
  */
77
- export const TokenServiceRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 12);
117
+ export const TokenServiceRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 20);
78
118
  /**
79
119
  * Describes the message metalstack.api.v2.TokenServiceRefreshResponse.
80
120
  * Use `create(TokenServiceRefreshResponseSchema)` to create a new message.
81
121
  */
82
- export const TokenServiceRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 13);
122
+ export const TokenServiceRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 21);
83
123
  /**
84
124
  * Describes the message metalstack.api.v2.TokenQuery.
85
125
  * Use `create(TokenQuerySchema)` to create a new message.
86
126
  */
87
- export const TokenQuerySchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 14);
127
+ export const TokenQuerySchema = /*@__PURE__*/ messageDesc(file_metalstack_api_v2_token, 22);
88
128
  /**
89
129
  * TokenType specifies different use cases of tokens
90
130
  *
@@ -16,7 +16,7 @@ import type { Message } from "@bufbuild/protobuf";
16
16
  * Describes the file metalstack/api/v2/token.proto.
17
17
  */
18
18
  export const file_metalstack_api_v2_token: GenFile = /*@__PURE__*/
19
- fileDesc("Ch1tZXRhbHN0YWNrL2FwaS92Mi90b2tlbi5wcm90bxIRbWV0YWxzdGFjay5hcGkudjIilQgKBVRva2VuEhYKBHV1aWQYASABKAlCCLpIBXIDsAEBEhkKBHVzZXIYAiABKAlCC7pICHIG+LOusQIBEiUKBG1ldGEYAyABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEiAKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECARJDCgtwZXJtaXNzaW9ucxgFIAMoCzIjLm1ldGFsc3RhY2suYXBpLnYyLk1ldGhvZFBlcm1pc3Npb25CCbpIBpIBAxD0AxIrCgdleHBpcmVzGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBItCglpc3N1ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKCnRva2VuX3R5cGUYCCABKA4yHC5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblR5cGVCCLpIBYIBAhABElwKDXByb2plY3Rfcm9sZXMYCSADKAsyKi5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlbi5Qcm9qZWN0Um9sZXNFbnRyeUIZukgWmgETwJW4sQIByJW4sQIBKgWCAQIQARJaCgx0ZW5hbnRfcm9sZXMYCiADKAsyKS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlbi5UZW5hbnRSb2xlc0VudHJ5Qhm6SBaaARPAlbixAgHQlbixAgEqBYIBAhABEj8KCmFkbWluX3JvbGUYCyABKA4yHC5tZXRhbHN0YWNrLmFwaS52Mi5BZG1pblJvbGVCCLpIBYIBAhABSACIAQESPwoKaW5mcmFfcm9sZRgMIAEoDjIcLm1ldGFsc3RhY2suYXBpLnYyLkluZnJhUm9sZUIIukgFggECEAFIAYgBARJcCg1tYWNoaW5lX3JvbGVzGA0gAygLMioubWV0YWxzdGFjay5hcGkudjIuVG9rZW4uTWFjaGluZVJvbGVzRW50cnlCGbpIFpoBE8CVuLECAdiVuLECASoFggECEAEaUwoRUHJvamVjdFJvbGVzRW50cnkSCwoDa2V5GAEgASgJEi0KBXZhbHVlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGU6AjgBGlEKEFRlbmFudFJvbGVzRW50cnkSCwoDa2V5GAEgASgJEiwKBXZhbHVlGAIgASgOMh0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50Um9sZToCOAEaUwoRTWFjaGluZVJvbGVzRW50cnkSCwoDa2V5GAEgASgJEi0KBXZhbHVlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZVJvbGU6AjgBQg0KC19hZG1pbl9yb2xlQg0KC19pbmZyYV9yb2xlIt0HChlUb2tlblNlcnZpY2VDcmVhdGVSZXF1ZXN0EiAKC2Rlc2NyaXB0aW9uGAEgASgJQgu6SAhyBsizrrECARJCCgtwZXJtaXNzaW9ucxgCIAMoCzIjLm1ldGFsc3RhY2suYXBpLnYyLk1ldGhvZFBlcm1pc3Npb25CCLpIBZIBAhBkEj4KB2V4cGlyZXMYAyABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CErpID6oBDBoFCIHnhA8yAwjYBBJwCg1wcm9qZWN0X3JvbGVzGAQgAygLMj4ubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlQ3JlYXRlUmVxdWVzdC5Qcm9qZWN0Um9sZXNFbnRyeUIZukgWmgETwJW4sQIByJW4sQIBKgWCAQIQARJuCgx0ZW5hbnRfcm9sZXMYBSADKAsyPS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VDcmVhdGVSZXF1ZXN0LlRlbmFudFJvbGVzRW50cnlCGbpIFpoBE8CVuLECAdCVuLECASoFggECEAESPwoKYWRtaW5fcm9sZRgGIAEoDjIcLm1ldGFsc3RhY2suYXBpLnYyLkFkbWluUm9sZUIIukgFggECEAFIAIgBARI/CgppbmZyYV9yb2xlGAcgASgOMhwubWV0YWxzdGFjay5hcGkudjIuSW5mcmFSb2xlQgi6SAWCAQIQAUgBiAEBEnAKDW1hY2hpbmVfcm9sZXMYCCADKAsyPi5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VDcmVhdGVSZXF1ZXN0Lk1hY2hpbmVSb2xlc0VudHJ5Qhm6SBaaARPAlbixAgHYlbixAgEqBYIBAhABEikKBmxhYmVscxgJIAEoCzIZLm1ldGFsc3RhY2suYXBpLnYyLkxhYmVscxpTChFQcm9qZWN0Um9sZXNFbnRyeRILCgNrZXkYASABKAkSLQoFdmFsdWUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZToCOAEaUQoQVGVuYW50Um9sZXNFbnRyeRILCgNrZXkYASABKAkSLAoFdmFsdWUYAiABKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRSb2xlOgI4ARpTChFNYWNoaW5lUm9sZXNFbnRyeRILCgNrZXkYASABKAkSLQoFdmFsdWUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5NYWNoaW5lUm9sZToCOAFCDQoLX2FkbWluX3JvbGVCDQoLX2luZnJhX3JvbGUiSQoQTWV0aG9kUGVybWlzc2lvbhIZCgdzdWJqZWN0GAEgASgJQgi6SAVyAxiAAhIaCgdtZXRob2RzGAIgAygJQgm6SAaSAQMQ9AMiVQoaVG9rZW5TZXJ2aWNlQ3JlYXRlUmVzcG9uc2USJwoFdG9rZW4YASABKAsyGC5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlbhIOCgZzZWNyZXQYAiABKAkiRwoXVG9rZW5TZXJ2aWNlTGlzdFJlcXVlc3QSLAoFcXVlcnkYASABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblF1ZXJ5IkQKGFRva2VuU2VydmljZUxpc3RSZXNwb25zZRIoCgZ0b2tlbnMYASADKAsyGC5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlbiIzChlUb2tlblNlcnZpY2VSZXZva2VSZXF1ZXN0EhYKBHV1aWQYASABKAlCCLpIBXIDsAEBIhwKGlRva2VuU2VydmljZVJldm9rZVJlc3BvbnNlIoIIChlUb2tlblNlcnZpY2VVcGRhdGVSZXF1ZXN0EhYKBHV1aWQYASABKAlCCLpIBXIDsAEBEjoKC3VwZGF0ZV9tZXRhGAIgASgLMh0ubWV0YWxzdGFjay5hcGkudjIuVXBkYXRlTWV0YUIGukgDyAEAEiUKC2Rlc2NyaXB0aW9uGAMgASgJQgu6SAhyBsizrrECAUgAiAEBEjgKC3Blcm1pc3Npb25zGAQgAygLMiMubWV0YWxzdGFjay5hcGkudjIuTWV0aG9kUGVybWlzc2lvbhJwCg1wcm9qZWN0X3JvbGVzGAUgAygLMj4ubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlVXBkYXRlUmVxdWVzdC5Qcm9qZWN0Um9sZXNFbnRyeUIZukgWmgETwJW4sQIByJW4sQIBKgWCAQIQARJuCgx0ZW5hbnRfcm9sZXMYBiADKAsyPS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VVcGRhdGVSZXF1ZXN0LlRlbmFudFJvbGVzRW50cnlCGbpIFpoBE8CVuLECAdCVuLECASoFggECEAESPwoKYWRtaW5fcm9sZRgHIAEoDjIcLm1ldGFsc3RhY2suYXBpLnYyLkFkbWluUm9sZUIIukgFggECEAFIAYgBARI/CgppbmZyYV9yb2xlGAggASgOMhwubWV0YWxzdGFjay5hcGkudjIuSW5mcmFSb2xlQgi6SAWCAQIQAUgCiAEBEnAKDW1hY2hpbmVfcm9sZXMYCSADKAsyPi5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VVcGRhdGVSZXF1ZXN0Lk1hY2hpbmVSb2xlc0VudHJ5Qhm6SBaaARPAlbixAgHYlbixAgEqBYIBAhABEi8KBmxhYmVscxgKIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVscxpTChFQcm9qZWN0Um9sZXNFbnRyeRILCgNrZXkYASABKAkSLQoFdmFsdWUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZToCOAEaUQoQVGVuYW50Um9sZXNFbnRyeRILCgNrZXkYASABKAkSLAoFdmFsdWUYAiABKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRSb2xlOgI4ARpTChFNYWNoaW5lUm9sZXNFbnRyeRILCgNrZXkYASABKAkSLQoFdmFsdWUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5NYWNoaW5lUm9sZToCOAFCDgoMX2Rlc2NyaXB0aW9uQg0KC19hZG1pbl9yb2xlQg0KC19pbmZyYV9yb2xlIkUKGlRva2VuU2VydmljZVVwZGF0ZVJlc3BvbnNlEicKBXRva2VuGAEgASgLMhgubWV0YWxzdGFjay5hcGkudjIuVG9rZW4iMAoWVG9rZW5TZXJ2aWNlR2V0UmVxdWVzdBIWCgR1dWlkGAEgASgJQgi6SAVyA7ABASJCChdUb2tlblNlcnZpY2VHZXRSZXNwb25zZRInCgV0b2tlbhgBIAEoCzIYLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuIhwKGlRva2VuU2VydmljZVJlZnJlc2hSZXF1ZXN0IlYKG1Rva2VuU2VydmljZVJlZnJlc2hSZXNwb25zZRInCgV0b2tlbhgBIAEoCzIYLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuEg4KBnNlY3JldBgCIAEoCSKdAgoKVG9rZW5RdWVyeRIbCgR1dWlkGAEgASgJQgi6SAVyA7ABAUgAiAEBEh4KBHVzZXIYAiABKAlCC7pICHIG+LOusQIBSAGIAQESJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSAKIAQESLgoGbGFiZWxzGAQgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAOIAQESPwoKdG9rZW5fdHlwZRgFIAEoDjIcLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuVHlwZUIIukgFggECEAFIBIgBAUIHCgVfdXVpZEIHCgVfdXNlckIOCgxfZGVzY3JpcHRpb25CCQoHX2xhYmVsc0INCgtfdG9rZW5fdHlwZSpQCglUb2tlblR5cGUSGgoWVE9LRU5fVFlQRV9VTlNQRUNJRklFRBAAEhIKDlRPS0VOX1RZUEVfQVBJEAESEwoPVE9LRU5fVFlQRV9VU0VSEAIyqAUKDFRva2VuU2VydmljZRJmCgNHZXQSKS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VHZXRSZXF1ZXN0GioubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlR2V0UmVzcG9uc2UiCNjzGALg8xgBEm8KBkNyZWF0ZRIsLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZUNyZWF0ZVJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VDcmVhdGVSZXNwb25zZSII2PMYAuDzGAESbwoGVXBkYXRlEiwubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlVXBkYXRlUmVxdWVzdBotLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZVVwZGF0ZVJlc3BvbnNlIgjY8xgC4PMYARJpCgRMaXN0EioubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlTGlzdFJlcXVlc3QaKy5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VMaXN0UmVzcG9uc2UiCNjzGALg8xgBEm8KBlJldm9rZRIsLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZVJldm9rZVJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VSZXZva2VSZXNwb25zZSII2PMYAuDzGAEScgoHUmVmcmVzaBItLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZVJlZnJlc2hSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlUmVmcmVzaFJlc3BvbnNlIgjY8xgC4PMYAULAAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgpUb2tlblByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
19
+ fileDesc("Ch1tZXRhbHN0YWNrL2FwaS92Mi90b2tlbi5wcm90bxIRbWV0YWxzdGFjay5hcGkudjIilQgKBVRva2VuEhYKBHV1aWQYASABKAlCCLpIBXIDsAEBEhkKBHVzZXIYAiABKAlCC7pICHIG+LOusQIBEiUKBG1ldGEYAyABKAsyFy5tZXRhbHN0YWNrLmFwaS52Mi5NZXRhEiAKC2Rlc2NyaXB0aW9uGAQgASgJQgu6SAhyBsizrrECARJDCgtwZXJtaXNzaW9ucxgFIAMoCzIjLm1ldGFsc3RhY2suYXBpLnYyLk1ldGhvZFBlcm1pc3Npb25CCbpIBpIBAxD0AxIrCgdleHBpcmVzGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBItCglpc3N1ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKCnRva2VuX3R5cGUYCCABKA4yHC5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblR5cGVCCLpIBYIBAhABElwKDXByb2plY3Rfcm9sZXMYCSADKAsyKi5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlbi5Qcm9qZWN0Um9sZXNFbnRyeUIZukgWmgETwJW4sQIByJW4sQIBKgWCAQIQARJaCgx0ZW5hbnRfcm9sZXMYCiADKAsyKS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlbi5UZW5hbnRSb2xlc0VudHJ5Qhm6SBaaARPAlbixAgHQlbixAgEqBYIBAhABEj8KCmFkbWluX3JvbGUYCyABKA4yHC5tZXRhbHN0YWNrLmFwaS52Mi5BZG1pblJvbGVCCLpIBYIBAhABSACIAQESPwoKaW5mcmFfcm9sZRgMIAEoDjIcLm1ldGFsc3RhY2suYXBpLnYyLkluZnJhUm9sZUIIukgFggECEAFIAYgBARJcCg1tYWNoaW5lX3JvbGVzGA0gAygLMioubWV0YWxzdGFjay5hcGkudjIuVG9rZW4uTWFjaGluZVJvbGVzRW50cnlCGbpIFpoBE8CVuLECAdiVuLECASoFggECEAEaUwoRUHJvamVjdFJvbGVzRW50cnkSCwoDa2V5GAEgASgJEi0KBXZhbHVlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGU6AjgBGlEKEFRlbmFudFJvbGVzRW50cnkSCwoDa2V5GAEgASgJEiwKBXZhbHVlGAIgASgOMh0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50Um9sZToCOAEaUwoRTWFjaGluZVJvbGVzRW50cnkSCwoDa2V5GAEgASgJEi0KBXZhbHVlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZVJvbGU6AjgBQg0KC19hZG1pbl9yb2xlQg0KC19pbmZyYV9yb2xlIuQHChlUb2tlblNlcnZpY2VDcmVhdGVSZXF1ZXN0EiAKC2Rlc2NyaXB0aW9uGAEgASgJQgu6SAhyBsizrrECARJJCgtwZXJtaXNzaW9ucxgCIAMoCzIqLm1ldGFsc3RhY2suYXBpLnYyLlBlcm1pc3Npb25zQnlWaXNpYmlsaXR5Qgi6SAWSAQIQZBI+CgdleHBpcmVzGAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQhK6SA+qAQwaBQiB54QPMgMI2AQScAoNcHJvamVjdF9yb2xlcxgEIAMoCzI+Lm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZUNyZWF0ZVJlcXVlc3QuUHJvamVjdFJvbGVzRW50cnlCGbpIFpoBE8CVuLECAciVuLECASoFggECEAESbgoMdGVuYW50X3JvbGVzGAUgAygLMj0ubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlQ3JlYXRlUmVxdWVzdC5UZW5hbnRSb2xlc0VudHJ5Qhm6SBaaARPAlbixAgHQlbixAgEqBYIBAhABEj8KCmFkbWluX3JvbGUYBiABKA4yHC5tZXRhbHN0YWNrLmFwaS52Mi5BZG1pblJvbGVCCLpIBYIBAhABSACIAQESPwoKaW5mcmFfcm9sZRgHIAEoDjIcLm1ldGFsc3RhY2suYXBpLnYyLkluZnJhUm9sZUIIukgFggECEAFIAYgBARJwCg1tYWNoaW5lX3JvbGVzGAggAygLMj4ubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlQ3JlYXRlUmVxdWVzdC5NYWNoaW5lUm9sZXNFbnRyeUIZukgWmgETwJW4sQIB2JW4sQIBKgWCAQIQARIpCgZsYWJlbHMYCSABKAsyGS5tZXRhbHN0YWNrLmFwaS52Mi5MYWJlbHMaUwoRUHJvamVjdFJvbGVzRW50cnkSCwoDa2V5GAEgASgJEi0KBXZhbHVlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFJvbGU6AjgBGlEKEFRlbmFudFJvbGVzRW50cnkSCwoDa2V5GAEgASgJEiwKBXZhbHVlGAIgASgOMh0ubWV0YWxzdGFjay5hcGkudjIuVGVuYW50Um9sZToCOAEaUwoRTWFjaGluZVJvbGVzRW50cnkSCwoDa2V5GAEgASgJEi0KBXZhbHVlGAIgASgOMh4ubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZVJvbGU6AjgBQg0KC19hZG1pbl9yb2xlQg0KC19pbmZyYV9yb2xlIkkKEE1ldGhvZFBlcm1pc3Npb24SGQoHc3ViamVjdBgBIAEoCUIIukgFcgMYgAISGgoHbWV0aG9kcxgCIAMoCUIJukgGkgEDEPQDIqsDChdQZXJtaXNzaW9uc0J5VmlzaWJpbGl0eRI2CgZwdWJsaWMYASABKAsyJC5tZXRhbHN0YWNrLmFwaS52Mi5QdWJsaWNQZXJtaXNzaW9uc0gAEjIKBHNlbGYYAiABKAsyIi5tZXRhbHN0YWNrLmFwaS52Mi5TZWxmUGVybWlzc2lvbnNIABI4Cgdwcm9qZWN0GAMgASgLMiUubWV0YWxzdGFjay5hcGkudjIuUHJvamVjdFBlcm1pc3Npb25zSAASNgoGdGVuYW50GAQgASgLMiQubWV0YWxzdGFjay5hcGkudjIuVGVuYW50UGVybWlzc2lvbnNIABI0CgVhZG1pbhgFIAEoCzIjLm1ldGFsc3RhY2suYXBpLnYyLkFkbWluUGVybWlzc2lvbnNIABI4CgdtYWNoaW5lGAYgASgLMiUubWV0YWxzdGFjay5hcGkudjIuTWFjaGluZVBlcm1pc3Npb25zSAASNAoFaW5mcmEYByABKAsyIy5tZXRhbHN0YWNrLmFwaS52Mi5JbmZyYVBlcm1pc3Npb25zSABCDAoKdmlzaWJpbGl0eSIvChFQdWJsaWNQZXJtaXNzaW9ucxIaCgdtZXRob2RzGAIgAygJQgm6SAaSAQMQ9AMiLQoPU2VsZlBlcm1pc3Npb25zEhoKB21ldGhvZHMYAiADKAlCCbpIBpIBAxD0AyJOChJQcm9qZWN0UGVybWlzc2lvbnMSHAoHcHJvamVjdBgBIAEoCUILukgIcgagtK6xAgESGgoHbWV0aG9kcxgCIAMoCUIJukgGkgEDEPQDIksKEVRlbmFudFBlcm1pc3Npb25zEhoKBWxvZ2luGAEgASgJQgu6SAhyBpi0rrECARIaCgdtZXRob2RzGAIgAygJQgm6SAaSAQMQ9AMiLgoQQWRtaW5QZXJtaXNzaW9ucxIaCgdtZXRob2RzGAIgAygJQgm6SAaSAQMQ9AMiSwoSTWFjaGluZVBlcm1pc3Npb25zEhkKBHV1aWQYASABKAlCC7pICHIGqLSusQIBEhoKB21ldGhvZHMYAiADKAlCCbpIBpIBAxD0AyIuChBJbmZyYVBlcm1pc3Npb25zEhoKB21ldGhvZHMYAiADKAlCCbpIBpIBAxD0AyJVChpUb2tlblNlcnZpY2VDcmVhdGVSZXNwb25zZRInCgV0b2tlbhgBIAEoCzIYLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuEg4KBnNlY3JldBgCIAEoCSJHChdUb2tlblNlcnZpY2VMaXN0UmVxdWVzdBIsCgVxdWVyeRgBIAEoCzIdLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuUXVlcnkiRAoYVG9rZW5TZXJ2aWNlTGlzdFJlc3BvbnNlEigKBnRva2VucxgBIAMoCzIYLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuIjMKGVRva2VuU2VydmljZVJldm9rZVJlcXVlc3QSFgoEdXVpZBgBIAEoCUIIukgFcgOwAQEiHAoaVG9rZW5TZXJ2aWNlUmV2b2tlUmVzcG9uc2UiiQgKGVRva2VuU2VydmljZVVwZGF0ZVJlcXVlc3QSFgoEdXVpZBgBIAEoCUIIukgFcgOwAQESOgoLdXBkYXRlX21ldGEYAiABKAsyHS5tZXRhbHN0YWNrLmFwaS52Mi5VcGRhdGVNZXRhQga6SAPIAQASJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSACIAQESPwoLcGVybWlzc2lvbnMYBCADKAsyKi5tZXRhbHN0YWNrLmFwaS52Mi5QZXJtaXNzaW9uc0J5VmlzaWJpbGl0eRJwCg1wcm9qZWN0X3JvbGVzGAUgAygLMj4ubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlVXBkYXRlUmVxdWVzdC5Qcm9qZWN0Um9sZXNFbnRyeUIZukgWmgETwJW4sQIByJW4sQIBKgWCAQIQARJuCgx0ZW5hbnRfcm9sZXMYBiADKAsyPS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VVcGRhdGVSZXF1ZXN0LlRlbmFudFJvbGVzRW50cnlCGbpIFpoBE8CVuLECAdCVuLECASoFggECEAESPwoKYWRtaW5fcm9sZRgHIAEoDjIcLm1ldGFsc3RhY2suYXBpLnYyLkFkbWluUm9sZUIIukgFggECEAFIAYgBARI/CgppbmZyYV9yb2xlGAggASgOMhwubWV0YWxzdGFjay5hcGkudjIuSW5mcmFSb2xlQgi6SAWCAQIQAUgCiAEBEnAKDW1hY2hpbmVfcm9sZXMYCSADKAsyPi5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VVcGRhdGVSZXF1ZXN0Lk1hY2hpbmVSb2xlc0VudHJ5Qhm6SBaaARPAlbixAgHYlbixAgEqBYIBAhABEi8KBmxhYmVscxgKIAEoCzIfLm1ldGFsc3RhY2suYXBpLnYyLlVwZGF0ZUxhYmVscxpTChFQcm9qZWN0Um9sZXNFbnRyeRILCgNrZXkYASABKAkSLQoFdmFsdWUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5Qcm9qZWN0Um9sZToCOAEaUQoQVGVuYW50Um9sZXNFbnRyeRILCgNrZXkYASABKAkSLAoFdmFsdWUYAiABKA4yHS5tZXRhbHN0YWNrLmFwaS52Mi5UZW5hbnRSb2xlOgI4ARpTChFNYWNoaW5lUm9sZXNFbnRyeRILCgNrZXkYASABKAkSLQoFdmFsdWUYAiABKA4yHi5tZXRhbHN0YWNrLmFwaS52Mi5NYWNoaW5lUm9sZToCOAFCDgoMX2Rlc2NyaXB0aW9uQg0KC19hZG1pbl9yb2xlQg0KC19pbmZyYV9yb2xlIkUKGlRva2VuU2VydmljZVVwZGF0ZVJlc3BvbnNlEicKBXRva2VuGAEgASgLMhgubWV0YWxzdGFjay5hcGkudjIuVG9rZW4iMAoWVG9rZW5TZXJ2aWNlR2V0UmVxdWVzdBIWCgR1dWlkGAEgASgJQgi6SAVyA7ABASJCChdUb2tlblNlcnZpY2VHZXRSZXNwb25zZRInCgV0b2tlbhgBIAEoCzIYLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuIhwKGlRva2VuU2VydmljZVJlZnJlc2hSZXF1ZXN0IlYKG1Rva2VuU2VydmljZVJlZnJlc2hSZXNwb25zZRInCgV0b2tlbhgBIAEoCzIYLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuEg4KBnNlY3JldBgCIAEoCSKdAgoKVG9rZW5RdWVyeRIbCgR1dWlkGAEgASgJQgi6SAVyA7ABAUgAiAEBEh4KBHVzZXIYAiABKAlCC7pICHIG+LOusQIBSAGIAQESJQoLZGVzY3JpcHRpb24YAyABKAlCC7pICHIGyLOusQIBSAKIAQESLgoGbGFiZWxzGAQgASgLMhkubWV0YWxzdGFjay5hcGkudjIuTGFiZWxzSAOIAQESPwoKdG9rZW5fdHlwZRgFIAEoDjIcLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuVHlwZUIIukgFggECEAFIBIgBAUIHCgVfdXVpZEIHCgVfdXNlckIOCgxfZGVzY3JpcHRpb25CCQoHX2xhYmVsc0INCgtfdG9rZW5fdHlwZSpQCglUb2tlblR5cGUSGgoWVE9LRU5fVFlQRV9VTlNQRUNJRklFRBAAEhIKDlRPS0VOX1RZUEVfQVBJEAESEwoPVE9LRU5fVFlQRV9VU0VSEAIyqAUKDFRva2VuU2VydmljZRJmCgNHZXQSKS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VHZXRSZXF1ZXN0GioubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlR2V0UmVzcG9uc2UiCNjzGALg8xgBEm8KBkNyZWF0ZRIsLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZUNyZWF0ZVJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VDcmVhdGVSZXNwb25zZSII2PMYAuDzGAESbwoGVXBkYXRlEiwubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlVXBkYXRlUmVxdWVzdBotLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZVVwZGF0ZVJlc3BvbnNlIgjY8xgC4PMYARJpCgRMaXN0EioubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlTGlzdFJlcXVlc3QaKy5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VMaXN0UmVzcG9uc2UiCNjzGALg8xgBEm8KBlJldm9rZRIsLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZVJldm9rZVJlcXVlc3QaLS5tZXRhbHN0YWNrLmFwaS52Mi5Ub2tlblNlcnZpY2VSZXZva2VSZXNwb25zZSII2PMYAuDzGAEScgoHUmVmcmVzaBItLm1ldGFsc3RhY2suYXBpLnYyLlRva2VuU2VydmljZVJlZnJlc2hSZXF1ZXN0Gi4ubWV0YWxzdGFjay5hcGkudjIuVG9rZW5TZXJ2aWNlUmVmcmVzaFJlc3BvbnNlIgjY8xgC4PMYAULAAQoVY29tLm1ldGFsc3RhY2suYXBpLnYyQgpUb2tlblByb3RvUAFaNWdpdGh1Yi5jb20vbWV0YWwtc3RhY2svYXBpL2dvL21ldGFsc3RhY2svYXBpL3YyO2FwaXYyogIDTUFYqgIRTWV0YWxzdGFjay5BcGkuVjLKAhFNZXRhbHN0YWNrXEFwaVxWMuICHU1ldGFsc3RhY2tcQXBpXFYyXEdQQk1ldGFkYXRh6gITTWV0YWxzdGFjazo6QXBpOjpWMmIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_duration, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_predefined_rules]);
20
20
 
21
21
  /**
22
22
  * Token generates a jwt authentication token to access the api
@@ -153,9 +153,9 @@ export type TokenServiceCreateRequest = Message<"metalstack.api.v2.TokenServiceC
153
153
  /**
154
154
  * Permissions is a list of service methods this token can be used for
155
155
  *
156
- * @generated from field: repeated metalstack.api.v2.MethodPermission permissions = 2;
156
+ * @generated from field: repeated metalstack.api.v2.PermissionsByVisibility permissions = 2;
157
157
  */
158
- permissions: MethodPermission[];
158
+ permissions: PermissionsByVisibility[];
159
159
 
160
160
  /**
161
161
  * Expires gives the duration since now, after which this token can not be used anymore
@@ -247,6 +247,253 @@ export type MethodPermission = Message<"metalstack.api.v2.MethodPermission"> & {
247
247
  export const MethodPermissionSchema: GenMessage<MethodPermission> = /*@__PURE__*/
248
248
  messageDesc(file_metalstack_api_v2_token, 2);
249
249
 
250
+ /**
251
+ * PermissionsByVisibility contains method permissions by visibility
252
+ *
253
+ * @generated from message metalstack.api.v2.PermissionsByVisibility
254
+ */
255
+ export type PermissionsByVisibility = Message<"metalstack.api.v2.PermissionsByVisibility"> & {
256
+ /**
257
+ * Visibility defines the visibility of the requested method permissions
258
+ *
259
+ * @generated from oneof metalstack.api.v2.PermissionsByVisibility.visibility
260
+ */
261
+ visibility: {
262
+ /**
263
+ * PublicPermissions carries public method permissions
264
+ *
265
+ * @generated from field: metalstack.api.v2.PublicPermissions public = 1;
266
+ */
267
+ value: PublicPermissions;
268
+ case: "public";
269
+ } | {
270
+ /**
271
+ * SelfPermissions carries self method permissions
272
+ *
273
+ * @generated from field: metalstack.api.v2.SelfPermissions self = 2;
274
+ */
275
+ value: SelfPermissions;
276
+ case: "self";
277
+ } | {
278
+ /**
279
+ * ProjectPermissions carries project method permissions
280
+ *
281
+ * @generated from field: metalstack.api.v2.ProjectPermissions project = 3;
282
+ */
283
+ value: ProjectPermissions;
284
+ case: "project";
285
+ } | {
286
+ /**
287
+ * TenantPermissions carries tenant method permissions
288
+ *
289
+ * @generated from field: metalstack.api.v2.TenantPermissions tenant = 4;
290
+ */
291
+ value: TenantPermissions;
292
+ case: "tenant";
293
+ } | {
294
+ /**
295
+ * AdminPermissions carries admin method permissions
296
+ *
297
+ * @generated from field: metalstack.api.v2.AdminPermissions admin = 5;
298
+ */
299
+ value: AdminPermissions;
300
+ case: "admin";
301
+ } | {
302
+ /**
303
+ * MachinePermissions carries machine method permissions
304
+ *
305
+ * @generated from field: metalstack.api.v2.MachinePermissions machine = 6;
306
+ */
307
+ value: MachinePermissions;
308
+ case: "machine";
309
+ } | {
310
+ /**
311
+ * InfraPermissions carries infra method permissions
312
+ *
313
+ * @generated from field: metalstack.api.v2.InfraPermissions infra = 7;
314
+ */
315
+ value: InfraPermissions;
316
+ case: "infra";
317
+ } | { case: undefined; value?: undefined };
318
+ };
319
+
320
+ /**
321
+ * Describes the message metalstack.api.v2.PermissionsByVisibility.
322
+ * Use `create(PermissionsByVisibilitySchema)` to create a new message.
323
+ */
324
+ export const PermissionsByVisibilitySchema: GenMessage<PermissionsByVisibility> = /*@__PURE__*/
325
+ messageDesc(file_metalstack_api_v2_token, 3);
326
+
327
+ /**
328
+ * PublicPermissions carries public method permissions
329
+ *
330
+ * @generated from message metalstack.api.v2.PublicPermissions
331
+ */
332
+ export type PublicPermissions = Message<"metalstack.api.v2.PublicPermissions"> & {
333
+ /**
334
+ * Methods which should be accessible
335
+ *
336
+ * @generated from field: repeated string methods = 2;
337
+ */
338
+ methods: string[];
339
+ };
340
+
341
+ /**
342
+ * Describes the message metalstack.api.v2.PublicPermissions.
343
+ * Use `create(PublicPermissionsSchema)` to create a new message.
344
+ */
345
+ export const PublicPermissionsSchema: GenMessage<PublicPermissions> = /*@__PURE__*/
346
+ messageDesc(file_metalstack_api_v2_token, 4);
347
+
348
+ /**
349
+ * SelfPermissions carries self method permissions
350
+ *
351
+ * @generated from message metalstack.api.v2.SelfPermissions
352
+ */
353
+ export type SelfPermissions = Message<"metalstack.api.v2.SelfPermissions"> & {
354
+ /**
355
+ * Methods which should be accessible
356
+ *
357
+ * @generated from field: repeated string methods = 2;
358
+ */
359
+ methods: string[];
360
+ };
361
+
362
+ /**
363
+ * Describes the message metalstack.api.v2.SelfPermissions.
364
+ * Use `create(SelfPermissionsSchema)` to create a new message.
365
+ */
366
+ export const SelfPermissionsSchema: GenMessage<SelfPermissions> = /*@__PURE__*/
367
+ messageDesc(file_metalstack_api_v2_token, 5);
368
+
369
+ /**
370
+ * ProjectPermissions carries project method permissions
371
+ *
372
+ * @generated from message metalstack.api.v2.ProjectPermissions
373
+ */
374
+ export type ProjectPermissions = Message<"metalstack.api.v2.ProjectPermissions"> & {
375
+ /**
376
+ * asterisk (*) can be specified to match any subject
377
+ *
378
+ * @generated from field: string project = 1;
379
+ */
380
+ project: string;
381
+
382
+ /**
383
+ * Methods which should be accessible
384
+ *
385
+ * @generated from field: repeated string methods = 2;
386
+ */
387
+ methods: string[];
388
+ };
389
+
390
+ /**
391
+ * Describes the message metalstack.api.v2.ProjectPermissions.
392
+ * Use `create(ProjectPermissionsSchema)` to create a new message.
393
+ */
394
+ export const ProjectPermissionsSchema: GenMessage<ProjectPermissions> = /*@__PURE__*/
395
+ messageDesc(file_metalstack_api_v2_token, 6);
396
+
397
+ /**
398
+ * TenantPermissions carries tenant method permissions
399
+ *
400
+ * @generated from message metalstack.api.v2.TenantPermissions
401
+ */
402
+ export type TenantPermissions = Message<"metalstack.api.v2.TenantPermissions"> & {
403
+ /**
404
+ * Login of the tenant
405
+ * asterisk (*) can be specified to match any subject
406
+ *
407
+ * @generated from field: string login = 1;
408
+ */
409
+ login: string;
410
+
411
+ /**
412
+ * Methods which should be accessible
413
+ *
414
+ * @generated from field: repeated string methods = 2;
415
+ */
416
+ methods: string[];
417
+ };
418
+
419
+ /**
420
+ * Describes the message metalstack.api.v2.TenantPermissions.
421
+ * Use `create(TenantPermissionsSchema)` to create a new message.
422
+ */
423
+ export const TenantPermissionsSchema: GenMessage<TenantPermissions> = /*@__PURE__*/
424
+ messageDesc(file_metalstack_api_v2_token, 7);
425
+
426
+ /**
427
+ * AdminPermissions carries admin method permissions
428
+ *
429
+ * @generated from message metalstack.api.v2.AdminPermissions
430
+ */
431
+ export type AdminPermissions = Message<"metalstack.api.v2.AdminPermissions"> & {
432
+ /**
433
+ * Methods which should be accessible
434
+ *
435
+ * @generated from field: repeated string methods = 2;
436
+ */
437
+ methods: string[];
438
+ };
439
+
440
+ /**
441
+ * Describes the message metalstack.api.v2.AdminPermissions.
442
+ * Use `create(AdminPermissionsSchema)` to create a new message.
443
+ */
444
+ export const AdminPermissionsSchema: GenMessage<AdminPermissions> = /*@__PURE__*/
445
+ messageDesc(file_metalstack_api_v2_token, 8);
446
+
447
+ /**
448
+ * MachinePermissions carries machine method permissions
449
+ *
450
+ * @generated from message metalstack.api.v2.MachinePermissions
451
+ */
452
+ export type MachinePermissions = Message<"metalstack.api.v2.MachinePermissions"> & {
453
+ /**
454
+ * UUID of this machine
455
+ * asterisk (*) can be specified to match any subject
456
+ *
457
+ * @generated from field: string uuid = 1;
458
+ */
459
+ uuid: string;
460
+
461
+ /**
462
+ * Methods which should be accessible
463
+ *
464
+ * @generated from field: repeated string methods = 2;
465
+ */
466
+ methods: string[];
467
+ };
468
+
469
+ /**
470
+ * Describes the message metalstack.api.v2.MachinePermissions.
471
+ * Use `create(MachinePermissionsSchema)` to create a new message.
472
+ */
473
+ export const MachinePermissionsSchema: GenMessage<MachinePermissions> = /*@__PURE__*/
474
+ messageDesc(file_metalstack_api_v2_token, 9);
475
+
476
+ /**
477
+ * InfraPermissions carries infra method permissions
478
+ *
479
+ * @generated from message metalstack.api.v2.InfraPermissions
480
+ */
481
+ export type InfraPermissions = Message<"metalstack.api.v2.InfraPermissions"> & {
482
+ /**
483
+ * Methods which should be accessible
484
+ *
485
+ * @generated from field: repeated string methods = 2;
486
+ */
487
+ methods: string[];
488
+ };
489
+
490
+ /**
491
+ * Describes the message metalstack.api.v2.InfraPermissions.
492
+ * Use `create(InfraPermissionsSchema)` to create a new message.
493
+ */
494
+ export const InfraPermissionsSchema: GenMessage<InfraPermissions> = /*@__PURE__*/
495
+ messageDesc(file_metalstack_api_v2_token, 10);
496
+
250
497
  /**
251
498
  * TokenServiceCreateResponse is the response payload of a token create request
252
499
  *
@@ -273,7 +520,7 @@ export type TokenServiceCreateResponse = Message<"metalstack.api.v2.TokenService
273
520
  * Use `create(TokenServiceCreateResponseSchema)` to create a new message.
274
521
  */
275
522
  export const TokenServiceCreateResponseSchema: GenMessage<TokenServiceCreateResponse> = /*@__PURE__*/
276
- messageDesc(file_metalstack_api_v2_token, 3);
523
+ messageDesc(file_metalstack_api_v2_token, 11);
277
524
 
278
525
  /**
279
526
  * TokenServiceListRequest is the request payload to list tokens
@@ -294,7 +541,7 @@ export type TokenServiceListRequest = Message<"metalstack.api.v2.TokenServiceLis
294
541
  * Use `create(TokenServiceListRequestSchema)` to create a new message.
295
542
  */
296
543
  export const TokenServiceListRequestSchema: GenMessage<TokenServiceListRequest> = /*@__PURE__*/
297
- messageDesc(file_metalstack_api_v2_token, 4);
544
+ messageDesc(file_metalstack_api_v2_token, 12);
298
545
 
299
546
  /**
300
547
  * TokenServiceListResponse is the response payload of a token list request
@@ -315,7 +562,7 @@ export type TokenServiceListResponse = Message<"metalstack.api.v2.TokenServiceLi
315
562
  * Use `create(TokenServiceListResponseSchema)` to create a new message.
316
563
  */
317
564
  export const TokenServiceListResponseSchema: GenMessage<TokenServiceListResponse> = /*@__PURE__*/
318
- messageDesc(file_metalstack_api_v2_token, 5);
565
+ messageDesc(file_metalstack_api_v2_token, 13);
319
566
 
320
567
  /**
321
568
  * TokenServiceRevokeRequest is the request payload of a token revoke request
@@ -336,7 +583,7 @@ export type TokenServiceRevokeRequest = Message<"metalstack.api.v2.TokenServiceR
336
583
  * Use `create(TokenServiceRevokeRequestSchema)` to create a new message.
337
584
  */
338
585
  export const TokenServiceRevokeRequestSchema: GenMessage<TokenServiceRevokeRequest> = /*@__PURE__*/
339
- messageDesc(file_metalstack_api_v2_token, 6);
586
+ messageDesc(file_metalstack_api_v2_token, 14);
340
587
 
341
588
  /**
342
589
  * TokenServiceRevokeResponse is the response payload of a token revoke request
@@ -351,7 +598,7 @@ export type TokenServiceRevokeResponse = Message<"metalstack.api.v2.TokenService
351
598
  * Use `create(TokenServiceRevokeResponseSchema)` to create a new message.
352
599
  */
353
600
  export const TokenServiceRevokeResponseSchema: GenMessage<TokenServiceRevokeResponse> = /*@__PURE__*/
354
- messageDesc(file_metalstack_api_v2_token, 7);
601
+ messageDesc(file_metalstack_api_v2_token, 15);
355
602
 
356
603
  /**
357
604
  * TokenServiceUpdateRequest is the request payload of a token update request
@@ -384,9 +631,9 @@ export type TokenServiceUpdateRequest = Message<"metalstack.api.v2.TokenServiceU
384
631
  /**
385
632
  * Permissions is a list of service methods this token can be used for
386
633
  *
387
- * @generated from field: repeated metalstack.api.v2.MethodPermission permissions = 4;
634
+ * @generated from field: repeated metalstack.api.v2.PermissionsByVisibility permissions = 4;
388
635
  */
389
- permissions: MethodPermission[];
636
+ permissions: PermissionsByVisibility[];
390
637
 
391
638
  /**
392
639
  * ProjectRoles associates a project id with the corresponding role of the token owner
@@ -436,7 +683,7 @@ export type TokenServiceUpdateRequest = Message<"metalstack.api.v2.TokenServiceU
436
683
  * Use `create(TokenServiceUpdateRequestSchema)` to create a new message.
437
684
  */
438
685
  export const TokenServiceUpdateRequestSchema: GenMessage<TokenServiceUpdateRequest> = /*@__PURE__*/
439
- messageDesc(file_metalstack_api_v2_token, 8);
686
+ messageDesc(file_metalstack_api_v2_token, 16);
440
687
 
441
688
  /**
442
689
  * TokenServiceUpdateResponse is the response payload of a token update request
@@ -457,7 +704,7 @@ export type TokenServiceUpdateResponse = Message<"metalstack.api.v2.TokenService
457
704
  * Use `create(TokenServiceUpdateResponseSchema)` to create a new message.
458
705
  */
459
706
  export const TokenServiceUpdateResponseSchema: GenMessage<TokenServiceUpdateResponse> = /*@__PURE__*/
460
- messageDesc(file_metalstack_api_v2_token, 9);
707
+ messageDesc(file_metalstack_api_v2_token, 17);
461
708
 
462
709
  /**
463
710
  * TokenServiceGetRequest is the request payload of a token get request
@@ -478,7 +725,7 @@ export type TokenServiceGetRequest = Message<"metalstack.api.v2.TokenServiceGetR
478
725
  * Use `create(TokenServiceGetRequestSchema)` to create a new message.
479
726
  */
480
727
  export const TokenServiceGetRequestSchema: GenMessage<TokenServiceGetRequest> = /*@__PURE__*/
481
- messageDesc(file_metalstack_api_v2_token, 10);
728
+ messageDesc(file_metalstack_api_v2_token, 18);
482
729
 
483
730
  /**
484
731
  * TokenServiceGetResponse is the response payload of a token get request
@@ -499,7 +746,7 @@ export type TokenServiceGetResponse = Message<"metalstack.api.v2.TokenServiceGet
499
746
  * Use `create(TokenServiceGetResponseSchema)` to create a new message.
500
747
  */
501
748
  export const TokenServiceGetResponseSchema: GenMessage<TokenServiceGetResponse> = /*@__PURE__*/
502
- messageDesc(file_metalstack_api_v2_token, 11);
749
+ messageDesc(file_metalstack_api_v2_token, 19);
503
750
 
504
751
  /**
505
752
  * TokenServiceRefreshRequest is the request payload of a token refresh request
@@ -516,7 +763,7 @@ export type TokenServiceRefreshRequest = Message<"metalstack.api.v2.TokenService
516
763
  * Use `create(TokenServiceRefreshRequestSchema)` to create a new message.
517
764
  */
518
765
  export const TokenServiceRefreshRequestSchema: GenMessage<TokenServiceRefreshRequest> = /*@__PURE__*/
519
- messageDesc(file_metalstack_api_v2_token, 12);
766
+ messageDesc(file_metalstack_api_v2_token, 20);
520
767
 
521
768
  /**
522
769
  * TokenServiceRefreshResponse is the response payload of a token refresh request
@@ -544,7 +791,7 @@ export type TokenServiceRefreshResponse = Message<"metalstack.api.v2.TokenServic
544
791
  * Use `create(TokenServiceRefreshResponseSchema)` to create a new message.
545
792
  */
546
793
  export const TokenServiceRefreshResponseSchema: GenMessage<TokenServiceRefreshResponse> = /*@__PURE__*/
547
- messageDesc(file_metalstack_api_v2_token, 13);
794
+ messageDesc(file_metalstack_api_v2_token, 21);
548
795
 
549
796
  /**
550
797
  * TokenQuery is used to search tokens
@@ -594,7 +841,7 @@ export type TokenQuery = Message<"metalstack.api.v2.TokenQuery"> & {
594
841
  * Use `create(TokenQuerySchema)` to create a new message.
595
842
  */
596
843
  export const TokenQuerySchema: GenMessage<TokenQuery> = /*@__PURE__*/
597
- messageDesc(file_metalstack_api_v2_token, 14);
844
+ messageDesc(file_metalstack_api_v2_token, 22);
598
845
 
599
846
  /**
600
847
  * TokenType specifies different use cases of tokens
@@ -2,14 +2,12 @@
2
2
  // @generated from file metalstack/infra/v2/event.proto (package metalstack.infra.v2, syntax proto3)
3
3
  /* eslint-disable */
4
4
  import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
5
- import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
6
- import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
7
5
  import { file_metalstack_api_v2_common } from "../../api/v2/common_pb";
8
6
  import { file_metalstack_api_v2_machine } from "../../api/v2/machine_pb";
9
7
  /**
10
8
  * Describes the file metalstack/infra/v2/event.proto.
11
9
  */
12
- export const file_metalstack_infra_v2_event = /*@__PURE__*/ fileDesc("Ch9tZXRhbHN0YWNrL2luZnJhL3YyL2V2ZW50LnByb3RvEhNtZXRhbHN0YWNrLmluZnJhLnYyIr8BChdFdmVudFNlcnZpY2VTZW5kUmVxdWVzdBJICgZldmVudHMYASADKAsyOC5tZXRhbHN0YWNrLmluZnJhLnYyLkV2ZW50U2VydmljZVNlbmRSZXF1ZXN0LkV2ZW50c0VudHJ5GloKC0V2ZW50c0VudHJ5EgsKA2tleRgBIAEoCRI6CgV2YWx1ZRgCIAEoCzIrLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmVQcm92aXNpb25pbmdFdmVudDoCOAEiOgoYRXZlbnRTZXJ2aWNlU2VuZFJlc3BvbnNlEg4KBmV2ZW50cxgBIAEoBBIOCgZmYWlsZWQYAiADKAkyfgoMRXZlbnRTZXJ2aWNlEm4KBFNlbmQSLC5tZXRhbHN0YWNrLmluZnJhLnYyLkV2ZW50U2VydmljZVNlbmRSZXF1ZXN0Gi0ubWV0YWxzdGFjay5pbmZyYS52Mi5FdmVudFNlcnZpY2VTZW5kUmVzcG9uc2UiCeDzGALq8xgBAULOAQoXY29tLm1ldGFsc3RhY2suaW5mcmEudjJCCkV2ZW50UHJvdG9QAVo5Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9pbmZyYS92MjtpbmZyYXYyogIDTUlYqgITTWV0YWxzdGFjay5JbmZyYS5WMsoCE01ldGFsc3RhY2tcSW5mcmFcVjLiAh9NZXRhbHN0YWNrXEluZnJhXFYyXEdQQk1ldGFkYXRh6gIVTWV0YWxzdGFjazo6SW5mcmE6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine]);
10
+ export const file_metalstack_infra_v2_event = /*@__PURE__*/ fileDesc("Ch9tZXRhbHN0YWNrL2luZnJhL3YyL2V2ZW50LnByb3RvEhNtZXRhbHN0YWNrLmluZnJhLnYyIr8BChdFdmVudFNlcnZpY2VTZW5kUmVxdWVzdBJICgZldmVudHMYASADKAsyOC5tZXRhbHN0YWNrLmluZnJhLnYyLkV2ZW50U2VydmljZVNlbmRSZXF1ZXN0LkV2ZW50c0VudHJ5GloKC0V2ZW50c0VudHJ5EgsKA2tleRgBIAEoCRI6CgV2YWx1ZRgCIAEoCzIrLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmVQcm92aXNpb25pbmdFdmVudDoCOAEiOgoYRXZlbnRTZXJ2aWNlU2VuZFJlc3BvbnNlEg4KBmV2ZW50cxgBIAEoBBIOCgZmYWlsZWQYAiADKAkyfgoMRXZlbnRTZXJ2aWNlEm4KBFNlbmQSLC5tZXRhbHN0YWNrLmluZnJhLnYyLkV2ZW50U2VydmljZVNlbmRSZXF1ZXN0Gi0ubWV0YWxzdGFjay5pbmZyYS52Mi5FdmVudFNlcnZpY2VTZW5kUmVzcG9uc2UiCeDzGALq8xgBAULOAQoXY29tLm1ldGFsc3RhY2suaW5mcmEudjJCCkV2ZW50UHJvdG9QAVo5Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9pbmZyYS92MjtpbmZyYXYyogIDTUlYqgITTWV0YWxzdGFjay5JbmZyYS5WMsoCE01ldGFsc3RhY2tcSW5mcmFcVjLiAh9NZXRhbHN0YWNrXEluZnJhXFYyXEdQQk1ldGFkYXRh6gIVTWV0YWxzdGFjazo6SW5mcmE6OlYyYgZwcm90bzM", [file_metalstack_api_v2_common, file_metalstack_api_v2_machine]);
13
11
  /**
14
12
  * Describes the message metalstack.infra.v2.EventServiceSendRequest.
15
13
  * Use `create(EventServiceSendRequestSchema)` to create a new message.
@@ -4,8 +4,6 @@
4
4
 
5
5
  import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
6
6
  import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
7
- import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
8
- import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
9
7
  import { file_metalstack_api_v2_common } from "../../api/v2/common_pb";
10
8
  import type { MachineProvisioningEvent } from "../../api/v2/machine_pb";
11
9
  import { file_metalstack_api_v2_machine } from "../../api/v2/machine_pb";
@@ -15,7 +13,7 @@ import type { Message } from "@bufbuild/protobuf";
15
13
  * Describes the file metalstack/infra/v2/event.proto.
16
14
  */
17
15
  export const file_metalstack_infra_v2_event: GenFile = /*@__PURE__*/
18
- fileDesc("Ch9tZXRhbHN0YWNrL2luZnJhL3YyL2V2ZW50LnByb3RvEhNtZXRhbHN0YWNrLmluZnJhLnYyIr8BChdFdmVudFNlcnZpY2VTZW5kUmVxdWVzdBJICgZldmVudHMYASADKAsyOC5tZXRhbHN0YWNrLmluZnJhLnYyLkV2ZW50U2VydmljZVNlbmRSZXF1ZXN0LkV2ZW50c0VudHJ5GloKC0V2ZW50c0VudHJ5EgsKA2tleRgBIAEoCRI6CgV2YWx1ZRgCIAEoCzIrLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmVQcm92aXNpb25pbmdFdmVudDoCOAEiOgoYRXZlbnRTZXJ2aWNlU2VuZFJlc3BvbnNlEg4KBmV2ZW50cxgBIAEoBBIOCgZmYWlsZWQYAiADKAkyfgoMRXZlbnRTZXJ2aWNlEm4KBFNlbmQSLC5tZXRhbHN0YWNrLmluZnJhLnYyLkV2ZW50U2VydmljZVNlbmRSZXF1ZXN0Gi0ubWV0YWxzdGFjay5pbmZyYS52Mi5FdmVudFNlcnZpY2VTZW5kUmVzcG9uc2UiCeDzGALq8xgBAULOAQoXY29tLm1ldGFsc3RhY2suaW5mcmEudjJCCkV2ZW50UHJvdG9QAVo5Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9pbmZyYS92MjtpbmZyYXYyogIDTUlYqgITTWV0YWxzdGFjay5JbmZyYS5WMsoCE01ldGFsc3RhY2tcSW5mcmFcVjLiAh9NZXRhbHN0YWNrXEluZnJhXFYyXEdQQk1ldGFkYXRh6gIVTWV0YWxzdGFjazo6SW5mcmE6OlYyYgZwcm90bzM", [file_buf_validate_validate, file_google_protobuf_timestamp, file_metalstack_api_v2_common, file_metalstack_api_v2_machine]);
16
+ fileDesc("Ch9tZXRhbHN0YWNrL2luZnJhL3YyL2V2ZW50LnByb3RvEhNtZXRhbHN0YWNrLmluZnJhLnYyIr8BChdFdmVudFNlcnZpY2VTZW5kUmVxdWVzdBJICgZldmVudHMYASADKAsyOC5tZXRhbHN0YWNrLmluZnJhLnYyLkV2ZW50U2VydmljZVNlbmRSZXF1ZXN0LkV2ZW50c0VudHJ5GloKC0V2ZW50c0VudHJ5EgsKA2tleRgBIAEoCRI6CgV2YWx1ZRgCIAEoCzIrLm1ldGFsc3RhY2suYXBpLnYyLk1hY2hpbmVQcm92aXNpb25pbmdFdmVudDoCOAEiOgoYRXZlbnRTZXJ2aWNlU2VuZFJlc3BvbnNlEg4KBmV2ZW50cxgBIAEoBBIOCgZmYWlsZWQYAiADKAkyfgoMRXZlbnRTZXJ2aWNlEm4KBFNlbmQSLC5tZXRhbHN0YWNrLmluZnJhLnYyLkV2ZW50U2VydmljZVNlbmRSZXF1ZXN0Gi0ubWV0YWxzdGFjay5pbmZyYS52Mi5FdmVudFNlcnZpY2VTZW5kUmVzcG9uc2UiCeDzGALq8xgBAULOAQoXY29tLm1ldGFsc3RhY2suaW5mcmEudjJCCkV2ZW50UHJvdG9QAVo5Z2l0aHViLmNvbS9tZXRhbC1zdGFjay9hcGkvZ28vbWV0YWxzdGFjay9pbmZyYS92MjtpbmZyYXYyogIDTUlYqgITTWV0YWxzdGFjay5JbmZyYS5WMsoCE01ldGFsc3RhY2tcSW5mcmFcVjLiAh9NZXRhbHN0YWNrXEluZnJhXFYyXEdQQk1ldGFkYXRh6gIVTWV0YWxzdGFjazo6SW5mcmE6OlYyYgZwcm90bzM", [file_metalstack_api_v2_common, file_metalstack_api_v2_machine]);
19
17
 
20
18
  /**
21
19
  * EventServiceSendRequest is the request payload for sending provisioning events.
package/package.json CHANGED
@@ -19,5 +19,5 @@
19
19
  "files": [
20
20
  "js/*"
21
21
  ],
22
- "version": "0.3.1"
22
+ "version": "0.4.0"
23
23
  }